from pydantic import BaseModel
from datetime import datetime
from typing import Optional, Dict, Any

class FinancialAuditLogBase(BaseModel):
    action_type: str
    entity_type: str
    entity_id: int
    details: Optional[Dict[str, Any]] = None

class FinancialAuditLogCreate(FinancialAuditLogBase):
    user_id: Optional[int] = None

class FinancialAuditLogPublic(FinancialAuditLogBase):
    id: int
    timestamp: datetime
    user_id: Optional[int] = None

    class Config:
        orm_mode = True 