"""Schema for order.""" from marshmallow import fields, Schema, validate from ows_product_physical.constant.delivery_order import ORDER_STATUS from ows_product_physical.constant.delivery_order import ORDER_TYPE from ows_product_physical.schemas.product import ProductSchema class OrderSchema(Schema): """Schema for an Order.""" _id = fields.Integer( attribute='id', data_key='id', required=True) _type = fields.String( attribute='type', data_key='type', required=True, validate=validate.OneOf(ORDER_TYPE)) delivery_store_id = fields.Integer(required=True) status = fields.String( required=True, validate=validate.OneOf(ORDER_STATUS)) created_at = fields.DateTime(required=True, format='%Y-%m-%dT%H:%M:%SZ') created_by = fields.String(required=True) last_updated = fields.DateTime(required=True, format='%Y-%m-%dT%H:%M:%SZ') products = fields.Nested(ProductSchema, required=True, many=True) output_file = fields.String(required=False) class OrderListSchema(Schema): """Schema for list of orders.""" total = fields.Integer(required=True) items = fields.Nested(OrderSchema, required=True, many=True)