"""Billing-panel customer schemas (read-only mirror of the maXim panels)."""
from pydantic import BaseModel, ConfigDict


class PopSummary(BaseModel):
    pop: str
    count: int


class ProviderSummary(BaseModel):
    provider: str
    label: str
    total: int
    pops: list[PopSummary]


class BillingCustomerOut(BaseModel):
    model_config = ConfigDict(from_attributes=True)

    id: int
    provider: str
    pop: str
    external_id: str
    cust_id: str | None
    username: str | None
    password: str | None
    name: str
    package: str | None
    balance: str | None
    exp_date: str | None
    last_logout: str | None
    mobile: str | None
    created: str | None
    status: str | None
    flat_level: str | None
    house: str | None
    road: str | None
    area: str | None
    ip: str | None
    group: str | None
    net_bill: str | None
    vlan_box: str | None
    nid: str | None
    email: str | None
    discount: str | None
    bill_cycle: str | None
    remarks: str | None
    district: str | None
    thana: str | None
