from pydantic import BaseModel

from app.schemas.customer import CustomerResponse


class MetricCard(BaseModel):
    label: str
    value: int


class EmptyWidget(BaseModel):
    title: str
    message: str


class SystemStatusItem(BaseModel):
    label: str
    value: str
    status: str = "info"


class DashboardSummary(BaseModel):
    customers: list[MetricCard] = []
    latest_customers: list[CustomerResponse] = []
    users: list[MetricCard] = []
    roles: list[MetricCard] = []
    repairs: list[MetricCard] = []
    system_status: list[SystemStatusItem] = []
    activities: EmptyWidget
    tasks: EmptyWidget
    tickets: EmptyWidget
    projects: EmptyWidget
