from typing import Literal from pydantic import BaseModel, EmailStr, field_validator class UserRegister(BaseModel): email: EmailStr password: str full_name: str phone: str | None = None # Role requested at registration: 'member' or 'organizer' requested_role: Literal["member", "organizer"] = "member" # Organizer-only fields organization_name: str | None = None instagram_handle: str | None = None @field_validator("organization_name") @classmethod def org_name_required_for_organizer(cls, v, info): if info.data.get("requested_role") == "organizer" and not v: raise ValueError("Organization name is required for organizer registration") return v