Source code for ab.api.models.address

"""Address models for the ACPortal API."""

from __future__ import annotations

from typing import List, Optional

from pydantic import Field

from ab.api.models.base import RequestModel, ResponseModel


[docs] class AddressValidateParams(RequestModel): """Query parameters for GET /address/isvalid.""" line1: Optional[str] = Field(None, alias="Line1", description="Street address line 1") city: Optional[str] = Field(None, alias="City", description="City name") state: Optional[str] = Field(None, alias="State", description="State abbreviation") zip: Optional[str] = Field(None, alias="Zip", description="ZIP/postal code")
[docs] class AddressPropertyTypeParams(RequestModel): """Query parameters for GET /address/propertytype.""" address1: Optional[str] = Field(None, alias="Address1", description="Street address line 1") address2: Optional[str] = Field(None, alias="Address2", description="Street address line 2") city: Optional[str] = Field(None, alias="City", description="City name") state: Optional[str] = Field(None, alias="State", description="State abbreviation") zip_code: Optional[str] = Field(None, alias="ZipCode", description="ZIP/postal code")
[docs] class AddressIsValidResult(ResponseModel): """Result from GET /address/isvalid.""" is_valid: Optional[bool] = Field(None, alias="isValid", description="Whether address is valid") validated_address: Optional[dict] = Field( None, alias="validatedAddress", description="Corrected/validated address" ) suggestions: Optional[List[dict]] = Field(None, description="Alternative suggestions") dont_validate: Optional[bool] = Field(None, alias="dontValidate", description="Skip validation flag") country_id: Optional[str] = Field(None, alias="countryId", description="Country UUID") country_code: Optional[str] = Field(None, alias="countryCode", description="ISO country code") latitude: Optional[float] = Field(None, description="Latitude") longitude: Optional[float] = Field(None, description="Longitude") property_type: Optional[int] = Field(None, alias="propertyType", description="Property type classification")
[docs] class PropertyType(ResponseModel): """Result from GET /address/propertytype.""" property_type: Optional[str] = Field(None, alias="propertyType", description="Property type classification") confidence: Optional[float] = Field(None, description="Confidence score")