from apollo_utils.service.schemas.fields.enum import EnumListField from apollo_utils.service.schemas.fields.list import SplitUniqueListField from marshmallow import fields, validate from server.constants.favorites import EntityType from server.schemas.base.nullable import IntOrNull from server.schemas.base.schemas import RequestSchema, Schema class UsersFavoritesCheck: class Request(RequestSchema): entity_type = EnumListField(EntityType, missing=None) entity_id = SplitUniqueListField( fields.String(required=True), required=True, validate=validate.Length(min=1, max=100) ) tag_id = SplitUniqueListField(IntOrNull(allow_none=True, null_to="null")) class Response(Schema): favorites_id = fields.Integer() entity_id = fields.Str() entity_type = fields.Str() tag_id = fields.Integer(default=None)