Files
video-gen/video-gen-api/app/enums/common.py
T
2026-07-24 09:18:05 +08:00

135 lines
4.2 KiB
Python

from __future__ import annotations
from enum import StrEnum
class LogEventStatusEnum(StrEnum):
"""通用日志事件状态。"""
PENDING = "pending"
STARTED = "started"
SUBMITTED = "submitted"
SUCCESS = "success"
FAILED = "failed"
REJECTED = "rejected"
SKIPPED = "skipped"
WARNING = "warning"
class LogSourceEnum(StrEnum):
"""通用日志来源。"""
API = "api"
SERVICE = "service"
CELERY = "celery"
RECOVERY = "recovery"
REMOTE_API = "remote_api"
class ModuleGenerationFlowVersionEnum(StrEnum):
"""模块生成项目流程版本。"""
V1 = "v1"
V2 = "v2"
class ModuleProjectStatusEnum(StrEnum):
"""通用模块项目状态。"""
PENDING = "pending"
WAITING_USER = "waiting_user"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
CANCELLED = "cancelled"
class ModuleStepStatusEnum(StrEnum):
"""通用模块子任务状态。"""
PENDING = "pending"
WAITING_USER = "waiting_user"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
CANCELLED = "cancelled"
class ModuleEventTypeEnum(StrEnum):
"""通用模块事件类型。"""
PROJECT_CREATED = "PROJECT_CREATED"
PROJECT_DELETED = "PROJECT_DELETED"
STEP_CREATED = "STEP_CREATED"
STEP_UPDATED = "STEP_UPDATED"
SOFT_DELETE_STEPS = "SOFT_DELETE_STEPS"
IMAGE_PROMPT_SUBMITTED = "IMAGE_PROMPT_SUBMITTED"
IMAGE_PROMPT_SUCCESS = "IMAGE_PROMPT_SUCCESS"
IMAGE_PROMPT_FAILED = "IMAGE_PROMPT_FAILED"
IMAGE_GENERATE_SUBMITTED = "IMAGE_GENERATE_SUBMITTED"
IMAGE_GENERATE_SUCCESS = "IMAGE_GENERATE_SUCCESS"
VIDEO_PROMPT_SUBMITTED = "VIDEO_PROMPT_SUBMITTED"
VIDEO_PROMPT_SUCCESS = "VIDEO_PROMPT_SUCCESS"
VIDEO_PROMPT_FAILED = "VIDEO_PROMPT_FAILED"
VIDEO_GENERATE_SUBMITTED = "VIDEO_GENERATE_SUBMITTED"
VIDEO_GENERATE_SUCCESS = "VIDEO_GENERATE_SUCCESS"
CHAT_TASK_FAILED = "CHAT_TASK_FAILED"
CHAT_TASK_CANCELLED = "CHAT_TASK_CANCELLED"
MEDIA_REFUND = "MEDIA_REFUND"
PROMPT_BILLING_SUCCESS = "PROMPT_BILLING_SUCCESS"
PROMPT_BILLING_FAILED = "PROMPT_BILLING_FAILED"
V1_CREATE_BLOCKED = "V1_CREATE_BLOCKED"
FLOW_VERSION_MISMATCH = "FLOW_VERSION_MISMATCH"
V2_PROJECT_CREATED = "V2_PROJECT_CREATED"
V2_VIDEO_PROMPT_AUTO_CREATED = "V2_VIDEO_PROMPT_AUTO_CREATED"
V2_VIDEO_PROMPT_REGENERATED = "V2_VIDEO_PROMPT_REGENERATED"
V2_VIDEO_PROMPT_DISPATCHED = "V2_VIDEO_PROMPT_DISPATCHED"
V2_VIDEO_PROMPT_REGISTRY_FAILED = "V2_VIDEO_PROMPT_REGISTRY_FAILED"
V2_VIDEO_PROMPT_DISPATCH_FAILED = "V2_VIDEO_PROMPT_DISPATCH_FAILED"
STEP_SUPERSEDED = "STEP_SUPERSEDED"
STALE_STEP_RESULT_DISCARDED = "STALE_STEP_RESULT_DISCARDED"
GENERATION_REFERENCE_OPTION_SAVED = "GENERATION_REFERENCE_OPTION_SAVED"
GENERATION_REFERENCE_INCLUDED = "GENERATION_REFERENCE_INCLUDED"
GENERATION_REFERENCE_EXCLUDED = "GENERATION_REFERENCE_EXCLUDED"
class ModulePromptTypeEnum(StrEnum):
"""通用模块提词结果类型。"""
IMAGE_PROMPT = "image_prompt"
VIDEO_PROMPT = "video_prompt"
# 视频提词 Schema 管理后台配置
VIDEO_SCHEMA_CONFIG_KEY = "video_prompt_schema_config"
VIDEO_SCHEMA_CONFIG_DESCRIPTION = "视频提词 Schema 管理后台配置"
VIDEO_SCHEMA_CONFIG_VERSION = "video_prompt_schema_config_v1"
VIDEO_SCHEMA_CONFIG_DEFAULT_SOURCE = "default"
VIDEO_SCHEMA_CONFIG_DATABASE_SOURCE = "database"
# 仅用于管理后台配置项和用户可编辑字段校验;AI 生成结果与最终视频 prompt 不做自动裁剪。
VIDEO_SCHEMA_CONFIG_KEY_MAX_LEN = 64
VIDEO_SCHEMA_CONFIG_LABEL_MAX_LEN = 64
VIDEO_SCHEMA_CONFIG_DESC_MAX_LEN = 300
VIDEO_SCHEMA_EDITABLE_TEXT_MAX_LEN = 1000
VIDEO_SCHEMA_FLOW_CONTENT_MAX_LEN = 800
VIDEO_SCHEMA_TIME_STAGE_MAX_LEN = 64
VIDEO_SCHEMA_TIME_DESC_MAX_LEN = 300
VIDEO_SCHEMA_MAX_SECTION_COUNT = 40
VIDEO_SCHEMA_MAX_FIELD_COUNT_PER_SECTION = 80
VIDEO_SCHEMA_MAX_TIME_RULE_COUNT = 30
VIDEO_SCHEMA_MAX_SEGMENT_COUNT_PER_RULE = 12
MIN_GENERATION_COUNT = 1
MAX_GENERATION_COUNT = 5
class BillingBlockEventEnum(StrEnum):
"""通用账务拦截日志事件。"""
INSUFFICIENT_CREDITS = "BILLING_BLOCKED_INSUFFICIENT_CREDITS"
NEGATIVE_BALANCE = "BILLING_BLOCKED_NEGATIVE_BALANCE"