From 5fce677096cb93f53435d34e4c399e5c2471af75 Mon Sep 17 00:00:00 2001 From: Leopoldadmin Date: Sat, 4 Jul 2026 00:23:14 +0000 Subject: [PATCH] feat(core): add tax rate schemas --- app/schemas/tax.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 app/schemas/tax.py diff --git a/app/schemas/tax.py b/app/schemas/tax.py new file mode 100644 index 0000000..b3c4cbb --- /dev/null +++ b/app/schemas/tax.py @@ -0,0 +1,34 @@ +"""Tax rate schemas — create, update, read, list.""" + +from __future__ import annotations + +from pydantic import BaseModel, Field + + +class TaxRateCreate(BaseModel): + name: str = Field(..., min_length=1, max_length=100) + rate: float = Field(..., ge=0, le=100) + is_default: bool = False + country: str | None = Field(None, max_length=2) + + +class TaxRateUpdate(BaseModel): + name: str | None = Field(None, min_length=1, max_length=100) + rate: float | None = Field(None, ge=0, le=100) + is_default: bool | None = None + country: str | None = Field(None, max_length=2) + + +class TaxRateResponse(BaseModel): + id: str + name: str + rate: float + is_default: bool + country: str | None = None + created_at: str | None = None + updated_at: str | None = None + + +class TaxRateListResponse(BaseModel): + items: list[TaxRateResponse] + total: int