Add some validation rules

This commit is contained in:
Nitwix
2025-04-12 14:20:40 +02:00
parent 47675979d1
commit fc98b1bb70
6 changed files with 154 additions and 109 deletions

View File

@ -50,10 +50,20 @@ def xval_email_account_profile(data: ExtractedData) -> Optional[XValFailure]:
doc2_val=f"{data.profile.email=}"
)
def xval_passport_no_account_passport(data: ExtractedData) -> Optional[XValFailure]:
if data.account.passport_number != data.passport.passport_number:
return XValFailure(
doc1_type=DocType.account,
doc1_val=f"{data.account.passport_number=}",
doc2_type=DocType.passport,
doc2_val=f"{data.passport.passport_number=}"
)
def xref_all(data: ExtractedData) -> list[XValFailure]:
def xval_all(data: ExtractedData) -> list[XValFailure]:
xref_validators: list[Callable[[ExtractedData], Optional[XValFailure]]] = [
xval_name_account_description
xval_name_account_description,
xval_email_account_profile,
xval_passport_no_account_passport
]
validation_failures = []

View File

@ -1,6 +1,6 @@
from datetime import date
from typing import Literal
from pydantic import BaseModel, ConfigDict, Field
from typing import Literal, Self
from pydantic import BaseModel, ConfigDict, Field, model_validator
class FromPassport(BaseModel):
@ -22,6 +22,12 @@ class FromPassport(BaseModel):
issue_date: date
expiry_date: date
@model_validator(mode='after')
def check_expiry_date_after_issue_date(self) -> Self:
if self.issue_date >= self.expiry_date:
raise ValueError(f'Expiry date is not after issue date')
return self
signature_present: bool
machine_readable_zone: str = Field(..., min_length=44)

View File

@ -0,0 +1,2 @@
# TODO
# account.reference_currency corresponds to passport.country