""" Pydantic models for service module Models follow the nomenclature of: - Sub-models: "Schema" - Mixins: "Mixin" - Models: "" ie "ServiceGetServiceResponse" """ from pydantic import ConfigDict, Field from src.schemas import CustomBaseModel class ServiceIDMixin(CustomBaseModel): service_id: int = Field(gt=0) class ServiceSchema(CustomBaseModel): model_config = ConfigDict(from_attributes=True, extra="ignore") id: int name: str class ServiceWithKeySchema(ServiceSchema): api_key: str class ServiceGetServiceResponse(CustomBaseModel): services: list[ServiceSchema] class ServicePostServiceRequest(CustomBaseModel): name: str class ServicePostServiceResponse(CustomBaseModel): service: ServiceWithKeySchema class ServicePatchKeyRequest(ServiceIDMixin): pass class ServicePatchKeyResponse(CustomBaseModel): service: ServiceWithKeySchema class ServiceDeleteServiceRequest(ServiceIDMixin): pass