from pydantic import BaseModel from datetime import datetime from typing import Optional class EventBase(BaseModel): title: str description: Optional[str] = None location: Optional[str] = None start_date: datetime end_date: Optional[datetime] = None max_attendees: Optional[int] = None is_public: bool = True image_url: Optional[str] = None class EventCreate(EventBase): pass class EventUpdate(BaseModel): title: Optional[str] = None description: Optional[str] = None location: Optional[str] = None start_date: Optional[datetime] = None end_date: Optional[datetime] = None max_attendees: Optional[int] = None is_public: Optional[bool] = None image_url: Optional[str] = None class EventResponse(EventBase): id: int created_by: int created_at: datetime updated_at: datetime creator_name: Optional[str] = None registered_count: int = 0 is_registered: bool = False class Config: from_attributes = True class EventRegistrationResponse(BaseModel): id: int event_id: int user_id: int status: str registered_at: datetime user_name: Optional[str] = None class Config: from_attributes = True