Additonal validation and better type hints

This commit is contained in:
Jonas Linter
2025-10-07 16:28:43 +02:00
parent e605af1231
commit a69816baa4
3 changed files with 86 additions and 87 deletions

View File

@@ -10,10 +10,18 @@ from XML generation (xsdata) follows clean architecture principles.
"""
from datetime import date
from enum import Enum
from pydantic import BaseModel, EmailStr, Field, field_validator, model_validator
# phonetechtype enum 1,3,5 voice, fax, mobile
class PhoneTechType(Enum):
VOICE = "1"
FAX = "3"
MOBILE = "5"
class PhoneNumber(BaseModel):
"""Phone number with optional type."""
@@ -34,7 +42,7 @@ class CustomerData(BaseModel):
surname: str = Field(..., min_length=1, max_length=100)
name_prefix: str | None = Field(None, max_length=20)
name_title: str | None = Field(None, max_length=20)
phone_numbers: list[PhoneNumber] = Field(default_factory=list)
phone_numbers: list[tuple[str, None | PhoneTechType]] = Field(default_factory=list)
email_address: EmailStr | None = None
email_newsletter: bool | None = None
address_line: str | None = Field(None, max_length=255)