from pydantic import BaseModel
from datetime import datetime
from typing import Optional, List


class ActivityLogEntry(BaseModel):
    id: int
    event_type: str
    event_category: str
    description: str
    actor_type: str
    actor_name: Optional[str]
    reference_type: Optional[str]
    reference_id: Optional[str]
    created_at: datetime


class ActivityLogDateGroup(BaseModel):
    date: str  # "THURSDAY, 03/19/2026"
    entries: List[ActivityLogEntry]


class ActivityLogResponse(BaseModel):
    groups: List[ActivityLogDateGroup]
    total: int
    page: int
    per_page: int
