feat: 完成短剧项目空间与结构化资产创作闭环 (#38)

* feat(canvas): 短剧项目空间 - 建立项目章节与画布关联 MVP

* feat(canvas): 短剧项目空间 - 完善项目资产、镜头与流程闭环

Refs #30

* fix(deploy): 本地部署 - 修复前端构建并忽略本地 PostgreSQL 配置

* feat(*): 短剧项目空间 - 完成项目、章节、资产、角色与画布创作闭环

Refs #30

---------

Co-authored-by: ddCat <ddcat666@88.com>
This commit is contained in:
ddcat666
2026-07-27 10:45:11 +08:00
committed by GitHub
parent 431b9e3294
commit d2fbc413b3
208 changed files with 22655 additions and 4234 deletions

View File

@@ -65,7 +65,7 @@ export type ChannelModel = {
modelKey: string;
displayName: string;
capability: "text" | "image" | "video" | "audio";
billingMode: "fixed_request";
billingMode: "fixed_request" | "per_second";
unitPriceMicrocredits: number;
priceConfigured: boolean;
enabled: boolean;
@@ -160,6 +160,10 @@ export type BillingOrder = {
model: string;
capability: string;
scene: string;
billingMode: "fixed_request" | "per_second";
unitPriceMicrocredits: number;
multiplierBasisPoints: number;
quantity: number;
amountMicrocredits: number;
status: "reserved" | "running" | "settled" | "refunded" | "uncertain";
providerRequestId?: string;
@@ -231,8 +235,8 @@ export function updateAdminChannelModel(channelId: string, id: string, input: Om
return request<{ model: ChannelModel }>(api.patch(`/admin/channels/${encodeURIComponent(channelId)}/models/${encodeURIComponent(id)}`, input));
}
export function disableAdminChannelModel(channelId: string, id: string) {
return request<{ ok: boolean }>(api.delete(`/admin/channels/${encodeURIComponent(channelId)}/models/${encodeURIComponent(id)}`));
export function deleteAdminChannelModel(channelId: string, id: string) {
return request<{ ok: boolean }>(api.delete(`/admin/channels/${encodeURIComponent(channelId)}/models/${encodeURIComponent(id)}`));
}
export type AdminFinanceListParams = { keyword?: string; status?: string; validity?: string; page?: number; limit?: number };