from datetime import datetime
from decimal import Decimal

from pydantic import BaseModel


class CompanyProfileResponse(BaseModel):
    id: int = 1
    nama_perusahaan: str = ""
    alamat_perusahaan: str = ""
    telepon_perusahaan: str = ""
    email_perusahaan: str = ""
    npwp_perusahaan: str = ""
    footnote: str = ""
    has_logo: bool = False
    ppn: Decimal = Decimal("0")
    metode_ppn: str = "TANPA PPN"
    qty_decimal_places: int = 0
    db_schema_version: str = ""
    db_schema_updated_at: datetime | None = None


class CompanyReportProfile(BaseModel):
    nama: str = ""
    alamat: str = ""
    telepon: str = ""
    email: str = ""
    npwp: str = ""
    footnote: str = ""


class CompanyPpnConfig(BaseModel):
    ppn: Decimal = Decimal("0")
    metode_ppn: str = "TANPA PPN"
    is_ppn_enabled: bool = False


class CompanyQtyDecimalPlaces(BaseModel):
    qty_decimal_places: int = 0
    format_string: str = "0"


class CompanySchemaVersion(BaseModel):
    db_schema_version: str = ""
    db_schema_updated_at: datetime | None = None
