feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更: - backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔 - admin-web: ETL 状态页、任务管理、调度配置、登录优化 - miniprogram: 看板页面、聊天集成、UI 组件、导航更新 - etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强 - tenant-admin: 项目初始化 - db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8) - packages/shared: 枚举和工具函数更新 - tools: 数据库工具、报表生成、健康检查 - docs: PRD/架构/部署/合约文档更新 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
41
apps/backend/app/schemas/trigger_jobs.py
Normal file
41
apps/backend/app/schemas/trigger_jobs.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""定时任务管理 — Pydantic 响应模型"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Self
|
||||
|
||||
from pydantic import BaseModel, model_validator
|
||||
|
||||
|
||||
class TriggerJobItem(BaseModel):
|
||||
"""单个定时任务信息"""
|
||||
id: int
|
||||
job_type: str
|
||||
job_name: str
|
||||
trigger_condition: str
|
||||
trigger_config: dict | None = None
|
||||
last_run_at: str | None = None
|
||||
next_run_at: str | None = None
|
||||
status: str
|
||||
description: str | None = None
|
||||
last_error: str | None = None
|
||||
created_at: str | None = None
|
||||
|
||||
|
||||
class RunJobResult(BaseModel):
|
||||
"""手动执行结果"""
|
||||
success: bool
|
||||
message: str
|
||||
|
||||
|
||||
class UpdateTriggerConfigRequest(BaseModel):
|
||||
"""触发器配置编辑请求(部分更新)"""
|
||||
cron_expression: str | None = None # 5 字段 cron 表达式
|
||||
interval_seconds: int | None = None # 间隔秒数,>= 1
|
||||
|
||||
@model_validator(mode='after')
|
||||
def at_least_one_field(self) -> Self:
|
||||
if self.cron_expression is None and self.interval_seconds is None:
|
||||
raise ValueError('至少提供 cron_expression 或 interval_seconds 之一')
|
||||
return self
|
||||
Reference in New Issue
Block a user