feat(scripts): #1811 完整字段类型(分类/标签/title_config/segments)

This commit is contained in:
2026-09-15 10:19:49 +08:00
parent c2997a11c2
commit f789ed1f16
+79 -6
View File
@@ -1,24 +1,97 @@
/**
* 文案库 API — 类型定义
* 对接后端 /api/v1/scripts
* 文案库 API — 类型定义(#1811 v2 完整字段版)
* 字段对齐后端契约:title / content / segments / tags / title_text / title_category / title_config
* 同时保留 char_count / use_count / timestamps 等展示字段
*/
/** 标题配置(字体、颜色、位置、字号) */
export interface ScriptTitleConfig {
/** 字体预设 key,如 "default" / "bold" / "handwritten" */
font?: string
/** 文字颜色(CSS color) */
color?: string
/** 描边色 */
stroke?: string
/** 位置:top / center / bottom */
position?: "top" | "center" | "bottom"
/** 字号(px) */
size?: number
/** 是否加粗 */
bold?: boolean
/** 是否斜体 */
italic?: boolean
}
/** 文案分类(可枚举,也支持自定义) */
export type ScriptCategory =
| "promo" // 营销推广
| "vlog" // Vlog/日常
| "knowledge" // 知识科普
| "story" // 故事剧情
| "emotion" // 情感语录
| "other" // 其他
export const SCRIPT_CATEGORY_LABEL: Record<ScriptCategory, string> = {
promo: "营销推广",
vlog: "Vlog 日常",
knowledge: "知识科普",
story: "故事剧情",
emotion: "情感语录",
other: "其他",
}
/** 文案条目 */
export interface ScriptItem {
id: string
/** 名称(标题) */
title: string
/** 正文 */
content: string
char_count: number
/** 分段(按段落切分,供后端/生成步骤逐段使用) */
segments?: string[]
/** 标签(逗号分隔或数组,列表展示用 Tag) */
tags?: string[]
/** 配套标题文本(选填,"使用"跳创作页时会预填到标题) */
title_text?: string
/** 分类 */
title_category?: ScriptCategory
/** 标题样式配置(字体/颜色/位置/字号) */
title_config?: ScriptTitleConfig
/** 正文字符数(后端返回,前端用于展示) */
char_count?: number
/** 使用次数(后端返回) */
use_count?: number
created_at: string
updated_at?: string
}
/** 列表查询参数(支持搜索/分类/分页) */
export interface ScriptListParams {
page?: number
page_size?: number
/** 标题/正文模糊搜索 */
keyword?: string
/** 分类筛选 */
category?: ScriptCategory | "all"
/** 标签筛选 */
tag?: string
}
/** 列表响应 */
export interface ScriptListResponse {
items: ScriptItem[]
total: number
page: number
page_size: number
}
export interface CreateScriptRequest {
/** 创建/编辑请求 */
export interface ScriptUpsertRequest {
title: string
content: string
segments?: string[]
tags?: string[]
title_text?: string
title_category?: ScriptCategory
title_config?: ScriptTitleConfig
}
export type UpdateScriptRequest = Partial<CreateScriptRequest>