Atualizar app/models.py

This commit is contained in:
2026-08-19 22:01:48 -03:00
parent 6b8f12fdb6
commit ae4a7a077f
+36 -1
View File
@@ -49,6 +49,8 @@ class User(Base):
twofa_sensitive_actions = Column(Boolean, default=False)
role = Column(String, default="user") # "user", "admin"
# Legal
consent_training = Column(Boolean, default=False)
terms_accepted_at = Column(DateTime, nullable=True)
privacy_accepted_at = Column(DateTime, nullable=True)
@@ -56,7 +58,10 @@ class User(Base):
cookies_accepted_at = Column(DateTime, nullable=True)
security_accepted_at = Column(DateTime, nullable=True)
# Billing
plan_id = Column(String, ForeignKey("plans.id"), default="free")
# Capabilities
can_use_audio = Column(Boolean, default=False)
can_use_vision = Column(Boolean, default=False)
can_share = Column(Boolean, default=True)
@@ -72,7 +77,37 @@ class Cache(Base):
response = Column(Text)
created_at = Column(DateTime, default=datetime.utcnow)
class Plan(Base):
__tablename__ = "plans"
id = Column(String, primary_key=True)
name = Column(String)
price_monthly = Column(Float)
price_yearly = Column(Float)
description = Column(Text)
# ACL / capabilities
can_use_audio = Column(Boolean, default=False)
can_use_vision = Column(Boolean, default=False)
can_import_docs = Column(Boolean, default=True)
can_import_excel = Column(Boolean, default=True)
can_export_pdf = Column(Boolean, default=False)
can_export_md = Column(Boolean, default=True)
priority_queue = Column(String, default="default") # default, premium, admin
max_conversations = Column(Integer, default=50)
max_attachment_size_mb = Column(Integer, default=10)
allowed_models = Column(Text) # JSON list of models
class Subscription(Base):
__tablename__ = "subscriptions"
id = Column(String, primary_key=True)
user_email = Column(String, ForeignKey("users.email"))
plan_id = Column(String, ForeignKey("plans.id"))
status = Column(String) # active, expired, canceled, pending
renew_at = Column(DateTime)
created_at = Column(DateTime, default=datetime.utcnow)
updated_at = Column(DateTime, default=datetime.utcnow)
class Preferences(Base):