from apollo_utils.service.schemas.base import RequestSchema from apollo_utils.service.schemas.fields.enum import EnumListField from apollo_utils.service.schemas.fields.list import SplitUniqueListField from marshmallow import Schema, fields, validate from server.constants.private import MessagesType class Messages: class Delete: class Request(RequestSchema): type_list = EnumListField( MessagesType, data_key="type", as_enum=True, allow_all=True, required=True, validate=validate.Length(min=1), ) id_list = SplitUniqueListField(fields.Integer(required=True), data_key="id", missing=None) event_id_list = SplitUniqueListField(fields.Integer(required=True), data_key="event_id", missing=None) external_id_list = SplitUniqueListField(fields.String(required=True), data_key="external_id", missing=None) message_id_list = SplitUniqueListField(fields.Integer(required=True), data_key="message_id", missing=None) account_id_list = SplitUniqueListField(fields.Integer(required=True), data_key="account_id", missing=None) days_count = fields.Integer(data_key="days", missing=None) limit = fields.Integer(missing=None) class Response(Schema): items = fields.Dict(fields.String(), fields.List(fields.Integer()))