from sqlalchemy import Column, String, Integer, DateTime, ForeignKey, Boolean from sqlalchemy.dialects.postgresql import UUID from datetime import datetime from app.database import Base import uuid class ReferralCode(Base): __tablename__ = "referral_codes" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) user_id = Column(UUID(as_uuid=True), nullable=False, index=True) code = Column(String(20), unique=True, nullable=False, index=True) created_at = Column(DateTime, default=datetime.utcnow) class Referral(Base): __tablename__ = "referrals" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) referrer_id = Column(UUID(as_uuid=True), nullable=False, index=True) referred_id = Column(UUID(as_uuid=True), nullable=False, unique=True) code = Column(String(20), nullable=False) reward_days = Column(Integer, default=15) status = Column(String(20), default="completed") created_at = Column(DateTime, default=datetime.utcnow)