Files
xiaoxia-saas/packages/application/title_library/commands.py
T
CI Bot 1d37666114 feat: 新增自动选标题接口 POST /titles/pick
- PickTitleUseCase:优先使用次数少的,从前5个中随机选,兼顾公平和多样性
- 支持 category 过滤 + exclude_ids 排除(批量生成避免重复)
- 空库时返回 404 提示先添加标题
2026-07-14 09:15:33 +08:00

45 lines
967 B
Python
Executable File

"""Title library commands."""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import List, Optional
@dataclass
class CreateTitleLibraryCommand:
user_id: str
name: str
text: str
category: str = "default"
description: str = ""
tags: List[str] = field(default_factory=list)
metadata_: dict = field(default_factory=dict)
@dataclass
class UpdateTitleLibraryCommand:
title_id: str
user_id: str
name: Optional[str] = None
text: Optional[str] = None
category: Optional[str] = None
description: Optional[str] = None
tags: Optional[List[str]] = None
is_active: Optional[bool] = None
metadata_: Optional[dict] = None
@dataclass
class IncrementTitleUsageCommand:
title_id: str
user_id: str
increment: int = 1
@dataclass
class PickTitleCommand:
user_id: str
category: Optional[str] = None
exclude_ids: List[str] = field(default_factory=list)