from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, func from app.core.database import Base class QueryHistory(Base): __tablename__ = "query_histories" id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, nullable=False, index=True) username = Column(String(100), nullable=False, default="") instance_id = Column(Integer, nullable=False, default=0) instance_name = Column(String(100), nullable=False, default="") db_type = Column(String(20), nullable=False, default="") database_name = Column(String(100), nullable=False, default="") query_content = Column(Text, nullable=False, default="") query_type = Column(String(50), nullable=False, default="") execution_time_ms = Column(Integer, nullable=False, default=0) result_rows = Column(Integer, nullable=False, default=0) is_success = Column(Boolean, nullable=False, default=True) error_message = Column(Text, nullable=True) is_favorite = Column(Boolean, nullable=False, default=False) note = Column(Text, nullable=False, default="") created_at = Column(DateTime, server_default=func.now()) class QuickQueryModel(Base): __tablename__ = "quick_queries" id = Column(Integer, primary_key=True, autoincrement=True) name = Column(String(200), nullable=False) description = Column(Text, nullable=False, default="") query_content = Column(Text, nullable=False, default="") db_type = Column(String(20), nullable=False, default="") database_pattern = Column(String(200), nullable=False, default="*") is_shared = Column(Boolean, nullable=False, default=False) created_by = Column(Integer, nullable=False, default=0) created_by_name = Column(String(100), nullable=False, default="") usage_count = Column(Integer, nullable=False, default=0) created_at = Column(DateTime, server_default=func.now())