Add SNS Marketing Campaign feature
- 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>
This commit is contained in:
@@ -7,7 +7,7 @@ from pydantic import BaseModel
|
||||
from typing import Optional
|
||||
import bcrypt
|
||||
from ..database import get_db
|
||||
from ..models import User
|
||||
from ..models import User, SystemSettings, ReferralReward
|
||||
from ..models.user import generate_referral_code
|
||||
from ..schemas import UserCreate, UserUpdate, UserResponse, Token
|
||||
from ..config import get_settings
|
||||
@@ -151,6 +151,32 @@ def register(user_data: UserCreate, db: Session = Depends(get_db)):
|
||||
db.add(user)
|
||||
db.commit()
|
||||
db.refresh(user)
|
||||
|
||||
# 레퍼럴 가입 보상 처리
|
||||
if user.referred_by:
|
||||
# 추천인 찾기
|
||||
referrer = db.query(User).filter(User.referral_code == user.referred_by).first()
|
||||
if referrer:
|
||||
# 설정에서 보상 CC 가져오기
|
||||
sys_settings = db.query(SystemSettings).first()
|
||||
reward_cc = sys_settings.referral_signup_reward_cc if sys_settings else 10.0
|
||||
|
||||
# 추천인에게 CC 지급 (프로모션 CC - 출금 불가)
|
||||
referrer.cc_balance += reward_cc
|
||||
|
||||
# 레퍼럴 보상 기록 생성
|
||||
referral_reward = ReferralReward(
|
||||
referrer_id=referrer.id,
|
||||
referred_user_id=user.id,
|
||||
reward_type="signup",
|
||||
payment_amount=0.0,
|
||||
reward_amount=reward_cc,
|
||||
status="credited",
|
||||
credited_at=datetime.utcnow(),
|
||||
)
|
||||
db.add(referral_reward)
|
||||
db.commit()
|
||||
|
||||
return user
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user