from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, DateTime from sqlalchemy.orm import relationship from database import Base from datetime import datetime class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(String, unique=True, index=True) full_name = Column(String) company_name = Column(String) hashed_password = Column(String) is_admin = Column(Boolean, default=False) class Conversation(Base): __tablename__ = "conversations" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id")) title = Column(String) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow) class ChatMessage(Base): __tablename__ = "chat_messages" id = Column(Integer, primary_key=True, index=True) conversation_id = Column(Integer, ForeignKey("conversations.id")) user_id = Column(Integer, ForeignKey("users.id")) role = Column(String) content = Column(String) timestamp = Column(DateTime, default=datetime.utcnow) class SavedPrompt(Base): __tablename__ = "saved_prompts" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id")) title = Column(String) content = Column(String) is_public = Column(Boolean, default=False) created_at = Column(DateTime, default=datetime.utcnow)