from __future__ import annotations

from datetime import datetime

from app.schemas.common import ORMModel


class BudgetHeadRead(ORMModel):
    id: int
    head_code: str
    display_name: str
    display_name_en: str | None = None
    display_name_or: str | None = None
    category_code: str
    category_name: str
    category_name_en: str | None = None
    category_name_or: str | None = None
    fund_source: str
    expenditure_head: str
    expenditure_head_en: str | None = None
    expenditure_head_or: str | None = None
    item_component: str
    item_component_en: str | None = None
    item_component_or: str | None = None
    quantity: str | None = None
    unit: str | None = None
    purpose_description: str | None = None
    remarks: str | None = None
    is_active: bool
    created_at: datetime
    updated_at: datetime


class ItemMasterRead(ORMModel):
    id: int
    sr_no: int
    name: str
    name_en: str | None = None
    name_or: str | None = None
    item_type: str
    item_type_en: str | None = None
    item_type_or: str | None = None
    description_en: str | None = None
    description_or: str | None = None
    is_active: bool
    created_at: datetime
    updated_at: datetime


class OFESEstablishmentRead(ORMModel):
    id: int
    sr_no: int
    name: str
    name_en: str | None = None
    name_or: str | None = None
    district: str
    district_en: str | None = None
    district_or: str | None = None
    range_name: str
    range_name_en: str | None = None
    range_name_or: str | None = None
    display_name: str
    display_name_en: str | None = None
    display_name_or: str | None = None
    is_active: bool
    created_at: datetime
    updated_at: datetime
