from __future__ import annotations

from pydantic import BaseModel, Field


class HealthScoreDimension(BaseModel):
    name: str
    score: float
    max_score: float
    percentage: float
    status: str


class HealthScoreRecommendation(BaseModel):
    priority: str
    dimension: str
    title: str
    description: str


class HealthScoreResponse(BaseModel):
    brand_name: str
    overall_score: float
    health_level: str
    health_level_label: str
    dimensions: list[HealthScoreDimension]
    recommendations: list[HealthScoreRecommendation]
    is_full_report: bool = False
    cached: bool = False


class HealthScoreRequest(BaseModel):
    brand: str
    competitors: list[str] = Field(default_factory=list)
