30 lines
774 B
Python
30 lines
774 B
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
# Pydantic v1/v2 Kompatibilität
|
|
try:
|
|
from pydantic import BaseModel, ConfigDict # v2
|
|
_V2 = True
|
|
except ImportError: # v1
|
|
from pydantic import BaseModel # type: ignore
|
|
_V2 = False
|
|
|
|
|
|
class AuditLogOut(BaseModel):
|
|
id: int
|
|
user_id: Optional[int] = None
|
|
timestamp: Optional[datetime] = None
|
|
# WICHTIG: frei als String, kein zu enges Enum -> verhindert ResponseValidationError
|
|
action: str
|
|
info: Optional[str] = None
|
|
old_balance_cents: Optional[int] = None
|
|
new_balance_cents: Optional[int] = None
|
|
|
|
if _V2:
|
|
# Pydantic v2
|
|
model_config = ConfigDict(from_attributes=True)
|
|
else:
|
|
# Pydantic v1
|
|
class Config:
|
|
orm_mode = True
|