Spaces:
Sleeping
Sleeping
| import uuid | |
| import datetime | |
| from sqlalchemy import Column, String, DateTime, Boolean | |
| from sqlalchemy.orm import relationship | |
| from app.database import Base | |
| class User(Base): | |
| __tablename__ = "users" | |
| id = Column(String, primary_key=True, default=lambda: str(uuid.uuid4())) | |
| email = Column(String, unique=True, index=True, nullable=False) | |
| hashed_password = Column(String, nullable=False) | |
| name = Column(String, default="") | |
| tier = Column(String, default="free") # free, maker, growth, scale, enterprise | |
| stripe_customer_id = Column(String, default="") | |
| stripe_subscription_id = Column(String, default="") | |
| is_active = Column(Boolean, default=True) | |
| created_at = Column(DateTime, default=datetime.datetime.utcnow) | |
| api_keys = relationship("APIKey", back_populates="user", cascade="all, delete-orphan") | |
| usage_records = relationship("UsageRecord", back_populates="user", cascade="all, delete-orphan") | |
| ml_models = relationship("MLModel", back_populates="user", cascade="all, delete-orphan") | |