From a29937b3329aca36da744d2743e34916e352fdb2 Mon Sep 17 00:00:00 2001 From: Renato Rosa Date: Wed, 19 Aug 2026 19:38:54 -0300 Subject: [PATCH] Adicionar app/models.py --- app/models.py | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 app/models.py diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..3d20425 --- /dev/null +++ b/app/models.py @@ -0,0 +1,68 @@ +from sqlalchemy import Column, String, Boolean, Text, DateTime, Integer +from datetime import datetime +from db import Base + +class User(Base): + __tablename__ = "users" + id = Column(String, primary_key=True) + email = Column(String, unique=True) + name = Column(String) + twofa_enabled = Column(Boolean, default=False) + twofa_method = Column(String, default="totp") + twofa_secret = Column(String) + twofa_sensitive_actions = Column(Boolean, default=False) + +class Preferences(Base): + __tablename__ = "preferences" + id = Column(Integer, primary_key=True, autoincrement=True) + user_id = Column(String) + preferred_mode = Column(String, default="conversar") + auto_search = Column(Boolean, default=True) + auto_monitoring = Column(Boolean, default=False) + preferred_export = Column(String, default="pdfa") + likes_suggestions = Column(Boolean, default=True) + likes_quick_actions = Column(Boolean, default=True) + +class Conversation(Base): + __tablename__ = "conversations" + id = Column(String, primary_key=True) + user_id = Column(String) + created_at = Column(DateTime, default=datetime.utcnow) + mode = Column(String) + context_summary = Column(Text) + +class Message(Base): + __tablename__ = "messages" + id = Column(String, primary_key=True) + conversation_id = Column(String) + role = Column(String) + content = Column(Text) + metadata = Column(Text) + created_at = Column(DateTime, default=datetime.utcnow) + +class MonitoringTopic(Base): + __tablename__ = "monitoring_topics" + id = Column(Integer, primary_key=True, autoincrement=True) + user_id = Column(String) + label = Column(String) + sources = Column(Text) + created_at = Column(DateTime, default=datetime.utcnow) + active = Column(Boolean, default=True) + +class Alert(Base): + __tablename__ = "alerts" + id = Column(Integer, primary_key=True, autoincrement=True) + user_id = Column(String) + monitoring_topic_id = Column(Integer) + title = Column(String) + description = Column(Text) + source = Column(String) + created_at = Column(DateTime, default=datetime.utcnow) + +class AuditTrail(Base): + __tablename__ = "audit_trail" + id = Column(Integer, primary_key=True, autoincrement=True) + user_email = Column(String) + action = Column(String) + details = Column(Text) + timestamp = Column(DateTime, default=datetime.utcnow)