from pydantic import BaseModel
from typing import List, Optional

class ProfileCreate(BaseModel):
    display_name: str
    age: int
    gender: str
    location: str
    bio: str
    interests: List[str]

class ProfileUpdate(BaseModel):
    display_name: Optional[str] = None
    age: Optional[int] = None
    gender: Optional[str] = None
    location: Optional[str] = None
    bio: Optional[str] = None
    interests: Optional[List[str]] = None

class PhotoInfo(BaseModel):
    id: int
    file_path: str

class ProfileResponse(BaseModel):
    id: int
    user_id: int
    display_name: str
    age: int
    gender: str
    location: str
    bio: str
    interests: List[str]
    photos: List[PhotoInfo] = []

class DiscoverResponse(BaseModel):
    id: int
    display_name: str
    age: int
    gender: str
    location: str
    bio: str
    interests: List[str]
    photos: List[PhotoInfo] = []
