from app.extensions import db
from .base import TimestampMixin


class SystemSetting(TimestampMixin, db.Model):
    __tablename__ = "system_settings"
    id = db.Column(db.Integer, primary_key=True)
    key = db.Column(db.String(100), unique=True, nullable=False)
    value = db.Column(db.Text)
    value_type = db.Column(db.String(30), nullable=False, default="STRING")
    description = db.Column(db.String(500))


class IntegrationLog(TimestampMixin, db.Model):
    __tablename__ = "integration_logs"
    id = db.Column(db.Integer, primary_key=True)
    integration = db.Column(db.String(50), nullable=False, index=True)
    direction = db.Column(db.String(20), nullable=False)
    reference_type = db.Column(db.String(100))
    reference_id = db.Column(db.String(100))
    status = db.Column(db.String(30), nullable=False)
    request_payload = db.Column(db.JSON)
    response_payload = db.Column(db.JSON)
    error_message = db.Column(db.Text)
