from marshmallow import Schema, fields class ChannelSchema(Schema): id = fields.Integer(dump_only=True) type = fields.String(required=True) name = fields.String(required=True) config = fields.Dict(required=True, load_only=True) is_active = fields.Boolean() created_at = fields.DateTime(dump_only=True) updated_at = fields.DateTime(dump_only=True) class ChannelCreateSchema(Schema): type = fields.String(required=True) name = fields.String(required=True) config = fields.Dict(required=True, load_only=True) class ChannelUpdateSchema(Schema): name = fields.String() config = fields.Dict(load_only=True) is_active = fields.Boolean()