from sqlalchemy import ( Column, Integer, String, DateTime, Text, Boolean, ) from datetime import datetime from database.models.generic_model import Base class SageGatewayConfig(Base): __tablename__ = "sage_gateway_configs" id = Column(String(36), primary_key=True) user_id = Column(String(36), nullable=False, index=True) name = Column(String(100), nullable=False) description = Column(Text, nullable=True) gateway_url = Column(String(500), nullable=False) gateway_token = Column(String(255), nullable=False) sage_database = Column(String(255), nullable=True) sage_company = Column(String(255), nullable=True) is_active = Column(Boolean, default=False, index=True) is_default = Column(Boolean, default=False) priority = Column(Integer, default=0) last_health_check = Column(DateTime, nullable=True) last_health_status = Column(Boolean, nullable=True) last_error = Column(Text, nullable=True) total_requests = Column(Integer, default=0) successful_requests = Column(Integer, default=0) failed_requests = Column(Integer, default=0) last_used_at = Column(DateTime, nullable=True) extra_config = Column(Text, nullable=True) is_encrypted = Column(Boolean, default=False) allowed_ips = Column(Text, nullable=True) created_at = Column(DateTime, default=datetime.now, nullable=False) updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now) created_by = Column(String(36), nullable=True) is_deleted = Column(Boolean, default=False, index=True) deleted_at = Column(DateTime, nullable=True) def __repr__(self): return f""