from marshmallow import fields, validate from apollo_utils.service.schemas.fields.list import SplitUniqueListField from apollo_utils.service.schemas.fields.market import DelphiMarketField class CountryCodeNoneMixin: """Country code with None as default.""" country_code = fields.String(validate=validate.Length(max=10, min=2), missing=None) class CountryCodeListOptionalMixin: country_code_list = SplitUniqueListField( fields.String(validate=validate.Length(max=10, min=2)), data_key="country_code", missing=[] ) class DelphiCountryCodeMixin: """Country code filter mixin.""" country_code_list = SplitUniqueListField( DelphiMarketField(required=True, validate=validate.Length(min=2, max=9)), required=False, validate=validate.Length(min=1), data_key="country_code", )