Files

41 lines
1.1 KiB
Python

import uuid
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class AuditLogRead(BaseModel):
id: uuid.UUID
study_id: Optional[uuid.UUID] = None
entity_type: str
entity_id: Optional[uuid.UUID] = None
action: str
detail: Optional[str]
operator_id: uuid.UUID
operator_name: Optional[str] = None
operator_email: Optional[str] = None
operator_role: str
client_ip: Optional[str] = None
ip_location: str = ""
ip_country: str = ""
ip_province: str = ""
ip_city: str = ""
ip_isp: str = ""
user_agent: Optional[str] = None
client_type: Optional[str] = None
client_version: Optional[str] = None
client_platform: Optional[str] = None
build_channel: Optional[str] = None
build_commit: Optional[str] = None
created_at: datetime
model_config = ConfigDict(from_attributes=True)
class AuditEventCreate(BaseModel):
action: str
detail: Optional[str] = None
entity_type: Optional[str] = None
entity_id: Optional[uuid.UUID] = None