From 8b249b651f5d4bb25778a1bcb7ac30f2de0f43d8 Mon Sep 17 00:00:00 2001 From: Leopoldadmin Date: Sat, 4 Jul 2026 00:25:38 +0000 Subject: [PATCH] feat(core): add system settings schemas --- app/schemas/system_settings.py | 50 ++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 app/schemas/system_settings.py diff --git a/app/schemas/system_settings.py b/app/schemas/system_settings.py new file mode 100644 index 0000000..5d5f153 --- /dev/null +++ b/app/schemas/system_settings.py @@ -0,0 +1,50 @@ +"""System settings schemas — read, upsert.""" + +from __future__ import annotations + +from pydantic import BaseModel, Field + + +class SystemSettingsUpsert(BaseModel): + company_name: str = Field(..., min_length=1, max_length=200) + company_legal_form: str | None = Field(None, max_length=50) + company_street: str = Field(..., min_length=1, max_length=255) + company_city: str = Field(..., min_length=1, max_length=100) + company_zip: str = Field(..., min_length=1, max_length=20) + company_country: str = Field(..., min_length=2, max_length=2) + tax_number: str | None = Field(None, max_length=50) + vat_id: str | None = Field(None, max_length=50) + iban: str | None = Field(None, max_length=34) + bic: str | None = Field(None, max_length=11) + bank_name: str | None = Field(None, max_length=100) + ceo: str | None = Field(None, max_length=100) + trade_register: str | None = Field(None, max_length=100) + default_currency_id: str | None = None + default_tax_id: str | None = None + invoice_prefix: str = Field("RE-", max_length=20) + quote_prefix: str = Field("AN-", max_length=20) + payment_terms_days: int = Field(14, ge=0, le=365) + + +class SystemSettingsResponse(BaseModel): + id: str + company_name: str + company_legal_form: str | None = None + company_street: str + company_city: str + company_zip: str + company_country: str + tax_number: str | None = None + vat_id: str | None = None + iban: str | None = None + bic: str | None = None + bank_name: str | None = None + ceo: str | None = None + trade_register: str | None = None + default_currency_id: str | None = None + default_tax_id: str | None = None + invoice_prefix: str = "RE-" + quote_prefix: str = "AN-" + payment_terms_days: int = 14 + created_at: str | None = None + updated_at: str | None = None