from carveouts.models import Model from carveouts.models.service_carveout import ServiceCarveout from carveouts.models.service_country_carveout import ServiceCountryPayload class SubaccountCarveoutResponse(Model): """Subaccount carveout response model.""" service: list[ServiceCarveout] service_country: list[dict[str, int | list[str]]] country: list[str] class AccountCarveoutResponse(SubaccountCarveoutResponse): """Account carveout response model.""" new_service_opt_outs: list[int] | None = None class ProductCarveoutResponse(AccountCarveoutResponse): """Product carveout response model.""" pass class CarveoutResponse(Model): """Carveout response model.""" account: AccountCarveoutResponse | None = None subaccount: SubaccountCarveoutResponse | None = None product: ProductCarveoutResponse | None = None class Product(Model): """Product model.""" product_id: int upc: int class CarveoutPayload(Model): """Carveout payload model.""" service: list[ServiceCarveout] | None service_country: list[ServiceCountryPayload] | None country: list[str] | None opt_out: list[int] | None updated_by: int | None