sa2kit 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1594 @@
1
+ import React__default from 'react';
2
+ import { F as FileMetadata } from '../../types-Dg-U_chI.mjs';
3
+ import { j as MMDPlaylistConfig, f as MMDResourceItem, d as MMDPlaylistNode, g as MMDResourceOptions, e as MMDResources } from '../../types-C2ale3d9.mjs';
4
+ import * as drizzle_orm from 'drizzle-orm';
5
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
6
+ import 'three';
7
+
8
+ /**
9
+ * MMD 后台管理类型定义
10
+ *
11
+ * 这个文件定义了MMD后台管理系统的所有TypeScript类型
12
+ * 包括前端组件使用的类型和后端API的类型
13
+ *
14
+ * @package sa2kit/mmd/admin
15
+ */
16
+
17
+ /**
18
+ * 播放列表配置(数据库格式)
19
+ */
20
+ interface MmdPlaylistDB {
21
+ id: string;
22
+ name: string;
23
+ description?: string;
24
+ loop: boolean;
25
+ preloadStrategy: 'none' | 'next' | 'all';
26
+ autoPlay: boolean;
27
+ thumbnailFileId?: string;
28
+ status: 'draft' | 'published' | 'archived';
29
+ sortOrder: number;
30
+ config?: Record<string, any>;
31
+ createdBy: string;
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ deletedAt?: Date;
35
+ }
36
+ /**
37
+ * 播放节点配置(数据库格式)
38
+ */
39
+ interface MmdPlaylistNodeDB {
40
+ id: string;
41
+ playlistId: string;
42
+ name: string;
43
+ description?: string;
44
+ loop: boolean;
45
+ duration?: number;
46
+ thumbnailFileId?: string;
47
+ sortOrder: number;
48
+ modelFileId: string;
49
+ motionFileId?: string;
50
+ cameraFileId?: string;
51
+ audioFileId?: string;
52
+ stageModelFileId?: string;
53
+ additionalMotionFileIds?: string[];
54
+ config?: Record<string, any>;
55
+ createdAt: Date;
56
+ updatedAt: Date;
57
+ }
58
+ /**
59
+ * 资源选项配置(数据库格式)
60
+ */
61
+ interface MmdResourceOptionDB {
62
+ id: string;
63
+ name: string;
64
+ description?: string;
65
+ resourceType: 'model' | 'motion' | 'camera' | 'audio' | 'stage';
66
+ fileId: string;
67
+ thumbnailFileId?: string;
68
+ tags?: string[];
69
+ sortOrder: number;
70
+ isActive: boolean;
71
+ createdBy: string;
72
+ createdAt: Date;
73
+ updatedAt: Date;
74
+ }
75
+ /**
76
+ * 预设项配置(数据库格式)
77
+ */
78
+ interface MmdPresetItemDB {
79
+ id: string;
80
+ name: string;
81
+ description?: string;
82
+ thumbnailFileId?: string;
83
+ modelFileId: string;
84
+ motionFileId?: string;
85
+ cameraFileId?: string;
86
+ audioFileId?: string;
87
+ stageModelFileId?: string;
88
+ additionalMotionFileIds?: string[];
89
+ sortOrder: number;
90
+ isActive: boolean;
91
+ tags?: string[];
92
+ createdBy: string;
93
+ createdAt: Date;
94
+ updatedAt: Date;
95
+ }
96
+ /**
97
+ * 播放列表配置(包含文件URL映射)
98
+ */
99
+ interface MmdPlaylistWithFiles extends Omit<MmdPlaylistDB, 'thumbnailFileId'> {
100
+ thumbnailUrl?: string;
101
+ nodes: MmdPlaylistNodeWithFiles[];
102
+ }
103
+ /**
104
+ * 播放节点配置(包含文件URL映射)
105
+ */
106
+ interface MmdPlaylistNodeWithFiles extends Omit<MmdPlaylistNodeDB, 'modelFileId' | 'motionFileId' | 'cameraFileId' | 'audioFileId' | 'stageModelFileId' | 'thumbnailFileId' | 'additionalMotionFileIds'> {
107
+ thumbnailUrl?: string;
108
+ modelUrl: string;
109
+ motionUrl?: string;
110
+ cameraUrl?: string;
111
+ audioUrl?: string;
112
+ stageModelUrl?: string;
113
+ additionalMotionUrls?: string[];
114
+ }
115
+ /**
116
+ * 资源选项配置(包含文件URL映射)
117
+ */
118
+ interface MmdResourceOptionWithFile extends Omit<MmdResourceOptionDB, 'fileId' | 'thumbnailFileId'> {
119
+ fileUrl: string;
120
+ thumbnailUrl?: string;
121
+ fileMetadata?: Partial<FileMetadata>;
122
+ }
123
+ /**
124
+ * 预设项配置(包含文件URL映射)
125
+ */
126
+ interface MmdPresetItemWithFiles extends Omit<MmdPresetItemDB, 'modelFileId' | 'motionFileId' | 'cameraFileId' | 'audioFileId' | 'stageModelFileId' | 'thumbnailFileId' | 'additionalMotionFileIds'> {
127
+ thumbnailUrl?: string;
128
+ modelUrl: string;
129
+ motionUrl?: string;
130
+ cameraUrl?: string;
131
+ audioUrl?: string;
132
+ stageModelUrl?: string;
133
+ additionalMotionUrls?: string[];
134
+ }
135
+ /**
136
+ * 创建播放列表请求
137
+ */
138
+ interface CreatePlaylistRequest {
139
+ name: string;
140
+ description?: string;
141
+ loop?: boolean;
142
+ preloadStrategy?: 'none' | 'next' | 'all';
143
+ autoPlay?: boolean;
144
+ thumbnailFileId?: string;
145
+ config?: Record<string, any>;
146
+ }
147
+ /**
148
+ * 更新播放列表请求
149
+ */
150
+ interface UpdatePlaylistRequest extends Partial<CreatePlaylistRequest> {
151
+ status?: 'draft' | 'published' | 'archived';
152
+ sortOrder?: number;
153
+ }
154
+ /**
155
+ * 创建播放节点请求
156
+ */
157
+ interface CreatePlaylistNodeRequest {
158
+ playlistId: string;
159
+ name: string;
160
+ description?: string;
161
+ loop?: boolean;
162
+ duration?: number;
163
+ thumbnailFileId?: string;
164
+ sortOrder?: number;
165
+ modelFileId: string;
166
+ motionFileId?: string;
167
+ cameraFileId?: string;
168
+ audioFileId?: string;
169
+ stageModelFileId?: string;
170
+ additionalMotionFileIds?: string[];
171
+ config?: Record<string, any>;
172
+ }
173
+ /**
174
+ * 更新播放节点请求
175
+ */
176
+ interface UpdatePlaylistNodeRequest extends Partial<Omit<CreatePlaylistNodeRequest, 'playlistId'>> {
177
+ }
178
+ /**
179
+ * 创建资源选项请求
180
+ */
181
+ interface CreateResourceOptionRequest {
182
+ name: string;
183
+ description?: string;
184
+ resourceType: 'model' | 'motion' | 'camera' | 'audio' | 'stage';
185
+ fileId: string;
186
+ thumbnailFileId?: string;
187
+ tags?: string[];
188
+ sortOrder?: number;
189
+ }
190
+ /**
191
+ * 更新资源选项请求
192
+ */
193
+ interface UpdateResourceOptionRequest extends Partial<CreateResourceOptionRequest> {
194
+ isActive?: boolean;
195
+ }
196
+ /**
197
+ * 创建预设项请求
198
+ */
199
+ interface CreatePresetItemRequest {
200
+ name: string;
201
+ description?: string;
202
+ thumbnailFileId?: string;
203
+ modelFileId: string;
204
+ motionFileId?: string;
205
+ cameraFileId?: string;
206
+ audioFileId?: string;
207
+ stageModelFileId?: string;
208
+ additionalMotionFileIds?: string[];
209
+ tags?: string[];
210
+ sortOrder?: number;
211
+ }
212
+ /**
213
+ * 更新预设项请求
214
+ */
215
+ interface UpdatePresetItemRequest extends Partial<CreatePresetItemRequest> {
216
+ isActive?: boolean;
217
+ }
218
+ /**
219
+ * 分页查询参数
220
+ */
221
+ interface PaginationQuery {
222
+ page?: number;
223
+ pageSize?: number;
224
+ sortBy?: string;
225
+ sortOrder?: 'asc' | 'desc';
226
+ }
227
+ /**
228
+ * 播放列表查询参数
229
+ */
230
+ interface PlaylistQuery extends PaginationQuery {
231
+ status?: 'draft' | 'published' | 'archived';
232
+ createdBy?: string;
233
+ search?: string;
234
+ }
235
+ /**
236
+ * 资源选项查询参数
237
+ */
238
+ interface ResourceOptionQuery extends PaginationQuery {
239
+ resourceType?: 'model' | 'motion' | 'camera' | 'audio' | 'stage';
240
+ tags?: string[];
241
+ isActive?: boolean;
242
+ search?: string;
243
+ }
244
+ /**
245
+ * 预设项查询参数
246
+ */
247
+ interface PresetItemQuery extends PaginationQuery {
248
+ tags?: string[];
249
+ isActive?: boolean;
250
+ search?: string;
251
+ }
252
+ /**
253
+ * 分页响应
254
+ */
255
+ interface PaginationResponse<T> {
256
+ items: T[];
257
+ total: number;
258
+ page: number;
259
+ pageSize: number;
260
+ totalPages: number;
261
+ }
262
+ /**
263
+ * 文件ID到URL的映射
264
+ */
265
+ interface FileIdToUrlMap {
266
+ [fileId: string]: string;
267
+ }
268
+ /**
269
+ * 批量文件URL查询响应
270
+ */
271
+ interface BatchFileUrlsResponse {
272
+ fileUrls: FileIdToUrlMap;
273
+ missingFileIds: string[];
274
+ }
275
+ /**
276
+ * MMD资源文件上传配置
277
+ */
278
+ interface MmdFileUploadConfig {
279
+ /** 模块ID(用于文件分类) */
280
+ moduleId: 'mmd-models' | 'mmd-motions' | 'mmd-cameras' | 'mmd-audios' | 'mmd-stages' | 'mmd-thumbnails';
281
+ /** 允许的文件类型 */
282
+ acceptedTypes: string[];
283
+ /** 最大文件大小(MB) */
284
+ maxFileSize: number;
285
+ /** 文件描述 */
286
+ description: string;
287
+ }
288
+ /**
289
+ * MMD资源类型配置映射
290
+ */
291
+ declare const MMD_RESOURCE_TYPE_CONFIGS: Record<string, MmdFileUploadConfig>;
292
+ /**
293
+ * MMD后台管理器组件属性
294
+ */
295
+ interface MmdAdminPanelProps {
296
+ /** UniversalFile服务实例(用于文件上传) */
297
+ fileService: any;
298
+ /** 当前用户ID */
299
+ userId: string;
300
+ /** API基础路径 */
301
+ apiBaseUrl?: string;
302
+ /** 是否显示高级选项 */
303
+ showAdvancedOptions?: boolean;
304
+ /** 自定义样式类名 */
305
+ className?: string;
306
+ }
307
+ /**
308
+ * 播放列表编辑器组件属性
309
+ */
310
+ interface PlaylistEditorProps {
311
+ /** 播放列表ID(编辑模式)或 undefined(创建模式) */
312
+ playlistId?: string;
313
+ /** UniversalFile服务实例 */
314
+ fileService: any;
315
+ /** 当前用户ID */
316
+ userId: string;
317
+ /** 保存回调 */
318
+ onSave?: (playlist: MmdPlaylistWithFiles) => void;
319
+ /** 取消回调 */
320
+ onCancel?: () => void;
321
+ }
322
+ /**
323
+ * 资源选择器组件属性
324
+ */
325
+ interface ResourceSelectorProps {
326
+ /** 资源类型 */
327
+ resourceType: 'model' | 'motion' | 'camera' | 'audio' | 'stage';
328
+ /** UniversalFile服务实例 */
329
+ fileService: any;
330
+ /** 当前用户ID */
331
+ userId: string;
332
+ /** 当前选中的文件ID */
333
+ value?: string;
334
+ /** 选择回调 */
335
+ onChange: (fileId: string, fileUrl: string) => void;
336
+ /** 是否必填 */
337
+ required?: boolean;
338
+ }
339
+ /**
340
+ * 播放列表转换为前端格式
341
+ */
342
+ type PlaylistToFrontendConverter = (playlist: MmdPlaylistDB, nodes: MmdPlaylistNodeDB[], fileUrls: FileIdToUrlMap) => MmdPlaylistWithFiles;
343
+ /**
344
+ * 播放列表转换为MMD组件格式
345
+ */
346
+ type PlaylistToMmdConfigConverter = (playlist: MmdPlaylistWithFiles) => MMDPlaylistConfig;
347
+ /**
348
+ * 资源选项转换为前端格式
349
+ */
350
+ type ResourceOptionToFrontendConverter = (option: MmdResourceOptionDB, fileUrls: FileIdToUrlMap) => MmdResourceOptionWithFile;
351
+ /**
352
+ * 预设项转换为前端格式
353
+ */
354
+ type PresetItemToFrontendConverter = (item: MmdPresetItemDB, fileUrls: FileIdToUrlMap) => MmdPresetItemWithFiles;
355
+ /**
356
+ * 预设项转换为MMD资源格式
357
+ */
358
+ type PresetItemToMmdResourceConverter = (item: MmdPresetItemWithFiles) => MMDResourceItem;
359
+
360
+ /**
361
+ * MMD 后台管理面板 - 主入口组件
362
+ *
363
+ * 功能:
364
+ * - 播放列表管理(列表、创建、编辑、删除)
365
+ * - 预设项管理
366
+ * - 资源选项管理
367
+ * - 统计信息展示
368
+ *
369
+ * @package sa2kit/mmd/admin
370
+ */
371
+
372
+ /**
373
+ * MMD后台管理面板
374
+ */
375
+ declare const MmdAdminPanel: React__default.FC<MmdAdminPanelProps>;
376
+
377
+ /**
378
+ * MMD 播放列表编辑器组件
379
+ *
380
+ * 功能:
381
+ * - 创建/编辑播放列表
382
+ * - 添加/删除/排序播放节点
383
+ * - 为每个节点配置资源(模型、动作、音频等)
384
+ * - 预览配置
385
+ *
386
+ * @package sa2kit/mmd/admin
387
+ */
388
+
389
+ /**
390
+ * 播放列表编辑器
391
+ */
392
+ declare const MmdPlaylistEditor: React__default.FC<PlaylistEditorProps>;
393
+
394
+ /**
395
+ * MMD 资源选择器组件
396
+ *
397
+ * 集成 UniversalFile 文件上传组件,支持:
398
+ * - 文件上传到OSS
399
+ * - 文件列表浏览
400
+ * - 文件选择
401
+ * - 文件预览
402
+ *
403
+ * @package sa2kit/mmd/admin
404
+ */
405
+
406
+ /**
407
+ * MMD资源选择器
408
+ */
409
+ declare const MmdResourceSelector: React__default.FC<ResourceSelectorProps>;
410
+
411
+ /**
412
+ * MMD 后台管理数据转换工具
413
+ *
414
+ * 提供数据库格式和前端格式之间的转换函数
415
+ * 以及文件ID到URL的映射功能
416
+ *
417
+ * @package sa2kit/mmd/admin
418
+ */
419
+
420
+ /**
421
+ * 从数据库记录中提取所有文件ID
422
+ */
423
+ declare function extractFileIdsFromPlaylist(playlist: MmdPlaylistDB, nodes: MmdPlaylistNodeDB[]): string[];
424
+ /**
425
+ * 从资源选项中提取文件ID
426
+ */
427
+ declare function extractFileIdsFromResourceOptions(options: MmdResourceOptionDB[]): string[];
428
+ /**
429
+ * 从预设项中提取文件ID
430
+ */
431
+ declare function extractFileIdsFromPresetItem(item: MmdPresetItemDB): string[];
432
+ /**
433
+ * 转换播放节点(数据库 -> 前端格式)
434
+ */
435
+ declare function convertPlaylistNodeToFrontend(node: MmdPlaylistNodeDB, fileUrls: FileIdToUrlMap): MmdPlaylistNodeWithFiles;
436
+ /**
437
+ * 转换播放列表(数据库 -> 前端格式)
438
+ */
439
+ declare function convertPlaylistToFrontend(playlist: MmdPlaylistDB, nodes: MmdPlaylistNodeDB[], fileUrls: FileIdToUrlMap): MmdPlaylistWithFiles;
440
+ /**
441
+ * 转换资源选项(数据库 -> 前端格式)
442
+ */
443
+ declare function convertResourceOptionToFrontend(option: MmdResourceOptionDB, fileUrls: FileIdToUrlMap): MmdResourceOptionWithFile;
444
+ /**
445
+ * 转换预设项(数据库 -> 前端格式)
446
+ */
447
+ declare function convertPresetItemToFrontend(item: MmdPresetItemDB, fileUrls: FileIdToUrlMap): MmdPresetItemWithFiles;
448
+ /**
449
+ * 转换播放节点(前端格式 -> MMD组件格式)
450
+ */
451
+ declare function convertNodeToMmdFormat(node: MmdPlaylistNodeWithFiles): MMDPlaylistNode;
452
+ /**
453
+ * 转换播放列表(前端格式 -> MMD组件格式)
454
+ */
455
+ declare function convertPlaylistToMmdConfig(playlist: MmdPlaylistWithFiles): MMDPlaylistConfig;
456
+ /**
457
+ * 转换预设项(前端格式 -> MMD资源项格式)
458
+ */
459
+ declare function convertPresetItemToMmdResource(item: MmdPresetItemWithFiles): MMDResourceItem;
460
+ /**
461
+ * 转换资源选项列表(前端格式 -> MMD资源选项格式)
462
+ */
463
+ declare function convertResourceOptionsToMmdFormat(options: MmdResourceOptionWithFile[]): MMDResourceOptions;
464
+ /**
465
+ * 验证文件URL映射是否完整
466
+ */
467
+ declare function validateFileUrls(requiredFileIds: string[], fileUrls: FileIdToUrlMap): {
468
+ valid: boolean;
469
+ missingIds: string[];
470
+ };
471
+ /**
472
+ * 生成默认文件URL映射(用于开发/测试)
473
+ */
474
+ declare function generateMockFileUrls(fileIds: string[]): FileIdToUrlMap;
475
+ /**
476
+ * 合并多个文件URL映射
477
+ */
478
+ declare function mergeFileUrlMaps(...maps: FileIdToUrlMap[]): FileIdToUrlMap;
479
+ /**
480
+ * 从MMDResources提取文件路径(用于编辑时反向映射)
481
+ */
482
+ declare function extractPathsFromMmdResources(resources: MMDResources): string[];
483
+
484
+ /**
485
+ * MMD 后台管理数据库表结构定义 (PostgreSQL)
486
+ *
487
+ * 功能:
488
+ * - 管理MMD播放列表配置
489
+ * - 管理MMD播放节点
490
+ * - 文件关联管理(与 universalFile 集成)
491
+ * - 支持多种资源类型的映射
492
+ *
493
+ * 设计原则:
494
+ * - 与 universalFile 的 file_metadata 表无缝集成
495
+ * - 支持文件ID到OSS URL的映射
496
+ * - 保持数据结构灵活性,便于扩展
497
+ *
498
+ * @package sa2kit/mmd/server
499
+ */
500
+ /**
501
+ * MMD播放列表表 (mmd_playlists)
502
+ *
503
+ * 管理MMD播放列表的基础信息
504
+ */
505
+ declare const mmdPlaylists: drizzle_orm_pg_core.PgTableWithColumns<{
506
+ name: "mmd_playlists";
507
+ schema: undefined;
508
+ columns: {
509
+ id: drizzle_orm_pg_core.PgColumn<{
510
+ name: "id";
511
+ tableName: "mmd_playlists";
512
+ dataType: "string";
513
+ columnType: "PgUUID";
514
+ data: string;
515
+ driverParam: string;
516
+ notNull: true;
517
+ hasDefault: true;
518
+ isPrimaryKey: true;
519
+ isAutoincrement: false;
520
+ hasRuntimeDefault: false;
521
+ enumValues: undefined;
522
+ baseColumn: never;
523
+ identity: undefined;
524
+ generated: undefined;
525
+ }, {}, {}>;
526
+ name: drizzle_orm_pg_core.PgColumn<{
527
+ name: "name";
528
+ tableName: "mmd_playlists";
529
+ dataType: "string";
530
+ columnType: "PgVarchar";
531
+ data: string;
532
+ driverParam: string;
533
+ notNull: true;
534
+ hasDefault: false;
535
+ isPrimaryKey: false;
536
+ isAutoincrement: false;
537
+ hasRuntimeDefault: false;
538
+ enumValues: [string, ...string[]];
539
+ baseColumn: never;
540
+ identity: undefined;
541
+ generated: undefined;
542
+ }, {}, {
543
+ length: 255;
544
+ }>;
545
+ description: drizzle_orm_pg_core.PgColumn<{
546
+ name: "description";
547
+ tableName: "mmd_playlists";
548
+ dataType: "string";
549
+ columnType: "PgText";
550
+ data: string;
551
+ driverParam: string;
552
+ notNull: false;
553
+ hasDefault: false;
554
+ isPrimaryKey: false;
555
+ isAutoincrement: false;
556
+ hasRuntimeDefault: false;
557
+ enumValues: [string, ...string[]];
558
+ baseColumn: never;
559
+ identity: undefined;
560
+ generated: undefined;
561
+ }, {}, {}>;
562
+ loop: drizzle_orm_pg_core.PgColumn<{
563
+ name: "loop";
564
+ tableName: "mmd_playlists";
565
+ dataType: "boolean";
566
+ columnType: "PgBoolean";
567
+ data: boolean;
568
+ driverParam: boolean;
569
+ notNull: true;
570
+ hasDefault: true;
571
+ isPrimaryKey: false;
572
+ isAutoincrement: false;
573
+ hasRuntimeDefault: false;
574
+ enumValues: undefined;
575
+ baseColumn: never;
576
+ identity: undefined;
577
+ generated: undefined;
578
+ }, {}, {}>;
579
+ preloadStrategy: drizzle_orm_pg_core.PgColumn<{
580
+ name: "preload_strategy";
581
+ tableName: "mmd_playlists";
582
+ dataType: "string";
583
+ columnType: "PgVarchar";
584
+ data: string;
585
+ driverParam: string;
586
+ notNull: true;
587
+ hasDefault: true;
588
+ isPrimaryKey: false;
589
+ isAutoincrement: false;
590
+ hasRuntimeDefault: false;
591
+ enumValues: [string, ...string[]];
592
+ baseColumn: never;
593
+ identity: undefined;
594
+ generated: undefined;
595
+ }, {}, {
596
+ length: 20;
597
+ }>;
598
+ autoPlay: drizzle_orm_pg_core.PgColumn<{
599
+ name: "auto_play";
600
+ tableName: "mmd_playlists";
601
+ dataType: "boolean";
602
+ columnType: "PgBoolean";
603
+ data: boolean;
604
+ driverParam: boolean;
605
+ notNull: true;
606
+ hasDefault: true;
607
+ isPrimaryKey: false;
608
+ isAutoincrement: false;
609
+ hasRuntimeDefault: false;
610
+ enumValues: undefined;
611
+ baseColumn: never;
612
+ identity: undefined;
613
+ generated: undefined;
614
+ }, {}, {}>;
615
+ thumbnailFileId: drizzle_orm_pg_core.PgColumn<{
616
+ name: "thumbnail_file_id";
617
+ tableName: "mmd_playlists";
618
+ dataType: "string";
619
+ columnType: "PgUUID";
620
+ data: string;
621
+ driverParam: string;
622
+ notNull: false;
623
+ hasDefault: false;
624
+ isPrimaryKey: false;
625
+ isAutoincrement: false;
626
+ hasRuntimeDefault: false;
627
+ enumValues: undefined;
628
+ baseColumn: never;
629
+ identity: undefined;
630
+ generated: undefined;
631
+ }, {}, {}>;
632
+ status: drizzle_orm_pg_core.PgColumn<{
633
+ name: "status";
634
+ tableName: "mmd_playlists";
635
+ dataType: "string";
636
+ columnType: "PgVarchar";
637
+ data: string;
638
+ driverParam: string;
639
+ notNull: true;
640
+ hasDefault: true;
641
+ isPrimaryKey: false;
642
+ isAutoincrement: false;
643
+ hasRuntimeDefault: false;
644
+ enumValues: [string, ...string[]];
645
+ baseColumn: never;
646
+ identity: undefined;
647
+ generated: undefined;
648
+ }, {}, {
649
+ length: 20;
650
+ }>;
651
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
652
+ name: "sort_order";
653
+ tableName: "mmd_playlists";
654
+ dataType: "number";
655
+ columnType: "PgInteger";
656
+ data: number;
657
+ driverParam: string | number;
658
+ notNull: true;
659
+ hasDefault: true;
660
+ isPrimaryKey: false;
661
+ isAutoincrement: false;
662
+ hasRuntimeDefault: false;
663
+ enumValues: undefined;
664
+ baseColumn: never;
665
+ identity: undefined;
666
+ generated: undefined;
667
+ }, {}, {}>;
668
+ config: drizzle_orm_pg_core.PgColumn<{
669
+ name: "config";
670
+ tableName: "mmd_playlists";
671
+ dataType: "json";
672
+ columnType: "PgJson";
673
+ data: unknown;
674
+ driverParam: unknown;
675
+ notNull: false;
676
+ hasDefault: false;
677
+ isPrimaryKey: false;
678
+ isAutoincrement: false;
679
+ hasRuntimeDefault: false;
680
+ enumValues: undefined;
681
+ baseColumn: never;
682
+ identity: undefined;
683
+ generated: undefined;
684
+ }, {}, {}>;
685
+ createdBy: drizzle_orm_pg_core.PgColumn<{
686
+ name: "created_by";
687
+ tableName: "mmd_playlists";
688
+ dataType: "string";
689
+ columnType: "PgVarchar";
690
+ data: string;
691
+ driverParam: string;
692
+ notNull: true;
693
+ hasDefault: false;
694
+ isPrimaryKey: false;
695
+ isAutoincrement: false;
696
+ hasRuntimeDefault: false;
697
+ enumValues: [string, ...string[]];
698
+ baseColumn: never;
699
+ identity: undefined;
700
+ generated: undefined;
701
+ }, {}, {
702
+ length: 255;
703
+ }>;
704
+ createdAt: drizzle_orm_pg_core.PgColumn<{
705
+ name: "created_at";
706
+ tableName: "mmd_playlists";
707
+ dataType: "date";
708
+ columnType: "PgTimestamp";
709
+ data: Date;
710
+ driverParam: string;
711
+ notNull: true;
712
+ hasDefault: true;
713
+ isPrimaryKey: false;
714
+ isAutoincrement: false;
715
+ hasRuntimeDefault: false;
716
+ enumValues: undefined;
717
+ baseColumn: never;
718
+ identity: undefined;
719
+ generated: undefined;
720
+ }, {}, {}>;
721
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
722
+ name: "updated_at";
723
+ tableName: "mmd_playlists";
724
+ dataType: "date";
725
+ columnType: "PgTimestamp";
726
+ data: Date;
727
+ driverParam: string;
728
+ notNull: true;
729
+ hasDefault: true;
730
+ isPrimaryKey: false;
731
+ isAutoincrement: false;
732
+ hasRuntimeDefault: false;
733
+ enumValues: undefined;
734
+ baseColumn: never;
735
+ identity: undefined;
736
+ generated: undefined;
737
+ }, {}, {}>;
738
+ deletedAt: drizzle_orm_pg_core.PgColumn<{
739
+ name: "deleted_at";
740
+ tableName: "mmd_playlists";
741
+ dataType: "date";
742
+ columnType: "PgTimestamp";
743
+ data: Date;
744
+ driverParam: string;
745
+ notNull: false;
746
+ hasDefault: false;
747
+ isPrimaryKey: false;
748
+ isAutoincrement: false;
749
+ hasRuntimeDefault: false;
750
+ enumValues: undefined;
751
+ baseColumn: never;
752
+ identity: undefined;
753
+ generated: undefined;
754
+ }, {}, {}>;
755
+ };
756
+ dialect: "pg";
757
+ }>;
758
+ /**
759
+ * MMD播放节点表 (mmd_playlist_nodes)
760
+ *
761
+ * 管理播放列表中的每个播放节点
762
+ */
763
+ declare const mmdPlaylistNodes: drizzle_orm_pg_core.PgTableWithColumns<{
764
+ name: "mmd_playlist_nodes";
765
+ schema: undefined;
766
+ columns: {
767
+ id: drizzle_orm_pg_core.PgColumn<{
768
+ name: "id";
769
+ tableName: "mmd_playlist_nodes";
770
+ dataType: "string";
771
+ columnType: "PgUUID";
772
+ data: string;
773
+ driverParam: string;
774
+ notNull: true;
775
+ hasDefault: true;
776
+ isPrimaryKey: true;
777
+ isAutoincrement: false;
778
+ hasRuntimeDefault: false;
779
+ enumValues: undefined;
780
+ baseColumn: never;
781
+ identity: undefined;
782
+ generated: undefined;
783
+ }, {}, {}>;
784
+ playlistId: drizzle_orm_pg_core.PgColumn<{
785
+ name: "playlist_id";
786
+ tableName: "mmd_playlist_nodes";
787
+ dataType: "string";
788
+ columnType: "PgUUID";
789
+ data: string;
790
+ driverParam: string;
791
+ notNull: true;
792
+ hasDefault: false;
793
+ isPrimaryKey: false;
794
+ isAutoincrement: false;
795
+ hasRuntimeDefault: false;
796
+ enumValues: undefined;
797
+ baseColumn: never;
798
+ identity: undefined;
799
+ generated: undefined;
800
+ }, {}, {}>;
801
+ name: drizzle_orm_pg_core.PgColumn<{
802
+ name: "name";
803
+ tableName: "mmd_playlist_nodes";
804
+ dataType: "string";
805
+ columnType: "PgVarchar";
806
+ data: string;
807
+ driverParam: string;
808
+ notNull: true;
809
+ hasDefault: false;
810
+ isPrimaryKey: false;
811
+ isAutoincrement: false;
812
+ hasRuntimeDefault: false;
813
+ enumValues: [string, ...string[]];
814
+ baseColumn: never;
815
+ identity: undefined;
816
+ generated: undefined;
817
+ }, {}, {
818
+ length: 255;
819
+ }>;
820
+ description: drizzle_orm_pg_core.PgColumn<{
821
+ name: "description";
822
+ tableName: "mmd_playlist_nodes";
823
+ dataType: "string";
824
+ columnType: "PgText";
825
+ data: string;
826
+ driverParam: string;
827
+ notNull: false;
828
+ hasDefault: false;
829
+ isPrimaryKey: false;
830
+ isAutoincrement: false;
831
+ hasRuntimeDefault: false;
832
+ enumValues: [string, ...string[]];
833
+ baseColumn: never;
834
+ identity: undefined;
835
+ generated: undefined;
836
+ }, {}, {}>;
837
+ loop: drizzle_orm_pg_core.PgColumn<{
838
+ name: "loop";
839
+ tableName: "mmd_playlist_nodes";
840
+ dataType: "boolean";
841
+ columnType: "PgBoolean";
842
+ data: boolean;
843
+ driverParam: boolean;
844
+ notNull: true;
845
+ hasDefault: true;
846
+ isPrimaryKey: false;
847
+ isAutoincrement: false;
848
+ hasRuntimeDefault: false;
849
+ enumValues: undefined;
850
+ baseColumn: never;
851
+ identity: undefined;
852
+ generated: undefined;
853
+ }, {}, {}>;
854
+ duration: drizzle_orm_pg_core.PgColumn<{
855
+ name: "duration";
856
+ tableName: "mmd_playlist_nodes";
857
+ dataType: "number";
858
+ columnType: "PgInteger";
859
+ data: number;
860
+ driverParam: string | number;
861
+ notNull: false;
862
+ hasDefault: false;
863
+ isPrimaryKey: false;
864
+ isAutoincrement: false;
865
+ hasRuntimeDefault: false;
866
+ enumValues: undefined;
867
+ baseColumn: never;
868
+ identity: undefined;
869
+ generated: undefined;
870
+ }, {}, {}>;
871
+ thumbnailFileId: drizzle_orm_pg_core.PgColumn<{
872
+ name: "thumbnail_file_id";
873
+ tableName: "mmd_playlist_nodes";
874
+ dataType: "string";
875
+ columnType: "PgUUID";
876
+ data: string;
877
+ driverParam: string;
878
+ notNull: false;
879
+ hasDefault: false;
880
+ isPrimaryKey: false;
881
+ isAutoincrement: false;
882
+ hasRuntimeDefault: false;
883
+ enumValues: undefined;
884
+ baseColumn: never;
885
+ identity: undefined;
886
+ generated: undefined;
887
+ }, {}, {}>;
888
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
889
+ name: "sort_order";
890
+ tableName: "mmd_playlist_nodes";
891
+ dataType: "number";
892
+ columnType: "PgInteger";
893
+ data: number;
894
+ driverParam: string | number;
895
+ notNull: true;
896
+ hasDefault: true;
897
+ isPrimaryKey: false;
898
+ isAutoincrement: false;
899
+ hasRuntimeDefault: false;
900
+ enumValues: undefined;
901
+ baseColumn: never;
902
+ identity: undefined;
903
+ generated: undefined;
904
+ }, {}, {}>;
905
+ modelFileId: drizzle_orm_pg_core.PgColumn<{
906
+ name: "model_file_id";
907
+ tableName: "mmd_playlist_nodes";
908
+ dataType: "string";
909
+ columnType: "PgUUID";
910
+ data: string;
911
+ driverParam: string;
912
+ notNull: true;
913
+ hasDefault: false;
914
+ isPrimaryKey: false;
915
+ isAutoincrement: false;
916
+ hasRuntimeDefault: false;
917
+ enumValues: undefined;
918
+ baseColumn: never;
919
+ identity: undefined;
920
+ generated: undefined;
921
+ }, {}, {}>;
922
+ motionFileId: drizzle_orm_pg_core.PgColumn<{
923
+ name: "motion_file_id";
924
+ tableName: "mmd_playlist_nodes";
925
+ dataType: "string";
926
+ columnType: "PgUUID";
927
+ data: string;
928
+ driverParam: string;
929
+ notNull: false;
930
+ hasDefault: false;
931
+ isPrimaryKey: false;
932
+ isAutoincrement: false;
933
+ hasRuntimeDefault: false;
934
+ enumValues: undefined;
935
+ baseColumn: never;
936
+ identity: undefined;
937
+ generated: undefined;
938
+ }, {}, {}>;
939
+ cameraFileId: drizzle_orm_pg_core.PgColumn<{
940
+ name: "camera_file_id";
941
+ tableName: "mmd_playlist_nodes";
942
+ dataType: "string";
943
+ columnType: "PgUUID";
944
+ data: string;
945
+ driverParam: string;
946
+ notNull: false;
947
+ hasDefault: false;
948
+ isPrimaryKey: false;
949
+ isAutoincrement: false;
950
+ hasRuntimeDefault: false;
951
+ enumValues: undefined;
952
+ baseColumn: never;
953
+ identity: undefined;
954
+ generated: undefined;
955
+ }, {}, {}>;
956
+ audioFileId: drizzle_orm_pg_core.PgColumn<{
957
+ name: "audio_file_id";
958
+ tableName: "mmd_playlist_nodes";
959
+ dataType: "string";
960
+ columnType: "PgUUID";
961
+ data: string;
962
+ driverParam: string;
963
+ notNull: false;
964
+ hasDefault: false;
965
+ isPrimaryKey: false;
966
+ isAutoincrement: false;
967
+ hasRuntimeDefault: false;
968
+ enumValues: undefined;
969
+ baseColumn: never;
970
+ identity: undefined;
971
+ generated: undefined;
972
+ }, {}, {}>;
973
+ stageModelFileId: drizzle_orm_pg_core.PgColumn<{
974
+ name: "stage_model_file_id";
975
+ tableName: "mmd_playlist_nodes";
976
+ dataType: "string";
977
+ columnType: "PgUUID";
978
+ data: string;
979
+ driverParam: string;
980
+ notNull: false;
981
+ hasDefault: false;
982
+ isPrimaryKey: false;
983
+ isAutoincrement: false;
984
+ hasRuntimeDefault: false;
985
+ enumValues: undefined;
986
+ baseColumn: never;
987
+ identity: undefined;
988
+ generated: undefined;
989
+ }, {}, {}>;
990
+ additionalMotionFileIds: drizzle_orm_pg_core.PgColumn<{
991
+ name: "additional_motion_file_ids";
992
+ tableName: "mmd_playlist_nodes";
993
+ dataType: "json";
994
+ columnType: "PgJson";
995
+ data: string[];
996
+ driverParam: unknown;
997
+ notNull: false;
998
+ hasDefault: false;
999
+ isPrimaryKey: false;
1000
+ isAutoincrement: false;
1001
+ hasRuntimeDefault: false;
1002
+ enumValues: undefined;
1003
+ baseColumn: never;
1004
+ identity: undefined;
1005
+ generated: undefined;
1006
+ }, {}, {
1007
+ $type: string[];
1008
+ }>;
1009
+ config: drizzle_orm_pg_core.PgColumn<{
1010
+ name: "config";
1011
+ tableName: "mmd_playlist_nodes";
1012
+ dataType: "json";
1013
+ columnType: "PgJson";
1014
+ data: unknown;
1015
+ driverParam: unknown;
1016
+ notNull: false;
1017
+ hasDefault: false;
1018
+ isPrimaryKey: false;
1019
+ isAutoincrement: false;
1020
+ hasRuntimeDefault: false;
1021
+ enumValues: undefined;
1022
+ baseColumn: never;
1023
+ identity: undefined;
1024
+ generated: undefined;
1025
+ }, {}, {}>;
1026
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1027
+ name: "created_at";
1028
+ tableName: "mmd_playlist_nodes";
1029
+ dataType: "date";
1030
+ columnType: "PgTimestamp";
1031
+ data: Date;
1032
+ driverParam: string;
1033
+ notNull: true;
1034
+ hasDefault: true;
1035
+ isPrimaryKey: false;
1036
+ isAutoincrement: false;
1037
+ hasRuntimeDefault: false;
1038
+ enumValues: undefined;
1039
+ baseColumn: never;
1040
+ identity: undefined;
1041
+ generated: undefined;
1042
+ }, {}, {}>;
1043
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1044
+ name: "updated_at";
1045
+ tableName: "mmd_playlist_nodes";
1046
+ dataType: "date";
1047
+ columnType: "PgTimestamp";
1048
+ data: Date;
1049
+ driverParam: string;
1050
+ notNull: true;
1051
+ hasDefault: true;
1052
+ isPrimaryKey: false;
1053
+ isAutoincrement: false;
1054
+ hasRuntimeDefault: false;
1055
+ enumValues: undefined;
1056
+ baseColumn: never;
1057
+ identity: undefined;
1058
+ generated: undefined;
1059
+ }, {}, {}>;
1060
+ };
1061
+ dialect: "pg";
1062
+ }>;
1063
+ /**
1064
+ * MMD资源选项表 (mmd_resource_options)
1065
+ *
1066
+ * 管理可选的MMD资源(用于自由组合模式)
1067
+ */
1068
+ declare const mmdResourceOptions: drizzle_orm_pg_core.PgTableWithColumns<{
1069
+ name: "mmd_resource_options";
1070
+ schema: undefined;
1071
+ columns: {
1072
+ id: drizzle_orm_pg_core.PgColumn<{
1073
+ name: "id";
1074
+ tableName: "mmd_resource_options";
1075
+ dataType: "string";
1076
+ columnType: "PgUUID";
1077
+ data: string;
1078
+ driverParam: string;
1079
+ notNull: true;
1080
+ hasDefault: true;
1081
+ isPrimaryKey: true;
1082
+ isAutoincrement: false;
1083
+ hasRuntimeDefault: false;
1084
+ enumValues: undefined;
1085
+ baseColumn: never;
1086
+ identity: undefined;
1087
+ generated: undefined;
1088
+ }, {}, {}>;
1089
+ name: drizzle_orm_pg_core.PgColumn<{
1090
+ name: "name";
1091
+ tableName: "mmd_resource_options";
1092
+ dataType: "string";
1093
+ columnType: "PgVarchar";
1094
+ data: string;
1095
+ driverParam: string;
1096
+ notNull: true;
1097
+ hasDefault: false;
1098
+ isPrimaryKey: false;
1099
+ isAutoincrement: false;
1100
+ hasRuntimeDefault: false;
1101
+ enumValues: [string, ...string[]];
1102
+ baseColumn: never;
1103
+ identity: undefined;
1104
+ generated: undefined;
1105
+ }, {}, {
1106
+ length: 255;
1107
+ }>;
1108
+ description: drizzle_orm_pg_core.PgColumn<{
1109
+ name: "description";
1110
+ tableName: "mmd_resource_options";
1111
+ dataType: "string";
1112
+ columnType: "PgText";
1113
+ data: string;
1114
+ driverParam: string;
1115
+ notNull: false;
1116
+ hasDefault: false;
1117
+ isPrimaryKey: false;
1118
+ isAutoincrement: false;
1119
+ hasRuntimeDefault: false;
1120
+ enumValues: [string, ...string[]];
1121
+ baseColumn: never;
1122
+ identity: undefined;
1123
+ generated: undefined;
1124
+ }, {}, {}>;
1125
+ resourceType: drizzle_orm_pg_core.PgColumn<{
1126
+ name: "resource_type";
1127
+ tableName: "mmd_resource_options";
1128
+ dataType: "string";
1129
+ columnType: "PgVarchar";
1130
+ data: string;
1131
+ driverParam: string;
1132
+ notNull: true;
1133
+ hasDefault: false;
1134
+ isPrimaryKey: false;
1135
+ isAutoincrement: false;
1136
+ hasRuntimeDefault: false;
1137
+ enumValues: [string, ...string[]];
1138
+ baseColumn: never;
1139
+ identity: undefined;
1140
+ generated: undefined;
1141
+ }, {}, {
1142
+ length: 20;
1143
+ }>;
1144
+ fileId: drizzle_orm_pg_core.PgColumn<{
1145
+ name: "file_id";
1146
+ tableName: "mmd_resource_options";
1147
+ dataType: "string";
1148
+ columnType: "PgUUID";
1149
+ data: string;
1150
+ driverParam: string;
1151
+ notNull: true;
1152
+ hasDefault: false;
1153
+ isPrimaryKey: false;
1154
+ isAutoincrement: false;
1155
+ hasRuntimeDefault: false;
1156
+ enumValues: undefined;
1157
+ baseColumn: never;
1158
+ identity: undefined;
1159
+ generated: undefined;
1160
+ }, {}, {}>;
1161
+ thumbnailFileId: drizzle_orm_pg_core.PgColumn<{
1162
+ name: "thumbnail_file_id";
1163
+ tableName: "mmd_resource_options";
1164
+ dataType: "string";
1165
+ columnType: "PgUUID";
1166
+ data: string;
1167
+ driverParam: string;
1168
+ notNull: false;
1169
+ hasDefault: false;
1170
+ isPrimaryKey: false;
1171
+ isAutoincrement: false;
1172
+ hasRuntimeDefault: false;
1173
+ enumValues: undefined;
1174
+ baseColumn: never;
1175
+ identity: undefined;
1176
+ generated: undefined;
1177
+ }, {}, {}>;
1178
+ tags: drizzle_orm_pg_core.PgColumn<{
1179
+ name: "tags";
1180
+ tableName: "mmd_resource_options";
1181
+ dataType: "json";
1182
+ columnType: "PgJson";
1183
+ data: string[];
1184
+ driverParam: unknown;
1185
+ notNull: false;
1186
+ hasDefault: false;
1187
+ isPrimaryKey: false;
1188
+ isAutoincrement: false;
1189
+ hasRuntimeDefault: false;
1190
+ enumValues: undefined;
1191
+ baseColumn: never;
1192
+ identity: undefined;
1193
+ generated: undefined;
1194
+ }, {}, {
1195
+ $type: string[];
1196
+ }>;
1197
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
1198
+ name: "sort_order";
1199
+ tableName: "mmd_resource_options";
1200
+ dataType: "number";
1201
+ columnType: "PgInteger";
1202
+ data: number;
1203
+ driverParam: string | number;
1204
+ notNull: true;
1205
+ hasDefault: true;
1206
+ isPrimaryKey: false;
1207
+ isAutoincrement: false;
1208
+ hasRuntimeDefault: false;
1209
+ enumValues: undefined;
1210
+ baseColumn: never;
1211
+ identity: undefined;
1212
+ generated: undefined;
1213
+ }, {}, {}>;
1214
+ isActive: drizzle_orm_pg_core.PgColumn<{
1215
+ name: "is_active";
1216
+ tableName: "mmd_resource_options";
1217
+ dataType: "boolean";
1218
+ columnType: "PgBoolean";
1219
+ data: boolean;
1220
+ driverParam: boolean;
1221
+ notNull: true;
1222
+ hasDefault: true;
1223
+ isPrimaryKey: false;
1224
+ isAutoincrement: false;
1225
+ hasRuntimeDefault: false;
1226
+ enumValues: undefined;
1227
+ baseColumn: never;
1228
+ identity: undefined;
1229
+ generated: undefined;
1230
+ }, {}, {}>;
1231
+ createdBy: drizzle_orm_pg_core.PgColumn<{
1232
+ name: "created_by";
1233
+ tableName: "mmd_resource_options";
1234
+ dataType: "string";
1235
+ columnType: "PgVarchar";
1236
+ data: string;
1237
+ driverParam: string;
1238
+ notNull: true;
1239
+ hasDefault: false;
1240
+ isPrimaryKey: false;
1241
+ isAutoincrement: false;
1242
+ hasRuntimeDefault: false;
1243
+ enumValues: [string, ...string[]];
1244
+ baseColumn: never;
1245
+ identity: undefined;
1246
+ generated: undefined;
1247
+ }, {}, {
1248
+ length: 255;
1249
+ }>;
1250
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1251
+ name: "created_at";
1252
+ tableName: "mmd_resource_options";
1253
+ dataType: "date";
1254
+ columnType: "PgTimestamp";
1255
+ data: Date;
1256
+ driverParam: string;
1257
+ notNull: true;
1258
+ hasDefault: true;
1259
+ isPrimaryKey: false;
1260
+ isAutoincrement: false;
1261
+ hasRuntimeDefault: false;
1262
+ enumValues: undefined;
1263
+ baseColumn: never;
1264
+ identity: undefined;
1265
+ generated: undefined;
1266
+ }, {}, {}>;
1267
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1268
+ name: "updated_at";
1269
+ tableName: "mmd_resource_options";
1270
+ dataType: "date";
1271
+ columnType: "PgTimestamp";
1272
+ data: Date;
1273
+ driverParam: string;
1274
+ notNull: true;
1275
+ hasDefault: true;
1276
+ isPrimaryKey: false;
1277
+ isAutoincrement: false;
1278
+ hasRuntimeDefault: false;
1279
+ enumValues: undefined;
1280
+ baseColumn: never;
1281
+ identity: undefined;
1282
+ generated: undefined;
1283
+ }, {}, {}>;
1284
+ };
1285
+ dialect: "pg";
1286
+ }>;
1287
+ /**
1288
+ * MMD预设列表项表 (mmd_preset_items)
1289
+ *
1290
+ * 管理预设的MMD资源组合(用于列表模式)
1291
+ */
1292
+ declare const mmdPresetItems: drizzle_orm_pg_core.PgTableWithColumns<{
1293
+ name: "mmd_preset_items";
1294
+ schema: undefined;
1295
+ columns: {
1296
+ id: drizzle_orm_pg_core.PgColumn<{
1297
+ name: "id";
1298
+ tableName: "mmd_preset_items";
1299
+ dataType: "string";
1300
+ columnType: "PgUUID";
1301
+ data: string;
1302
+ driverParam: string;
1303
+ notNull: true;
1304
+ hasDefault: true;
1305
+ isPrimaryKey: true;
1306
+ isAutoincrement: false;
1307
+ hasRuntimeDefault: false;
1308
+ enumValues: undefined;
1309
+ baseColumn: never;
1310
+ identity: undefined;
1311
+ generated: undefined;
1312
+ }, {}, {}>;
1313
+ name: drizzle_orm_pg_core.PgColumn<{
1314
+ name: "name";
1315
+ tableName: "mmd_preset_items";
1316
+ dataType: "string";
1317
+ columnType: "PgVarchar";
1318
+ data: string;
1319
+ driverParam: string;
1320
+ notNull: true;
1321
+ hasDefault: false;
1322
+ isPrimaryKey: false;
1323
+ isAutoincrement: false;
1324
+ hasRuntimeDefault: false;
1325
+ enumValues: [string, ...string[]];
1326
+ baseColumn: never;
1327
+ identity: undefined;
1328
+ generated: undefined;
1329
+ }, {}, {
1330
+ length: 255;
1331
+ }>;
1332
+ description: drizzle_orm_pg_core.PgColumn<{
1333
+ name: "description";
1334
+ tableName: "mmd_preset_items";
1335
+ dataType: "string";
1336
+ columnType: "PgText";
1337
+ data: string;
1338
+ driverParam: string;
1339
+ notNull: false;
1340
+ hasDefault: false;
1341
+ isPrimaryKey: false;
1342
+ isAutoincrement: false;
1343
+ hasRuntimeDefault: false;
1344
+ enumValues: [string, ...string[]];
1345
+ baseColumn: never;
1346
+ identity: undefined;
1347
+ generated: undefined;
1348
+ }, {}, {}>;
1349
+ thumbnailFileId: drizzle_orm_pg_core.PgColumn<{
1350
+ name: "thumbnail_file_id";
1351
+ tableName: "mmd_preset_items";
1352
+ dataType: "string";
1353
+ columnType: "PgUUID";
1354
+ data: string;
1355
+ driverParam: string;
1356
+ notNull: false;
1357
+ hasDefault: false;
1358
+ isPrimaryKey: false;
1359
+ isAutoincrement: false;
1360
+ hasRuntimeDefault: false;
1361
+ enumValues: undefined;
1362
+ baseColumn: never;
1363
+ identity: undefined;
1364
+ generated: undefined;
1365
+ }, {}, {}>;
1366
+ modelFileId: drizzle_orm_pg_core.PgColumn<{
1367
+ name: "model_file_id";
1368
+ tableName: "mmd_preset_items";
1369
+ dataType: "string";
1370
+ columnType: "PgUUID";
1371
+ data: string;
1372
+ driverParam: string;
1373
+ notNull: true;
1374
+ hasDefault: false;
1375
+ isPrimaryKey: false;
1376
+ isAutoincrement: false;
1377
+ hasRuntimeDefault: false;
1378
+ enumValues: undefined;
1379
+ baseColumn: never;
1380
+ identity: undefined;
1381
+ generated: undefined;
1382
+ }, {}, {}>;
1383
+ motionFileId: drizzle_orm_pg_core.PgColumn<{
1384
+ name: "motion_file_id";
1385
+ tableName: "mmd_preset_items";
1386
+ dataType: "string";
1387
+ columnType: "PgUUID";
1388
+ data: string;
1389
+ driverParam: string;
1390
+ notNull: false;
1391
+ hasDefault: false;
1392
+ isPrimaryKey: false;
1393
+ isAutoincrement: false;
1394
+ hasRuntimeDefault: false;
1395
+ enumValues: undefined;
1396
+ baseColumn: never;
1397
+ identity: undefined;
1398
+ generated: undefined;
1399
+ }, {}, {}>;
1400
+ cameraFileId: drizzle_orm_pg_core.PgColumn<{
1401
+ name: "camera_file_id";
1402
+ tableName: "mmd_preset_items";
1403
+ dataType: "string";
1404
+ columnType: "PgUUID";
1405
+ data: string;
1406
+ driverParam: string;
1407
+ notNull: false;
1408
+ hasDefault: false;
1409
+ isPrimaryKey: false;
1410
+ isAutoincrement: false;
1411
+ hasRuntimeDefault: false;
1412
+ enumValues: undefined;
1413
+ baseColumn: never;
1414
+ identity: undefined;
1415
+ generated: undefined;
1416
+ }, {}, {}>;
1417
+ audioFileId: drizzle_orm_pg_core.PgColumn<{
1418
+ name: "audio_file_id";
1419
+ tableName: "mmd_preset_items";
1420
+ dataType: "string";
1421
+ columnType: "PgUUID";
1422
+ data: string;
1423
+ driverParam: string;
1424
+ notNull: false;
1425
+ hasDefault: false;
1426
+ isPrimaryKey: false;
1427
+ isAutoincrement: false;
1428
+ hasRuntimeDefault: false;
1429
+ enumValues: undefined;
1430
+ baseColumn: never;
1431
+ identity: undefined;
1432
+ generated: undefined;
1433
+ }, {}, {}>;
1434
+ stageModelFileId: drizzle_orm_pg_core.PgColumn<{
1435
+ name: "stage_model_file_id";
1436
+ tableName: "mmd_preset_items";
1437
+ dataType: "string";
1438
+ columnType: "PgUUID";
1439
+ data: string;
1440
+ driverParam: string;
1441
+ notNull: false;
1442
+ hasDefault: false;
1443
+ isPrimaryKey: false;
1444
+ isAutoincrement: false;
1445
+ hasRuntimeDefault: false;
1446
+ enumValues: undefined;
1447
+ baseColumn: never;
1448
+ identity: undefined;
1449
+ generated: undefined;
1450
+ }, {}, {}>;
1451
+ additionalMotionFileIds: drizzle_orm_pg_core.PgColumn<{
1452
+ name: "additional_motion_file_ids";
1453
+ tableName: "mmd_preset_items";
1454
+ dataType: "json";
1455
+ columnType: "PgJson";
1456
+ data: string[];
1457
+ driverParam: unknown;
1458
+ notNull: false;
1459
+ hasDefault: false;
1460
+ isPrimaryKey: false;
1461
+ isAutoincrement: false;
1462
+ hasRuntimeDefault: false;
1463
+ enumValues: undefined;
1464
+ baseColumn: never;
1465
+ identity: undefined;
1466
+ generated: undefined;
1467
+ }, {}, {
1468
+ $type: string[];
1469
+ }>;
1470
+ sortOrder: drizzle_orm_pg_core.PgColumn<{
1471
+ name: "sort_order";
1472
+ tableName: "mmd_preset_items";
1473
+ dataType: "number";
1474
+ columnType: "PgInteger";
1475
+ data: number;
1476
+ driverParam: string | number;
1477
+ notNull: true;
1478
+ hasDefault: true;
1479
+ isPrimaryKey: false;
1480
+ isAutoincrement: false;
1481
+ hasRuntimeDefault: false;
1482
+ enumValues: undefined;
1483
+ baseColumn: never;
1484
+ identity: undefined;
1485
+ generated: undefined;
1486
+ }, {}, {}>;
1487
+ isActive: drizzle_orm_pg_core.PgColumn<{
1488
+ name: "is_active";
1489
+ tableName: "mmd_preset_items";
1490
+ dataType: "boolean";
1491
+ columnType: "PgBoolean";
1492
+ data: boolean;
1493
+ driverParam: boolean;
1494
+ notNull: true;
1495
+ hasDefault: true;
1496
+ isPrimaryKey: false;
1497
+ isAutoincrement: false;
1498
+ hasRuntimeDefault: false;
1499
+ enumValues: undefined;
1500
+ baseColumn: never;
1501
+ identity: undefined;
1502
+ generated: undefined;
1503
+ }, {}, {}>;
1504
+ tags: drizzle_orm_pg_core.PgColumn<{
1505
+ name: "tags";
1506
+ tableName: "mmd_preset_items";
1507
+ dataType: "json";
1508
+ columnType: "PgJson";
1509
+ data: string[];
1510
+ driverParam: unknown;
1511
+ notNull: false;
1512
+ hasDefault: false;
1513
+ isPrimaryKey: false;
1514
+ isAutoincrement: false;
1515
+ hasRuntimeDefault: false;
1516
+ enumValues: undefined;
1517
+ baseColumn: never;
1518
+ identity: undefined;
1519
+ generated: undefined;
1520
+ }, {}, {
1521
+ $type: string[];
1522
+ }>;
1523
+ createdBy: drizzle_orm_pg_core.PgColumn<{
1524
+ name: "created_by";
1525
+ tableName: "mmd_preset_items";
1526
+ dataType: "string";
1527
+ columnType: "PgVarchar";
1528
+ data: string;
1529
+ driverParam: string;
1530
+ notNull: true;
1531
+ hasDefault: false;
1532
+ isPrimaryKey: false;
1533
+ isAutoincrement: false;
1534
+ hasRuntimeDefault: false;
1535
+ enumValues: [string, ...string[]];
1536
+ baseColumn: never;
1537
+ identity: undefined;
1538
+ generated: undefined;
1539
+ }, {}, {
1540
+ length: 255;
1541
+ }>;
1542
+ createdAt: drizzle_orm_pg_core.PgColumn<{
1543
+ name: "created_at";
1544
+ tableName: "mmd_preset_items";
1545
+ dataType: "date";
1546
+ columnType: "PgTimestamp";
1547
+ data: Date;
1548
+ driverParam: string;
1549
+ notNull: true;
1550
+ hasDefault: true;
1551
+ isPrimaryKey: false;
1552
+ isAutoincrement: false;
1553
+ hasRuntimeDefault: false;
1554
+ enumValues: undefined;
1555
+ baseColumn: never;
1556
+ identity: undefined;
1557
+ generated: undefined;
1558
+ }, {}, {}>;
1559
+ updatedAt: drizzle_orm_pg_core.PgColumn<{
1560
+ name: "updated_at";
1561
+ tableName: "mmd_preset_items";
1562
+ dataType: "date";
1563
+ columnType: "PgTimestamp";
1564
+ data: Date;
1565
+ driverParam: string;
1566
+ notNull: true;
1567
+ hasDefault: true;
1568
+ isPrimaryKey: false;
1569
+ isAutoincrement: false;
1570
+ hasRuntimeDefault: false;
1571
+ enumValues: undefined;
1572
+ baseColumn: never;
1573
+ identity: undefined;
1574
+ generated: undefined;
1575
+ }, {}, {}>;
1576
+ };
1577
+ dialect: "pg";
1578
+ }>;
1579
+ declare const mmdPlaylistsRelations: drizzle_orm.Relations<"mmd_playlists", {
1580
+ nodes: drizzle_orm.Many<"mmd_playlist_nodes">;
1581
+ }>;
1582
+ declare const mmdPlaylistNodesRelations: drizzle_orm.Relations<"mmd_playlist_nodes", {
1583
+ playlist: drizzle_orm.One<"mmd_playlists", true>;
1584
+ }>;
1585
+ type MmdPlaylist = typeof mmdPlaylists.$inferSelect;
1586
+ type NewMmdPlaylist = typeof mmdPlaylists.$inferInsert;
1587
+ type MmdPlaylistNode = typeof mmdPlaylistNodes.$inferSelect;
1588
+ type NewMmdPlaylistNode = typeof mmdPlaylistNodes.$inferInsert;
1589
+ type MmdResourceOption = typeof mmdResourceOptions.$inferSelect;
1590
+ type NewMmdResourceOption = typeof mmdResourceOptions.$inferInsert;
1591
+ type MmdPresetItem = typeof mmdPresetItems.$inferSelect;
1592
+ type NewMmdPresetItem = typeof mmdPresetItems.$inferInsert;
1593
+
1594
+ export { type BatchFileUrlsResponse, type CreatePlaylistNodeRequest, type CreatePlaylistRequest, type CreatePresetItemRequest, type CreateResourceOptionRequest, type FileIdToUrlMap, MMD_RESOURCE_TYPE_CONFIGS, MmdAdminPanel, type MmdAdminPanelProps, type MmdFileUploadConfig, type MmdPlaylist, type MmdPlaylistDB, MmdPlaylistEditor, type MmdPlaylistNode, type MmdPlaylistNodeDB, type MmdPlaylistNodeWithFiles, type MmdPlaylistWithFiles, type MmdPresetItem, type MmdPresetItemDB, type MmdPresetItemWithFiles, type MmdResourceOption, type MmdResourceOptionDB, type MmdResourceOptionWithFile, MmdResourceSelector, type NewMmdPlaylist, type NewMmdPlaylistNode, type NewMmdPresetItem, type NewMmdResourceOption, type PaginationQuery, type PaginationResponse, type PlaylistEditorProps, type PlaylistQuery, type PlaylistToFrontendConverter, type PlaylistToMmdConfigConverter, type PresetItemQuery, type PresetItemToFrontendConverter, type PresetItemToMmdResourceConverter, type ResourceOptionQuery, type ResourceOptionToFrontendConverter, type ResourceSelectorProps, type UpdatePlaylistNodeRequest, type UpdatePlaylistRequest, type UpdatePresetItemRequest, type UpdateResourceOptionRequest, convertNodeToMmdFormat, convertPlaylistNodeToFrontend, convertPlaylistToFrontend, convertPlaylistToMmdConfig, convertPresetItemToFrontend, convertPresetItemToMmdResource, convertResourceOptionToFrontend, convertResourceOptionsToMmdFormat, extractFileIdsFromPlaylist, extractFileIdsFromPresetItem, extractFileIdsFromResourceOptions, extractPathsFromMmdResources, generateMockFileUrls, mergeFileUrlMaps, mmdPlaylistNodes, mmdPlaylistNodesRelations, mmdPlaylists, mmdPlaylistsRelations, mmdPresetItems, mmdResourceOptions, validateFileUrls };