28 lines
956 B
Python
28 lines
956 B
Python
from __future__ import annotations
|
|
|
|
from sqlmodel import Field, SQLModel
|
|
|
|
from app.db.base import TimestampMixin
|
|
|
|
|
|
class SystemConfig(TimestampMixin, SQLModel, table=True):
|
|
__tablename__ = "system_configs"
|
|
|
|
id: int | None = Field(default=None, primary_key=True)
|
|
key: str = Field(max_length=100, unique=True, index=True)
|
|
value: str = Field(default="", max_length=2000)
|
|
description: str = Field(default="", max_length=500)
|
|
is_secret: bool = Field(default=False)
|
|
|
|
|
|
class AuditLog(TimestampMixin, SQLModel, table=True):
|
|
__tablename__ = "audit_logs"
|
|
|
|
id: int | None = Field(default=None, primary_key=True)
|
|
user_id: int | None = Field(default=None, foreign_key="users.id")
|
|
action: str = Field(max_length=100)
|
|
resource_type: str = Field(max_length=50)
|
|
resource_id: str = Field(default="", max_length=50)
|
|
details: str = Field(default="{}", max_length=2000)
|
|
ip_address: str = Field(default="", max_length=45)
|