from typing import Any

from pydantic import BaseModel


class ExpertProfileCreate(BaseModel):
    user_id: int
    expertise_areas: list[str]
    skills: list[str]
    bio: str | None = None
    meta_data: dict[str, Any] | None = None

class ExpertProfileUpdate(BaseModel):
    expertise_areas: list[str] | None = None
    skills: list[str] | None = None
    bio: str | None = None

class ExpertProfileResponse(BaseModel):
    id: int
    user_id: int
    expertise_areas: list[str]
    skills: list[str]
    bio: str | None
    total_annotations: int
    total_reviews: int
    avg_quality_score: float
    reputation_score: int
    created_at: str | None
    updated_at: str | None
    meta_data: dict[str, Any]

    class Config:
        from_attributes = True

class ContributionResponse(BaseModel):
    id: int
    user_id: int
    contribution_type: str
    task_id: int
    quality_score: float | None
    created_at: str | None

    class Config:
        from_attributes = True
