from marshmallow import Schema, fields class UserSchema(Schema): id = fields.Integer(dump_only=True) username = fields.String(required=True) email = fields.String(allow_none=True) avatar = fields.String(allow_none=True) is_active = fields.Boolean() is_admin = fields.Boolean() created_at = fields.DateTime(dump_only=True) updated_at = fields.DateTime(dump_only=True) class UserCreateSchema(Schema): username = fields.String(required=True) password = fields.String(required=True, load_only=True) email = fields.String(allow_none=True) class UserUpdateSchema(Schema): email = fields.String(allow_none=True) avatar = fields.String(allow_none=True)