from marshmallow import Schema, fields class CronJobSchema(Schema): id = fields.Integer(dump_only=True) agent_id = fields.Integer() name = fields.String(required=True) cron_expression = fields.String(required=True) prompt = fields.String(required=True) is_active = fields.Boolean() last_run_at = fields.DateTime(allow_none=True) next_run_at = fields.DateTime(allow_none=True) created_at = fields.DateTime(dump_only=True) updated_at = fields.DateTime(dump_only=True) class CronJobCreateSchema(Schema): name = fields.String(required=True) cron_expression = fields.String(required=True) prompt = fields.String(required=True) class CronJobUpdateSchema(Schema): name = fields.String() cron_expression = fields.String() prompt = fields.String() is_active = fields.Boolean()