from apollo_utils.service.schemas.base import RequestSchema from marshmallow import fields, validate, validates from server.constants.core import OS from server.schemas.headers import AccountHeader from server.schemas.utils import validate_app_version class UsersDevices: class RequestHeader(AccountHeader): app_version = fields.String(data_key="version", load_default=None) @validates("app_version") def validate_app_version(self, value): validate_app_version(value) class Request(RequestSchema): expo_token = fields.String(required=True, validate=validate.Length(min=1, max=255)) device_inner_id = fields.String(required=True) os = fields.String(required=True, validate=validate.OneOf(OS.values())) class UsersDevicesDeactivateBulk: class Request(RequestSchema): class RequestItem(RequestSchema): _id = fields.Integer(data_key="device_id", required=True) _token = fields.String(data_key="expo_token", required=True) status = fields.Boolean(missing=False) data = fields.List(fields.Nested(RequestItem, required=True), required=True)