- Add cash_cc_balance to User model (withdrawable CC) - Create SnsShareSubmission model for SNS share verification - Add marketing campaign settings to SystemSettings - Add reward_type to ReferralReward model - Create /api/sns-share endpoints for submission and verification - Add referral signup reward logic (10CC on signup) - Create /sns-share user page for SNS sharing - Create /admin/sns-shares management page - Add marketing settings UI to admin settings page - Add SNS Shares menu to admin sidebar 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
from sqlalchemy import Column, Integer, String, Float, DateTime, ForeignKey, Text
|
|
from sqlalchemy.orm import relationship
|
|
from sqlalchemy.sql import func
|
|
from ..database import Base
|
|
|
|
|
|
class SnsShareSubmission(Base):
|
|
"""SNS 공유 제출 및 검증 모델"""
|
|
__tablename__ = "sns_share_submissions"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
user_id = Column(Integer, ForeignKey("users.id"), nullable=False)
|
|
car_id = Column(Integer, ForeignKey("cars.id"), nullable=False)
|
|
|
|
# SNS 정보
|
|
platform = Column(String(20), nullable=False) # twitter, instagram, facebook
|
|
sns_url = Column(String(500), nullable=False) # 공유 게시물 URL
|
|
|
|
# 상태
|
|
status = Column(String(20), default="pending") # pending, approved, rejected
|
|
rejected_reason = Column(Text, nullable=True) # 거부 사유
|
|
|
|
# CC 보상
|
|
reward_cc = Column(Float, default=3.0) # 기본 3CC 보상
|
|
rewarded_at = Column(DateTime(timezone=True), nullable=True) # 보상 지급 시각
|
|
|
|
# 타임스탬프
|
|
submitted_at = Column(DateTime(timezone=True), server_default=func.now())
|
|
verified_at = Column(DateTime(timezone=True), nullable=True) # 검증 시각
|
|
verified_by = Column(Integer, ForeignKey("users.id"), nullable=True) # 검증한 관리자
|
|
|
|
# Relationships
|
|
user = relationship("User", foreign_keys=[user_id], backref="sns_submissions")
|
|
car = relationship("Car", backref="sns_shares")
|
|
verifier = relationship("User", foreign_keys=[verified_by])
|