"""Application schemas.""" import marshmallow_dataclass from marshmallow import Schema, fields from .models.feed_status import GetAnalyticsFeedStatusesQueryResponse from .models.store import Store from .models.store_state import StoreState __all__ = [ 'GetAnalyticsFeedStatusesQueryResponseSchema', 'ProcessSummarySchema', 'StoreStateDBSchema', 'StreamsUpdatedNotificationPayloadSchema', ] class StreamsUpdatedNotificationPayloadSchema(Schema): """streams_updated payload schema.""" store = fields.Enum(required=True, enum=Store, by_value=True, data_key='store_id') last_available_date = fields.Date(required=True, format='iso', data_key='available_date') updated_at = fields.DateTime(required=True, format='%Y-%m-%d %H:%M:%S', data_key='timestamp') class _StoreStateSummarySchema(Schema): """Intermediate schema for ProcessSummary.""" store = fields.Enum(enum=Store) class ProcessSummarySchema(Schema): """ProcessSummary schema.""" updated = fields.Pluck(_StoreStateSummarySchema, many=True, field_name='store') succeeded = fields.Pluck(_StoreStateSummarySchema, many=True, field_name='store') failed = fields.Pluck(_StoreStateSummarySchema, many=True, field_name='store') StoreStateDBSchema = marshmallow_dataclass.class_schema(StoreState) GetAnalyticsFeedStatusesQueryResponseSchema = marshmallow_dataclass.class_schema(GetAnalyticsFeedStatusesQueryResponse)