sa2kit 1.6.48 → 1.6.49
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.
- package/dist/{chunk-J6KKMP7V.js → chunk-7JN25DJB.js} +19 -13
- package/dist/chunk-7JN25DJB.js.map +1 -0
- package/dist/{chunk-6ZREZAGB.mjs → chunk-GFVAIT6Y.mjs} +20 -7
- package/dist/chunk-GFVAIT6Y.mjs.map +1 -0
- package/dist/{chunk-ERNZE5CJ.js → chunk-IZOIVYOW.js} +20 -7
- package/dist/chunk-IZOIVYOW.js.map +1 -0
- package/dist/{chunk-RZCEWMOR.mjs → chunk-SHY424RZ.mjs} +11 -5
- package/dist/chunk-SHY424RZ.mjs.map +1 -0
- package/dist/showmasterpiece/index.d.mts +20 -5
- package/dist/showmasterpiece/index.d.ts +20 -5
- package/dist/showmasterpiece/index.js +41 -22
- package/dist/showmasterpiece/index.js.map +1 -1
- package/dist/showmasterpiece/index.mjs +32 -13
- package/dist/showmasterpiece/index.mjs.map +1 -1
- package/dist/showmasterpiece/migration/index.js +29 -29
- package/dist/showmasterpiece/migration/index.mjs +2 -2
- package/dist/showmasterpiece/server/index.d.mts +8 -2
- package/dist/showmasterpiece/server/index.d.ts +8 -2
- package/dist/showmasterpiece/server/index.js +43 -43
- package/dist/showmasterpiece/server/index.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-6ZREZAGB.mjs.map +0 -1
- package/dist/chunk-ERNZE5CJ.js.map +0 -1
- package/dist/chunk-J6KKMP7V.js.map +0 -1
- package/dist/chunk-RZCEWMOR.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7JN25DJB_js = require('../../chunk-7JN25DJB.js');
|
|
4
4
|
require('../../chunk-XYQMAF7H.js');
|
|
5
|
-
require('../../chunk-
|
|
5
|
+
require('../../chunk-IZOIVYOW.js');
|
|
6
6
|
var chunkVLZ5N6XZ_js = require('../../chunk-VLZ5N6XZ.js');
|
|
7
7
|
require('../../chunk-M4HGHTIC.js');
|
|
8
8
|
require('../../chunk-6AHYPPUP.js');
|
|
@@ -58,26 +58,26 @@ var ArtworkMigrator = class {
|
|
|
58
58
|
console.log("\u{1F50D} [ArtworkMigrator] \u5206\u6790\u73B0\u6709\u6570\u636E...");
|
|
59
59
|
const whereConditions = [];
|
|
60
60
|
if (this.config.collectionIds && this.config.collectionIds.length > 0) {
|
|
61
|
-
whereConditions.push(drizzleOrm.inArray(
|
|
61
|
+
whereConditions.push(drizzleOrm.inArray(chunk7JN25DJB_js.comicUniverseArtworks.collectionId, this.config.collectionIds));
|
|
62
62
|
}
|
|
63
63
|
whereConditions.push(
|
|
64
64
|
drizzleOrm.and(
|
|
65
65
|
drizzleOrm.or(
|
|
66
|
-
drizzleOrm.isNull(
|
|
67
|
-
drizzleOrm.eq(
|
|
68
|
-
drizzleOrm.eq(
|
|
66
|
+
drizzleOrm.isNull(chunk7JN25DJB_js.comicUniverseArtworks.fileId),
|
|
67
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.migrationStatus, "pending"),
|
|
68
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.migrationStatus, "failed")
|
|
69
69
|
),
|
|
70
70
|
// 必须有image数据(兼容可能的null值)
|
|
71
|
-
drizzleOrm.eq(
|
|
71
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.isActive, true)
|
|
72
72
|
)
|
|
73
73
|
);
|
|
74
74
|
const query = this.db.select({
|
|
75
|
-
id:
|
|
76
|
-
title:
|
|
77
|
-
image:
|
|
78
|
-
collectionId:
|
|
79
|
-
migrationStatus:
|
|
80
|
-
}).from(
|
|
75
|
+
id: chunk7JN25DJB_js.comicUniverseArtworks.id,
|
|
76
|
+
title: chunk7JN25DJB_js.comicUniverseArtworks.title,
|
|
77
|
+
image: chunk7JN25DJB_js.comicUniverseArtworks.image,
|
|
78
|
+
collectionId: chunk7JN25DJB_js.comicUniverseArtworks.collectionId,
|
|
79
|
+
migrationStatus: chunk7JN25DJB_js.comicUniverseArtworks.migrationStatus
|
|
80
|
+
}).from(chunk7JN25DJB_js.comicUniverseArtworks);
|
|
81
81
|
if (whereConditions.length > 0) {
|
|
82
82
|
query.where(drizzleOrm.and(...whereConditions));
|
|
83
83
|
}
|
|
@@ -195,15 +195,15 @@ var ArtworkMigrator = class {
|
|
|
195
195
|
}
|
|
196
196
|
let collectionIds = this.config.collectionIds;
|
|
197
197
|
if (!collectionIds) {
|
|
198
|
-
const artworks = await this.db.select({ collectionId:
|
|
198
|
+
const artworks = await this.db.select({ collectionId: chunk7JN25DJB_js.comicUniverseArtworks.collectionId }).from(chunk7JN25DJB_js.comicUniverseArtworks).where(drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.isActive, true));
|
|
199
199
|
const uniqueCollectionIds = [...new Set(artworks.map((a) => a.collectionId))];
|
|
200
200
|
collectionIds = uniqueCollectionIds;
|
|
201
201
|
}
|
|
202
202
|
if (collectionIds && collectionIds.length > 0) {
|
|
203
203
|
const collections = await this.db.select({
|
|
204
|
-
id:
|
|
205
|
-
title:
|
|
206
|
-
}).from(
|
|
204
|
+
id: chunk7JN25DJB_js.comicUniverseCollections.id,
|
|
205
|
+
title: chunk7JN25DJB_js.comicUniverseCollections.title
|
|
206
|
+
}).from(chunk7JN25DJB_js.comicUniverseCollections).where(drizzleOrm.inArray(chunk7JN25DJB_js.comicUniverseCollections.id, collectionIds));
|
|
207
207
|
for (const collection of collections) {
|
|
208
208
|
const folderName = `Collection-${collection.id}`;
|
|
209
209
|
let collectionFolder = this.folderCache.get(folderName);
|
|
@@ -249,7 +249,7 @@ var ArtworkMigrator = class {
|
|
|
249
249
|
if (!fs.existsSync(backupDir)) {
|
|
250
250
|
fs.mkdirSync(backupDir, { recursive: true });
|
|
251
251
|
}
|
|
252
|
-
const artworks = await this.db.select().from(
|
|
252
|
+
const artworks = await this.db.select().from(chunk7JN25DJB_js.comicUniverseArtworks).where(drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.isActive, true));
|
|
253
253
|
fs.writeFileSync(
|
|
254
254
|
path.join(backupDir, "artworks_backup.json"),
|
|
255
255
|
JSON.stringify(artworks, null, 2)
|
|
@@ -263,19 +263,19 @@ var ArtworkMigrator = class {
|
|
|
263
263
|
console.log("\u{1F504} [ArtworkMigrator] \u5F00\u59CB\u6279\u91CF\u8FC1\u79FB...");
|
|
264
264
|
const whereConditions = [];
|
|
265
265
|
if (this.config.collectionIds && this.config.collectionIds.length > 0) {
|
|
266
|
-
whereConditions.push(drizzleOrm.inArray(
|
|
266
|
+
whereConditions.push(drizzleOrm.inArray(chunk7JN25DJB_js.comicUniverseArtworks.collectionId, this.config.collectionIds));
|
|
267
267
|
}
|
|
268
268
|
whereConditions.push(
|
|
269
269
|
drizzleOrm.and(
|
|
270
270
|
drizzleOrm.or(
|
|
271
|
-
drizzleOrm.isNull(
|
|
272
|
-
drizzleOrm.eq(
|
|
273
|
-
drizzleOrm.eq(
|
|
271
|
+
drizzleOrm.isNull(chunk7JN25DJB_js.comicUniverseArtworks.fileId),
|
|
272
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.migrationStatus, "pending"),
|
|
273
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.migrationStatus, "failed")
|
|
274
274
|
),
|
|
275
|
-
drizzleOrm.eq(
|
|
275
|
+
drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.isActive, true)
|
|
276
276
|
)
|
|
277
277
|
);
|
|
278
|
-
const query = this.db.select().from(
|
|
278
|
+
const query = this.db.select().from(chunk7JN25DJB_js.comicUniverseArtworks);
|
|
279
279
|
if (whereConditions.length > 0) {
|
|
280
280
|
query.where(drizzleOrm.and(...whereConditions));
|
|
281
281
|
}
|
|
@@ -367,11 +367,11 @@ var ArtworkMigrator = class {
|
|
|
367
367
|
}).returning();
|
|
368
368
|
}
|
|
369
369
|
if (!this.config.dryRun && fileRecord) {
|
|
370
|
-
await this.db.update(
|
|
370
|
+
await this.db.update(chunk7JN25DJB_js.comicUniverseArtworks).set({
|
|
371
371
|
fileId: fileRecord.id,
|
|
372
372
|
migrationStatus: "completed",
|
|
373
373
|
updatedAt: /* @__PURE__ */ new Date()
|
|
374
|
-
}).where(drizzleOrm.eq(
|
|
374
|
+
}).where(drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.id, artwork.id));
|
|
375
375
|
}
|
|
376
376
|
this.stats.successCount++;
|
|
377
377
|
this.stats.processedFileSize += fileSize;
|
|
@@ -427,7 +427,7 @@ var ArtworkMigrator = class {
|
|
|
427
427
|
*/
|
|
428
428
|
async rollbackArtwork(artworkId) {
|
|
429
429
|
console.log(`\u{1F504} [ArtworkMigrator] \u56DE\u6EDA\u4F5C\u54C1: ${artworkId}`);
|
|
430
|
-
const [artwork] = await this.db.select().from(
|
|
430
|
+
const [artwork] = await this.db.select().from(chunk7JN25DJB_js.comicUniverseArtworks).where(drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.id, artworkId)).limit(1);
|
|
431
431
|
if (!artwork) {
|
|
432
432
|
throw new Error(`\u4F5C\u54C1 ${artworkId} \u4E0D\u5B58\u5728`);
|
|
433
433
|
}
|
|
@@ -443,11 +443,11 @@ var ArtworkMigrator = class {
|
|
|
443
443
|
}
|
|
444
444
|
await this.db.delete(chunkVLZ5N6XZ_js.fileMetadata).where(drizzleOrm.eq(chunkVLZ5N6XZ_js.fileMetadata.id, artwork.fileId));
|
|
445
445
|
}
|
|
446
|
-
await this.db.update(
|
|
446
|
+
await this.db.update(chunk7JN25DJB_js.comicUniverseArtworks).set({
|
|
447
447
|
fileId: null,
|
|
448
448
|
migrationStatus: "pending",
|
|
449
449
|
updatedAt: /* @__PURE__ */ new Date()
|
|
450
|
-
}).where(drizzleOrm.eq(
|
|
450
|
+
}).where(drizzleOrm.eq(chunk7JN25DJB_js.comicUniverseArtworks.id, artworkId));
|
|
451
451
|
console.log(`\u2705 [ArtworkMigrator] \u4F5C\u54C1 ${artworkId} \u56DE\u6EDA\u5B8C\u6210`);
|
|
452
452
|
}
|
|
453
453
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { comicUniverseArtworks, comicUniverseCollections } from '../../chunk-
|
|
1
|
+
import { comicUniverseArtworks, comicUniverseCollections } from '../../chunk-SHY424RZ.mjs';
|
|
2
2
|
import '../../chunk-PAX4S7QM.mjs';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-GFVAIT6Y.mjs';
|
|
4
4
|
import { fileStorageProviders, fileFolders, fileMetadata } from '../../chunk-QROLPPXP.mjs';
|
|
5
5
|
import '../../chunk-76V7EKBX.mjs';
|
|
6
6
|
import '../../chunk-VTGPHE4Z.mjs';
|
|
@@ -2454,7 +2454,10 @@ declare class MasterpiecesConfigDbService$1 {
|
|
|
2454
2454
|
declare class CategoriesDbService$1 {
|
|
2455
2455
|
private readonly db;
|
|
2456
2456
|
constructor(db: any);
|
|
2457
|
-
getCategories(): Promise<
|
|
2457
|
+
getCategories(): Promise<Array<{
|
|
2458
|
+
name: string;
|
|
2459
|
+
description?: string | null;
|
|
2460
|
+
}>>;
|
|
2458
2461
|
createCategory(name: string, description?: string): Promise<void>;
|
|
2459
2462
|
}
|
|
2460
2463
|
declare class TagsDbService$1 {
|
|
@@ -2534,7 +2537,10 @@ declare class MasterpiecesConfigDbService {
|
|
|
2534
2537
|
private mapDbConfigToType;
|
|
2535
2538
|
}
|
|
2536
2539
|
declare class CategoriesDbService {
|
|
2537
|
-
getCategories(): Promise<
|
|
2540
|
+
getCategories(): Promise<Array<{
|
|
2541
|
+
name: string;
|
|
2542
|
+
description?: string | null;
|
|
2543
|
+
}>>;
|
|
2538
2544
|
createCategory(name: string, description?: string): Promise<void>;
|
|
2539
2545
|
}
|
|
2540
2546
|
declare class TagsDbService {
|
|
@@ -2454,7 +2454,10 @@ declare class MasterpiecesConfigDbService$1 {
|
|
|
2454
2454
|
declare class CategoriesDbService$1 {
|
|
2455
2455
|
private readonly db;
|
|
2456
2456
|
constructor(db: any);
|
|
2457
|
-
getCategories(): Promise<
|
|
2457
|
+
getCategories(): Promise<Array<{
|
|
2458
|
+
name: string;
|
|
2459
|
+
description?: string | null;
|
|
2460
|
+
}>>;
|
|
2458
2461
|
createCategory(name: string, description?: string): Promise<void>;
|
|
2459
2462
|
}
|
|
2460
2463
|
declare class TagsDbService$1 {
|
|
@@ -2534,7 +2537,10 @@ declare class MasterpiecesConfigDbService {
|
|
|
2534
2537
|
private mapDbConfigToType;
|
|
2535
2538
|
}
|
|
2536
2539
|
declare class CategoriesDbService {
|
|
2537
|
-
getCategories(): Promise<
|
|
2540
|
+
getCategories(): Promise<Array<{
|
|
2541
|
+
name: string;
|
|
2542
|
+
description?: string | null;
|
|
2543
|
+
}>>;
|
|
2538
2544
|
createCategory(name: string, description?: string): Promise<void>;
|
|
2539
2545
|
}
|
|
2540
2546
|
declare class TagsDbService {
|
|
@@ -1,175 +1,175 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7JN25DJB_js = require('../../chunk-7JN25DJB.js');
|
|
4
4
|
var chunkXYQMAF7H_js = require('../../chunk-XYQMAF7H.js');
|
|
5
|
-
require('../../chunk-
|
|
5
|
+
require('../../chunk-IZOIVYOW.js');
|
|
6
6
|
require('../../chunk-Z6ZWNWWR.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, "BookingCommandError", {
|
|
11
11
|
enumerable: true,
|
|
12
|
-
get: function () { return
|
|
12
|
+
get: function () { return chunk7JN25DJB_js.BookingCommandError; }
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "BookingCommandService", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return chunk7JN25DJB_js.BookingCommandService; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "BookingQueryService", {
|
|
19
19
|
enumerable: true,
|
|
20
|
-
get: function () { return
|
|
20
|
+
get: function () { return chunk7JN25DJB_js.BookingQueryService; }
|
|
21
21
|
});
|
|
22
22
|
Object.defineProperty(exports, "CategoriesDbService", {
|
|
23
23
|
enumerable: true,
|
|
24
|
-
get: function () { return
|
|
24
|
+
get: function () { return chunk7JN25DJB_js.CategoriesDbService; }
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "MasterpiecesConfigDbService", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () { return
|
|
28
|
+
get: function () { return chunk7JN25DJB_js.MasterpiecesConfigDbService; }
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "PopupConfigService", {
|
|
31
31
|
enumerable: true,
|
|
32
|
-
get: function () { return
|
|
32
|
+
get: function () { return chunk7JN25DJB_js.PopupConfigService; }
|
|
33
33
|
});
|
|
34
34
|
Object.defineProperty(exports, "ShowmasterConfigService", {
|
|
35
35
|
enumerable: true,
|
|
36
|
-
get: function () { return
|
|
36
|
+
get: function () { return chunk7JN25DJB_js.ShowmasterConfigService; }
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "TagsDbService", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function () { return
|
|
40
|
+
get: function () { return chunk7JN25DJB_js.TagsDbService; }
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "artworksDbService", {
|
|
43
43
|
enumerable: true,
|
|
44
|
-
get: function () { return
|
|
44
|
+
get: function () { return chunk7JN25DJB_js.artworksDbService; }
|
|
45
45
|
});
|
|
46
46
|
Object.defineProperty(exports, "categoriesDbService", {
|
|
47
47
|
enumerable: true,
|
|
48
|
-
get: function () { return
|
|
48
|
+
get: function () { return chunk7JN25DJB_js.categoriesDbService; }
|
|
49
49
|
});
|
|
50
50
|
Object.defineProperty(exports, "collectionsDbService", {
|
|
51
51
|
enumerable: true,
|
|
52
|
-
get: function () { return
|
|
52
|
+
get: function () { return chunk7JN25DJB_js.collectionsDbService; }
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "comicUniverseArtworks", {
|
|
55
55
|
enumerable: true,
|
|
56
|
-
get: function () { return
|
|
56
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseArtworks; }
|
|
57
57
|
});
|
|
58
58
|
Object.defineProperty(exports, "comicUniverseArtworksRelations", {
|
|
59
59
|
enumerable: true,
|
|
60
|
-
get: function () { return
|
|
60
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseArtworksRelations; }
|
|
61
61
|
});
|
|
62
62
|
Object.defineProperty(exports, "comicUniverseBookings", {
|
|
63
63
|
enumerable: true,
|
|
64
|
-
get: function () { return
|
|
64
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseBookings; }
|
|
65
65
|
});
|
|
66
66
|
Object.defineProperty(exports, "comicUniverseBookingsRelations", {
|
|
67
67
|
enumerable: true,
|
|
68
|
-
get: function () { return
|
|
68
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseBookingsRelations; }
|
|
69
69
|
});
|
|
70
70
|
Object.defineProperty(exports, "comicUniverseCategories", {
|
|
71
71
|
enumerable: true,
|
|
72
|
-
get: function () { return
|
|
72
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCategories; }
|
|
73
73
|
});
|
|
74
74
|
Object.defineProperty(exports, "comicUniverseCategoriesRelations", {
|
|
75
75
|
enumerable: true,
|
|
76
|
-
get: function () { return
|
|
76
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCategoriesRelations; }
|
|
77
77
|
});
|
|
78
78
|
Object.defineProperty(exports, "comicUniverseCollectionTags", {
|
|
79
79
|
enumerable: true,
|
|
80
|
-
get: function () { return
|
|
80
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCollectionTags; }
|
|
81
81
|
});
|
|
82
82
|
Object.defineProperty(exports, "comicUniverseCollectionTagsRelations", {
|
|
83
83
|
enumerable: true,
|
|
84
|
-
get: function () { return
|
|
84
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCollectionTagsRelations; }
|
|
85
85
|
});
|
|
86
86
|
Object.defineProperty(exports, "comicUniverseCollections", {
|
|
87
87
|
enumerable: true,
|
|
88
|
-
get: function () { return
|
|
88
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCollections; }
|
|
89
89
|
});
|
|
90
90
|
Object.defineProperty(exports, "comicUniverseCollectionsRelations", {
|
|
91
91
|
enumerable: true,
|
|
92
|
-
get: function () { return
|
|
92
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseCollectionsRelations; }
|
|
93
93
|
});
|
|
94
94
|
Object.defineProperty(exports, "comicUniverseConfigs", {
|
|
95
95
|
enumerable: true,
|
|
96
|
-
get: function () { return
|
|
96
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseConfigs; }
|
|
97
97
|
});
|
|
98
98
|
Object.defineProperty(exports, "comicUniverseConfigsRelations", {
|
|
99
99
|
enumerable: true,
|
|
100
|
-
get: function () { return
|
|
100
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseConfigsRelations; }
|
|
101
101
|
});
|
|
102
102
|
Object.defineProperty(exports, "comicUniverseTags", {
|
|
103
103
|
enumerable: true,
|
|
104
|
-
get: function () { return
|
|
104
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseTags; }
|
|
105
105
|
});
|
|
106
106
|
Object.defineProperty(exports, "comicUniverseTagsRelations", {
|
|
107
107
|
enumerable: true,
|
|
108
|
-
get: function () { return
|
|
108
|
+
get: function () { return chunk7JN25DJB_js.comicUniverseTagsRelations; }
|
|
109
109
|
});
|
|
110
110
|
Object.defineProperty(exports, "createBookingCommandService", {
|
|
111
111
|
enumerable: true,
|
|
112
|
-
get: function () { return
|
|
112
|
+
get: function () { return chunk7JN25DJB_js.createBookingCommandService; }
|
|
113
113
|
});
|
|
114
114
|
Object.defineProperty(exports, "createBookingQueryService", {
|
|
115
115
|
enumerable: true,
|
|
116
|
-
get: function () { return
|
|
116
|
+
get: function () { return chunk7JN25DJB_js.createBookingQueryService; }
|
|
117
117
|
});
|
|
118
118
|
Object.defineProperty(exports, "createCategoriesDbService", {
|
|
119
119
|
enumerable: true,
|
|
120
|
-
get: function () { return
|
|
120
|
+
get: function () { return chunk7JN25DJB_js.createCategoriesDbService; }
|
|
121
121
|
});
|
|
122
122
|
Object.defineProperty(exports, "createMasterpiecesConfigDbService", {
|
|
123
123
|
enumerable: true,
|
|
124
|
-
get: function () { return
|
|
124
|
+
get: function () { return chunk7JN25DJB_js.createMasterpiecesConfigDbService; }
|
|
125
125
|
});
|
|
126
126
|
Object.defineProperty(exports, "createPopupConfigService", {
|
|
127
127
|
enumerable: true,
|
|
128
|
-
get: function () { return
|
|
128
|
+
get: function () { return chunk7JN25DJB_js.createPopupConfigService; }
|
|
129
129
|
});
|
|
130
130
|
Object.defineProperty(exports, "createShowmasterConfigService", {
|
|
131
131
|
enumerable: true,
|
|
132
|
-
get: function () { return
|
|
132
|
+
get: function () { return chunk7JN25DJB_js.createShowmasterConfigService; }
|
|
133
133
|
});
|
|
134
134
|
Object.defineProperty(exports, "createTagsDbService", {
|
|
135
135
|
enumerable: true,
|
|
136
|
-
get: function () { return
|
|
136
|
+
get: function () { return chunk7JN25DJB_js.createTagsDbService; }
|
|
137
137
|
});
|
|
138
138
|
Object.defineProperty(exports, "initializeShowmasterpieceDb", {
|
|
139
139
|
enumerable: true,
|
|
140
|
-
get: function () { return
|
|
140
|
+
get: function () { return chunk7JN25DJB_js.initializeShowmasterpieceDb; }
|
|
141
141
|
});
|
|
142
142
|
Object.defineProperty(exports, "masterpiecesConfigDbService", {
|
|
143
143
|
enumerable: true,
|
|
144
|
-
get: function () { return
|
|
144
|
+
get: function () { return chunk7JN25DJB_js.masterpiecesConfigDbService; }
|
|
145
145
|
});
|
|
146
146
|
Object.defineProperty(exports, "popupConfigs", {
|
|
147
147
|
enumerable: true,
|
|
148
|
-
get: function () { return
|
|
148
|
+
get: function () { return chunk7JN25DJB_js.popupConfigs; }
|
|
149
149
|
});
|
|
150
150
|
Object.defineProperty(exports, "popupConfigsRelations", {
|
|
151
151
|
enumerable: true,
|
|
152
|
-
get: function () { return
|
|
152
|
+
get: function () { return chunk7JN25DJB_js.popupConfigsRelations; }
|
|
153
153
|
});
|
|
154
154
|
Object.defineProperty(exports, "showmasterConfigCategories", {
|
|
155
155
|
enumerable: true,
|
|
156
|
-
get: function () { return
|
|
156
|
+
get: function () { return chunk7JN25DJB_js.showmasterConfigCategories; }
|
|
157
157
|
});
|
|
158
158
|
Object.defineProperty(exports, "showmasterConfigHistory", {
|
|
159
159
|
enumerable: true,
|
|
160
|
-
get: function () { return
|
|
160
|
+
get: function () { return chunk7JN25DJB_js.showmasterConfigHistory; }
|
|
161
161
|
});
|
|
162
162
|
Object.defineProperty(exports, "showmasterConfigItems", {
|
|
163
163
|
enumerable: true,
|
|
164
|
-
get: function () { return
|
|
164
|
+
get: function () { return chunk7JN25DJB_js.showmasterConfigItems; }
|
|
165
165
|
});
|
|
166
166
|
Object.defineProperty(exports, "showmasterConfigPermissions", {
|
|
167
167
|
enumerable: true,
|
|
168
|
-
get: function () { return
|
|
168
|
+
get: function () { return chunk7JN25DJB_js.showmasterConfigPermissions; }
|
|
169
169
|
});
|
|
170
170
|
Object.defineProperty(exports, "tagsDbService", {
|
|
171
171
|
enumerable: true,
|
|
172
|
-
get: function () { return
|
|
172
|
+
get: function () { return chunk7JN25DJB_js.tagsDbService; }
|
|
173
173
|
});
|
|
174
174
|
Object.defineProperty(exports, "getShowMasterpieceFileConfig", {
|
|
175
175
|
enumerable: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { BookingCommandError, BookingCommandService, BookingQueryService, CategoriesDbService, MasterpiecesConfigDbService, PopupConfigService, ShowmasterConfigService, TagsDbService, artworksDbService, categoriesDbService, collectionsDbService, comicUniverseArtworks, comicUniverseArtworksRelations, comicUniverseBookings, comicUniverseBookingsRelations, comicUniverseCategories, comicUniverseCategoriesRelations, comicUniverseCollectionTags, comicUniverseCollectionTagsRelations, comicUniverseCollections, comicUniverseCollectionsRelations, comicUniverseConfigs, comicUniverseConfigsRelations, comicUniverseTags, comicUniverseTagsRelations, createBookingCommandService, createBookingQueryService, createCategoriesDbService, createMasterpiecesConfigDbService, createPopupConfigService, createShowmasterConfigService, createTagsDbService, initializeShowmasterpieceDb, masterpiecesConfigDbService, popupConfigs, popupConfigsRelations, showmasterConfigCategories, showmasterConfigHistory, showmasterConfigItems, showmasterConfigPermissions, tagsDbService } from '../../chunk-
|
|
1
|
+
export { BookingCommandError, BookingCommandService, BookingQueryService, CategoriesDbService, MasterpiecesConfigDbService, PopupConfigService, ShowmasterConfigService, TagsDbService, artworksDbService, categoriesDbService, collectionsDbService, comicUniverseArtworks, comicUniverseArtworksRelations, comicUniverseBookings, comicUniverseBookingsRelations, comicUniverseCategories, comicUniverseCategoriesRelations, comicUniverseCollectionTags, comicUniverseCollectionTagsRelations, comicUniverseCollections, comicUniverseCollectionsRelations, comicUniverseConfigs, comicUniverseConfigsRelations, comicUniverseTags, comicUniverseTagsRelations, createBookingCommandService, createBookingQueryService, createCategoriesDbService, createMasterpiecesConfigDbService, createPopupConfigService, createShowmasterConfigService, createTagsDbService, initializeShowmasterpieceDb, masterpiecesConfigDbService, popupConfigs, popupConfigsRelations, showmasterConfigCategories, showmasterConfigHistory, showmasterConfigItems, showmasterConfigPermissions, tagsDbService } from '../../chunk-SHY424RZ.mjs';
|
|
2
2
|
export { getShowMasterpieceFileConfig } from '../../chunk-PAX4S7QM.mjs';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-GFVAIT6Y.mjs';
|
|
4
4
|
import '../../chunk-WMJKH4XE.mjs';
|
|
5
5
|
//# sourceMappingURL=index.mjs.map
|
|
6
6
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/showmasterpiece/types/index.ts"],"names":[],"mappings":"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","file":"chunk-6ZREZAGB.mjs","sourcesContent":["/**\n * ShowMasterpiece 模块类型定义\n * \n * 包含画集、作品、配置等相关的TypeScript类型定义\n */\n\n// ===== 画集分类枚举 =====\n\n/**\n * 画集分类枚举\n * \n * 定义画集的各种分类:\n * - COLLECTION: 画集 - 用于展示艺术作品\n * - ACRYLIC: 立牌 - 立牌制品\n * - BADGE: 吧唧 - 徽章类商品\n * - COLOR_PAPER: 色纸 - 彩色纸张制品\n * - POSTCARD: 明信片 - 明信片类商品\n * - LASER_TICKET: 镭射票 - 镭射票类商品\n * - CANVAS_BAG: 帆布包 - 帆布包类商品\n * - SUPPORT_STICK: 应援棒 - 应援棒类商品\n * - OTHER: 挂件/钥匙扣 - 挂件/钥匙扣类商品\n */\nexport enum CollectionCategory {\n /** 画集 - 用于展示艺术作品 */\n COLLECTION = 'collection',\n /** 立牌 - 立牌制品 */\n ACRYLIC = 'acrylic',\n /** 吧唧 - 徽章类商品 */\n BADGE = 'badge',\n /** 色纸 - 彩色纸张制品 */\n COLOR_PAPER = 'color_paper',\n /** 透卡 - 透明卡片制品 */\n TRANSPARENT_CARD = 'transparent_card',\n /** 明信片 - 明信片类商品 */\n POSTCARD = 'postcard',\n /** 镭射票 - 镭射票类商品 */\n LASER_TICKET = 'laser_ticket',\n /** 帆布包 - 帆布包类商品 */\n CANVAS_BAG = 'canvas_bag',\n /** 线圈笔记本 - 线圈装订笔记本 */\n SPIRAL_NOTEBOOK = 'spiral_notebook',\n /** 鼠标垫 - 鼠标垫类商品 */\n MOUSE_PAD = 'mouse_pad',\n /** 应援棒 - 应援棒类商品 */\n SUPPORT_STICK = 'support_stick',\n /** 挂件/钥匙扣 - 挂件/钥匙扣类商品 */\n KEYCHAIN = 'keychain',\n /** 其它 */\n OTHER = 'other'\n}\n\n/**\n * 画集分类类型\n * 使用枚举值作为类型\n */\nexport type CollectionCategoryType = `${CollectionCategory}` | string;\n\n/**\n * 分类信息接口\n * 包含分类值和显示名称\n */\nexport interface CategoryInfo {\n /** 分类值 */\n value: CollectionCategoryType;\n /** 显示名称 */\n displayName: string;\n /** 描述信息 */\n description?: string;\n}\n\n// ===== 基础类型定义 =====\n\n/**\n * 艺术作品页面数据结构\n * \n * 表示画集中的单个作品页面,包含图片、标题、描述等信息。\n * 每个画集包含多个这样的作品页面。\n */\nexport interface ArtworkPage {\n /** 作品的唯一标识符 */\n id: number;\n \n /** 作品标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 作品图片(支持URL或base64编码) */\n image: string;\n \n /** 通用文件服务的图片文件ID(新架构,可选) */\n fileId?: string;\n \n /** 作品描述 */\n description: string;\n \n /** 创作时间(可选) */\n createdTime?: string;\n \n /** 作品主题(可选) */\n theme?: string;\n \n /** 作品年份(可选) */\n year?: string;\n \n /** 创作媒介(可选) */\n medium?: string;\n \n /** 作品尺寸(可选) */\n dimensions?: string;\n \n /** 在画集中的显示顺序 */\n pageOrder: number;\n \n /** 是否激活(可选,默认true) */\n isActive?: boolean;\n \n /** 创建时间(可选) */\n createdAt?: string;\n \n /** 更新时间(可选) */\n updatedAt?: string;\n}\n\n/**\n * 艺术画集数据结构\n * \n * 表示一个完整的艺术画集,包含多个作品页面和相关元数据。\n * 这是系统中的核心数据模型之一。\n */\nexport interface ArtCollection {\n /** 画集的唯一标识符 */\n id: number;\n \n /** 画集标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 画集封面图片路径 */\n coverImage: string;\n \n /** 通用文件服务的封面图片文件ID(新架构,可选) */\n coverImageFileId?: string;\n \n /** 画集描述 */\n description: string;\n \n /** 画集包含的所有作品页面 */\n pages: ArtworkPage[];\n \n /** 画集分类(使用枚举值) */\n category: CollectionCategoryType;\n \n /** 画集标签列表(可选) */\n tags?: string[];\n \n /** 是否已发布(可选,默认true) */\n isPublished?: boolean;\n \n /** 画集价格(单位:元,可选) */\n price?: number;\n \n /** 创建时间(可选) */\n createdAt?: string;\n \n /** 更新时间(可选) */\n updatedAt?: string;\n}\n\n// ===== 配置相关类型 =====\n\n/**\n * 系统配置数据结构\n * \n * 存储ShowMasterpiece模块的全局配置信息,\n * 包括网站设置、显示选项、功能开关等。\n */\nexport interface MasterpiecesConfig {\n /** 网站名称 */\n siteName: string;\n \n /** 网站描述 */\n siteDescription?: string;\n \n /** 首页主标题 */\n heroTitle: string;\n \n /** 首页副标题 */\n heroSubtitle?: string;\n \n /** 每页显示的最大画集数量 */\n maxCollectionsPerPage: number;\n \n /** 是否启用搜索功能 */\n enableSearch: boolean;\n \n /** 是否启用分类功能 */\n enableCategories: boolean;\n\n /** 首页分类Tab配置 */\n homeTabConfig: HomeTabConfigItem[];\n \n /** 默认分类 */\n defaultCategory: string;\n \n /** 主题模式:light(浅色)、dark(深色)、auto(自动) */\n theme: 'light' | 'dark' | 'auto';\n \n /** 界面语言:zh(中文)、en(英文) */\n language: 'zh' | 'en';\n}\n\nexport interface HomeTabConfigItem {\n category: CollectionCategoryType;\n visible: boolean;\n order: number;\n}\n\nexport const defaultHomeTabCategoryOrder: CollectionCategoryType[] = [\n CollectionCategory.CANVAS_BAG,\n CollectionCategory.SPIRAL_NOTEBOOK,\n CollectionCategory.MOUSE_PAD,\n CollectionCategory.ACRYLIC,\n CollectionCategory.BADGE,\n CollectionCategory.COLOR_PAPER,\n CollectionCategory.KEYCHAIN,\n CollectionCategory.TRANSPARENT_CARD,\n CollectionCategory.LASER_TICKET,\n];\n\nexport function buildDefaultHomeTabConfig(): HomeTabConfigItem[] {\n return [];\n}\n\nexport function normalizeHomeTabConfig(\n input?: HomeTabConfigItem[] | null,\n): HomeTabConfigItem[] {\n if (!input || input.length === 0) {\n return [];\n }\n\n const filtered = input\n .filter((item) => item && typeof item.category === 'string' && item.category.trim().length > 0)\n .map((item) => ({\n category: item.category,\n visible: item.visible ?? true,\n order: Number.isFinite(item.order) ? Number(item.order) : 0,\n }));\n\n if (filtered.length === 0) {\n return [];\n }\n\n filtered.sort((a, b) => a.order - b.order);\n const normalized = filtered.map((item, index) => ({ ...item, order: index }));\n\n if (!normalized.some((item) => item.visible)) {\n const firstItem = normalized[0];\n if (firstItem) {\n normalized[0] = { ...firstItem, visible: true };\n }\n }\n\n return normalized;\n}\n\n// ===== 表单数据类型 =====\n\n/**\n * 画集表单数据结构\n * \n * 用于创建和编辑画集时的表单数据\n */\nexport interface CollectionFormData {\n /** 画集标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 封面图片 */\n coverImage: string;\n \n /** 通用文件服务的封面图片文件ID */\n coverImageFileId?: string;\n \n /** 画集描述 */\n description: string;\n \n /** 画集分类(使用枚举值) */\n category: CollectionCategoryType;\n \n /** 画集标签列表 */\ntags: string[];\n \n /** 是否已发布 */\n isPublished: boolean;\n \n /** 画集价格(单位:元,可选) */\n price?: number;\n}\n\n/**\n * 作品表单数据结构\n * \n * 用于创建和编辑作品时的表单数据\n */\nexport interface ArtworkFormData {\n /** 作品标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 作品图片 */\n image?: string;\n \n /** 通用文件服务的图片文件ID */\n fileId?: string;\n \n /** 作品描述 */\n description: string;\n \n /** 创作时间 */\n createdTime: string;\n \n /** 作品主题 */\n theme: string;\n}\n\n/**\n * 配置表单数据结构\n * \n * 用于编辑系统配置时的表单数据\n */\nexport interface ConfigFormData {\n /** 网站名称 */\n siteName: string;\n \n /** 网站描述 */\n siteDescription: string;\n \n /** 首页主标题 */\n heroTitle: string;\n \n /** 首页副标题 */\n heroSubtitle: string;\n \n /** 每页显示的最大画集数量 */\n maxCollectionsPerPage: number;\n \n /** 是否启用搜索功能 */\n enableSearch: boolean;\n \n /** 是否启用分类功能 */\n enableCategories: boolean;\n\n /** 首页分类Tab配置 */\n homeTabConfig: HomeTabConfigItem[];\n \n /** 默认分类 */\n defaultCategory: string;\n \n /** 主题模式 */\n theme: 'light' | 'dark' | 'auto';\n \n /** 界面语言 */\n language: 'zh' | 'en';\n}\n\n// ===== 工具函数 =====\n\n/**\n * 获取所有可用的画集分类\n * \n * @returns 分类枚举值数组\n */\nexport function getAvailableCategories(): CollectionCategoryType[] {\n return [];\n}\n\n/**\n * 验证分类是否为有效值\n * \n * @param category - 要验证的分类值\n * @returns 是否为有效分类\n */\nexport function isValidCategory(category: string): category is CollectionCategoryType {\n if (typeof category !== 'string') {\n return false;\n }\n return category.trim().length > 0;\n}\n\n/**\n * 分类信息映射\n * 为每个分类提供完整的信息对象\n */\nexport const categories = {\n [CollectionCategory.COLLECTION]: {\n value: CollectionCategory.COLLECTION,\n displayName: '画集',\n description: '用于展示艺术作品'\n },\n [CollectionCategory.ACRYLIC]: {\n value: CollectionCategory.ACRYLIC,\n displayName: '立牌',\n description: '立牌制品'\n },\n [CollectionCategory.BADGE]: {\n value: CollectionCategory.BADGE,\n displayName: '吧唧',\n description: '徽章类商品'\n },\n [CollectionCategory.COLOR_PAPER]: {\n value: CollectionCategory.COLOR_PAPER,\n displayName: '色纸',\n description: '彩色纸张制品'\n },\n [CollectionCategory.TRANSPARENT_CARD]: {\n value: CollectionCategory.TRANSPARENT_CARD,\n displayName: '透卡',\n description: '透明卡片制品'\n },\n [CollectionCategory.POSTCARD]: {\n value: CollectionCategory.POSTCARD,\n displayName: '明信片',\n description: '明信片类商品'\n },\n [CollectionCategory.LASER_TICKET]: {\n value: CollectionCategory.LASER_TICKET,\n displayName: '镭射票',\n description: '镭射票类商品'\n },\n [CollectionCategory.CANVAS_BAG]: {\n value: CollectionCategory.CANVAS_BAG,\n displayName: '帆布包',\n description: '帆布包类商品'\n },\n [CollectionCategory.SPIRAL_NOTEBOOK]: {\n value: CollectionCategory.SPIRAL_NOTEBOOK,\n displayName: '线圈笔记本',\n description: '线圈装订笔记本'\n },\n [CollectionCategory.MOUSE_PAD]: {\n value: CollectionCategory.MOUSE_PAD,\n displayName: '鼠标垫',\n description: '鼠标垫类商品'\n },\n [CollectionCategory.SUPPORT_STICK]: {\n value: CollectionCategory.SUPPORT_STICK,\n displayName: '应援棒',\n description: '应援棒类商品'\n },\n [CollectionCategory.KEYCHAIN]: {\n value: CollectionCategory.KEYCHAIN,\n displayName: '挂件/钥匙扣',\n description: '挂件/钥匙扣类商品'\n },\n [CollectionCategory.OTHER]: {\n value: CollectionCategory.OTHER,\n displayName: '其它',\n description: '其他类型商品'\n }\n} as const satisfies Record<CollectionCategory, CategoryInfo>;\n\n\n/**\n * 获取分类的显示名称\n * 支持 collection.category.displayName 的调用方式\n */\nexport function getCategoryDisplayName(category: CollectionCategoryType): string {\n return categories[category as CollectionCategory]?.displayName || category;\n}\n\n/**\n * 获取分类的完整信息\n * 支持 collection.category.displayName 的调用方式\n */\nexport function getCategoryInfo(category: CollectionCategoryType): CategoryInfo {\n return categories[category as CollectionCategory] || {\n value: category,\n displayName: category,\n description: ''\n };\n}\n\n/**\n * 扩展 CollectionCategoryType,使其支持 displayName 属性访问\n * 使用方式: collection.category.displayName\n */\ndeclare global {\n interface String {\n get displayName(): string;\n get categoryInfo(): CategoryInfo;\n }\n}\n\n// 为字符串类型添加 displayName getter(避免重复定义)\nif (!Object.getOwnPropertyDescriptor(String.prototype, 'displayName')) {\n Object.defineProperty(String.prototype, 'displayName', {\n get(this: string): string {\n return getCategoryDisplayName(this as CollectionCategoryType);\n }\n });\n}\n\n// 为字符串类型添加 categoryInfo getter(避免重复定义)\nif (!Object.getOwnPropertyDescriptor(String.prototype, 'categoryInfo')) {\n Object.defineProperty(String.prototype, 'categoryInfo', {\n get(this: string): CategoryInfo {\n return getCategoryInfo(this as CollectionCategoryType);\n }\n });\n}\n\n/**\n * 获取分类的描述信息 (枚举调用方式)\n */\nexport const CategoryDescription = {\n [CollectionCategory.COLLECTION]: '用于展示艺术作品,包含多个作品页面的画集',\n [CollectionCategory.ACRYLIC]: '立牌制品,如亚克力立牌、展示立牌等',\n [CollectionCategory.BADGE]: '徽章类商品,如徽章、钥匙扣等',\n [CollectionCategory.COLOR_PAPER]: '彩色纸张制品,如彩色卡纸、彩色打印纸等',\n [CollectionCategory.TRANSPARENT_CARD]: '透明卡片制品,如透明卡片、透明卡等',\n [CollectionCategory.POSTCARD]: '明信片类商品,如艺术明信片、纪念明信片等',\n [CollectionCategory.LASER_TICKET]: '镭射票类商品,如演唱会门票、电影票等',\n [CollectionCategory.CANVAS_BAG]: '帆布包类商品,如帆布袋、帆布背包等',\n [CollectionCategory.SPIRAL_NOTEBOOK]: '线圈装订笔记本,如线圈笔记本、线圈装订笔记本等',\n [CollectionCategory.MOUSE_PAD]: '鼠标垫类商品,如鼠标垫、鼠标垫等',\n [CollectionCategory.SUPPORT_STICK]: '应援棒类商品,如荧光棒、应援棒等',\n [CollectionCategory.KEYCHAIN]: '挂件/钥匙扣类商品,如装饰挂件、钥匙扣等',\n [CollectionCategory.OTHER]: '挂件/钥匙扣类商品,如装饰挂件、钥匙扣等'\n} as const;\n\n// ===== 上下文类型导出 =====\nexport type { CartContextState } from './context'; \n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/showmasterpiece/types/index.ts"],"names":[],"mappings":"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","file":"chunk-ERNZE5CJ.js","sourcesContent":["/**\n * ShowMasterpiece 模块类型定义\n * \n * 包含画集、作品、配置等相关的TypeScript类型定义\n */\n\n// ===== 画集分类枚举 =====\n\n/**\n * 画集分类枚举\n * \n * 定义画集的各种分类:\n * - COLLECTION: 画集 - 用于展示艺术作品\n * - ACRYLIC: 立牌 - 立牌制品\n * - BADGE: 吧唧 - 徽章类商品\n * - COLOR_PAPER: 色纸 - 彩色纸张制品\n * - POSTCARD: 明信片 - 明信片类商品\n * - LASER_TICKET: 镭射票 - 镭射票类商品\n * - CANVAS_BAG: 帆布包 - 帆布包类商品\n * - SUPPORT_STICK: 应援棒 - 应援棒类商品\n * - OTHER: 挂件/钥匙扣 - 挂件/钥匙扣类商品\n */\nexport enum CollectionCategory {\n /** 画集 - 用于展示艺术作品 */\n COLLECTION = 'collection',\n /** 立牌 - 立牌制品 */\n ACRYLIC = 'acrylic',\n /** 吧唧 - 徽章类商品 */\n BADGE = 'badge',\n /** 色纸 - 彩色纸张制品 */\n COLOR_PAPER = 'color_paper',\n /** 透卡 - 透明卡片制品 */\n TRANSPARENT_CARD = 'transparent_card',\n /** 明信片 - 明信片类商品 */\n POSTCARD = 'postcard',\n /** 镭射票 - 镭射票类商品 */\n LASER_TICKET = 'laser_ticket',\n /** 帆布包 - 帆布包类商品 */\n CANVAS_BAG = 'canvas_bag',\n /** 线圈笔记本 - 线圈装订笔记本 */\n SPIRAL_NOTEBOOK = 'spiral_notebook',\n /** 鼠标垫 - 鼠标垫类商品 */\n MOUSE_PAD = 'mouse_pad',\n /** 应援棒 - 应援棒类商品 */\n SUPPORT_STICK = 'support_stick',\n /** 挂件/钥匙扣 - 挂件/钥匙扣类商品 */\n KEYCHAIN = 'keychain',\n /** 其它 */\n OTHER = 'other'\n}\n\n/**\n * 画集分类类型\n * 使用枚举值作为类型\n */\nexport type CollectionCategoryType = `${CollectionCategory}` | string;\n\n/**\n * 分类信息接口\n * 包含分类值和显示名称\n */\nexport interface CategoryInfo {\n /** 分类值 */\n value: CollectionCategoryType;\n /** 显示名称 */\n displayName: string;\n /** 描述信息 */\n description?: string;\n}\n\n// ===== 基础类型定义 =====\n\n/**\n * 艺术作品页面数据结构\n * \n * 表示画集中的单个作品页面,包含图片、标题、描述等信息。\n * 每个画集包含多个这样的作品页面。\n */\nexport interface ArtworkPage {\n /** 作品的唯一标识符 */\n id: number;\n \n /** 作品标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 作品图片(支持URL或base64编码) */\n image: string;\n \n /** 通用文件服务的图片文件ID(新架构,可选) */\n fileId?: string;\n \n /** 作品描述 */\n description: string;\n \n /** 创作时间(可选) */\n createdTime?: string;\n \n /** 作品主题(可选) */\n theme?: string;\n \n /** 作品年份(可选) */\n year?: string;\n \n /** 创作媒介(可选) */\n medium?: string;\n \n /** 作品尺寸(可选) */\n dimensions?: string;\n \n /** 在画集中的显示顺序 */\n pageOrder: number;\n \n /** 是否激活(可选,默认true) */\n isActive?: boolean;\n \n /** 创建时间(可选) */\n createdAt?: string;\n \n /** 更新时间(可选) */\n updatedAt?: string;\n}\n\n/**\n * 艺术画集数据结构\n * \n * 表示一个完整的艺术画集,包含多个作品页面和相关元数据。\n * 这是系统中的核心数据模型之一。\n */\nexport interface ArtCollection {\n /** 画集的唯一标识符 */\n id: number;\n \n /** 画集标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 画集封面图片路径 */\n coverImage: string;\n \n /** 通用文件服务的封面图片文件ID(新架构,可选) */\n coverImageFileId?: string;\n \n /** 画集描述 */\n description: string;\n \n /** 画集包含的所有作品页面 */\n pages: ArtworkPage[];\n \n /** 画集分类(使用枚举值) */\n category: CollectionCategoryType;\n \n /** 画集标签列表(可选) */\n tags?: string[];\n \n /** 是否已发布(可选,默认true) */\n isPublished?: boolean;\n \n /** 画集价格(单位:元,可选) */\n price?: number;\n \n /** 创建时间(可选) */\n createdAt?: string;\n \n /** 更新时间(可选) */\n updatedAt?: string;\n}\n\n// ===== 配置相关类型 =====\n\n/**\n * 系统配置数据结构\n * \n * 存储ShowMasterpiece模块的全局配置信息,\n * 包括网站设置、显示选项、功能开关等。\n */\nexport interface MasterpiecesConfig {\n /** 网站名称 */\n siteName: string;\n \n /** 网站描述 */\n siteDescription?: string;\n \n /** 首页主标题 */\n heroTitle: string;\n \n /** 首页副标题 */\n heroSubtitle?: string;\n \n /** 每页显示的最大画集数量 */\n maxCollectionsPerPage: number;\n \n /** 是否启用搜索功能 */\n enableSearch: boolean;\n \n /** 是否启用分类功能 */\n enableCategories: boolean;\n\n /** 首页分类Tab配置 */\n homeTabConfig: HomeTabConfigItem[];\n \n /** 默认分类 */\n defaultCategory: string;\n \n /** 主题模式:light(浅色)、dark(深色)、auto(自动) */\n theme: 'light' | 'dark' | 'auto';\n \n /** 界面语言:zh(中文)、en(英文) */\n language: 'zh' | 'en';\n}\n\nexport interface HomeTabConfigItem {\n category: CollectionCategoryType;\n visible: boolean;\n order: number;\n}\n\nexport const defaultHomeTabCategoryOrder: CollectionCategoryType[] = [\n CollectionCategory.CANVAS_BAG,\n CollectionCategory.SPIRAL_NOTEBOOK,\n CollectionCategory.MOUSE_PAD,\n CollectionCategory.ACRYLIC,\n CollectionCategory.BADGE,\n CollectionCategory.COLOR_PAPER,\n CollectionCategory.KEYCHAIN,\n CollectionCategory.TRANSPARENT_CARD,\n CollectionCategory.LASER_TICKET,\n];\n\nexport function buildDefaultHomeTabConfig(): HomeTabConfigItem[] {\n return [];\n}\n\nexport function normalizeHomeTabConfig(\n input?: HomeTabConfigItem[] | null,\n): HomeTabConfigItem[] {\n if (!input || input.length === 0) {\n return [];\n }\n\n const filtered = input\n .filter((item) => item && typeof item.category === 'string' && item.category.trim().length > 0)\n .map((item) => ({\n category: item.category,\n visible: item.visible ?? true,\n order: Number.isFinite(item.order) ? Number(item.order) : 0,\n }));\n\n if (filtered.length === 0) {\n return [];\n }\n\n filtered.sort((a, b) => a.order - b.order);\n const normalized = filtered.map((item, index) => ({ ...item, order: index }));\n\n if (!normalized.some((item) => item.visible)) {\n const firstItem = normalized[0];\n if (firstItem) {\n normalized[0] = { ...firstItem, visible: true };\n }\n }\n\n return normalized;\n}\n\n// ===== 表单数据类型 =====\n\n/**\n * 画集表单数据结构\n * \n * 用于创建和编辑画集时的表单数据\n */\nexport interface CollectionFormData {\n /** 画集标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 封面图片 */\n coverImage: string;\n \n /** 通用文件服务的封面图片文件ID */\n coverImageFileId?: string;\n \n /** 画集描述 */\n description: string;\n \n /** 画集分类(使用枚举值) */\n category: CollectionCategoryType;\n \n /** 画集标签列表 */\ntags: string[];\n \n /** 是否已发布 */\n isPublished: boolean;\n \n /** 画集价格(单位:元,可选) */\n price?: number;\n}\n\n/**\n * 作品表单数据结构\n * \n * 用于创建和编辑作品时的表单数据\n */\nexport interface ArtworkFormData {\n /** 作品标题 */\n title: string;\n \n /** 编号 */\n number: string;\n \n /** 作品图片 */\n image?: string;\n \n /** 通用文件服务的图片文件ID */\n fileId?: string;\n \n /** 作品描述 */\n description: string;\n \n /** 创作时间 */\n createdTime: string;\n \n /** 作品主题 */\n theme: string;\n}\n\n/**\n * 配置表单数据结构\n * \n * 用于编辑系统配置时的表单数据\n */\nexport interface ConfigFormData {\n /** 网站名称 */\n siteName: string;\n \n /** 网站描述 */\n siteDescription: string;\n \n /** 首页主标题 */\n heroTitle: string;\n \n /** 首页副标题 */\n heroSubtitle: string;\n \n /** 每页显示的最大画集数量 */\n maxCollectionsPerPage: number;\n \n /** 是否启用搜索功能 */\n enableSearch: boolean;\n \n /** 是否启用分类功能 */\n enableCategories: boolean;\n\n /** 首页分类Tab配置 */\n homeTabConfig: HomeTabConfigItem[];\n \n /** 默认分类 */\n defaultCategory: string;\n \n /** 主题模式 */\n theme: 'light' | 'dark' | 'auto';\n \n /** 界面语言 */\n language: 'zh' | 'en';\n}\n\n// ===== 工具函数 =====\n\n/**\n * 获取所有可用的画集分类\n * \n * @returns 分类枚举值数组\n */\nexport function getAvailableCategories(): CollectionCategoryType[] {\n return [];\n}\n\n/**\n * 验证分类是否为有效值\n * \n * @param category - 要验证的分类值\n * @returns 是否为有效分类\n */\nexport function isValidCategory(category: string): category is CollectionCategoryType {\n if (typeof category !== 'string') {\n return false;\n }\n return category.trim().length > 0;\n}\n\n/**\n * 分类信息映射\n * 为每个分类提供完整的信息对象\n */\nexport const categories = {\n [CollectionCategory.COLLECTION]: {\n value: CollectionCategory.COLLECTION,\n displayName: '画集',\n description: '用于展示艺术作品'\n },\n [CollectionCategory.ACRYLIC]: {\n value: CollectionCategory.ACRYLIC,\n displayName: '立牌',\n description: '立牌制品'\n },\n [CollectionCategory.BADGE]: {\n value: CollectionCategory.BADGE,\n displayName: '吧唧',\n description: '徽章类商品'\n },\n [CollectionCategory.COLOR_PAPER]: {\n value: CollectionCategory.COLOR_PAPER,\n displayName: '色纸',\n description: '彩色纸张制品'\n },\n [CollectionCategory.TRANSPARENT_CARD]: {\n value: CollectionCategory.TRANSPARENT_CARD,\n displayName: '透卡',\n description: '透明卡片制品'\n },\n [CollectionCategory.POSTCARD]: {\n value: CollectionCategory.POSTCARD,\n displayName: '明信片',\n description: '明信片类商品'\n },\n [CollectionCategory.LASER_TICKET]: {\n value: CollectionCategory.LASER_TICKET,\n displayName: '镭射票',\n description: '镭射票类商品'\n },\n [CollectionCategory.CANVAS_BAG]: {\n value: CollectionCategory.CANVAS_BAG,\n displayName: '帆布包',\n description: '帆布包类商品'\n },\n [CollectionCategory.SPIRAL_NOTEBOOK]: {\n value: CollectionCategory.SPIRAL_NOTEBOOK,\n displayName: '线圈笔记本',\n description: '线圈装订笔记本'\n },\n [CollectionCategory.MOUSE_PAD]: {\n value: CollectionCategory.MOUSE_PAD,\n displayName: '鼠标垫',\n description: '鼠标垫类商品'\n },\n [CollectionCategory.SUPPORT_STICK]: {\n value: CollectionCategory.SUPPORT_STICK,\n displayName: '应援棒',\n description: '应援棒类商品'\n },\n [CollectionCategory.KEYCHAIN]: {\n value: CollectionCategory.KEYCHAIN,\n displayName: '挂件/钥匙扣',\n description: '挂件/钥匙扣类商品'\n },\n [CollectionCategory.OTHER]: {\n value: CollectionCategory.OTHER,\n displayName: '其它',\n description: '其他类型商品'\n }\n} as const satisfies Record<CollectionCategory, CategoryInfo>;\n\n\n/**\n * 获取分类的显示名称\n * 支持 collection.category.displayName 的调用方式\n */\nexport function getCategoryDisplayName(category: CollectionCategoryType): string {\n return categories[category as CollectionCategory]?.displayName || category;\n}\n\n/**\n * 获取分类的完整信息\n * 支持 collection.category.displayName 的调用方式\n */\nexport function getCategoryInfo(category: CollectionCategoryType): CategoryInfo {\n return categories[category as CollectionCategory] || {\n value: category,\n displayName: category,\n description: ''\n };\n}\n\n/**\n * 扩展 CollectionCategoryType,使其支持 displayName 属性访问\n * 使用方式: collection.category.displayName\n */\ndeclare global {\n interface String {\n get displayName(): string;\n get categoryInfo(): CategoryInfo;\n }\n}\n\n// 为字符串类型添加 displayName getter(避免重复定义)\nif (!Object.getOwnPropertyDescriptor(String.prototype, 'displayName')) {\n Object.defineProperty(String.prototype, 'displayName', {\n get(this: string): string {\n return getCategoryDisplayName(this as CollectionCategoryType);\n }\n });\n}\n\n// 为字符串类型添加 categoryInfo getter(避免重复定义)\nif (!Object.getOwnPropertyDescriptor(String.prototype, 'categoryInfo')) {\n Object.defineProperty(String.prototype, 'categoryInfo', {\n get(this: string): CategoryInfo {\n return getCategoryInfo(this as CollectionCategoryType);\n }\n });\n}\n\n/**\n * 获取分类的描述信息 (枚举调用方式)\n */\nexport const CategoryDescription = {\n [CollectionCategory.COLLECTION]: '用于展示艺术作品,包含多个作品页面的画集',\n [CollectionCategory.ACRYLIC]: '立牌制品,如亚克力立牌、展示立牌等',\n [CollectionCategory.BADGE]: '徽章类商品,如徽章、钥匙扣等',\n [CollectionCategory.COLOR_PAPER]: '彩色纸张制品,如彩色卡纸、彩色打印纸等',\n [CollectionCategory.TRANSPARENT_CARD]: '透明卡片制品,如透明卡片、透明卡等',\n [CollectionCategory.POSTCARD]: '明信片类商品,如艺术明信片、纪念明信片等',\n [CollectionCategory.LASER_TICKET]: '镭射票类商品,如演唱会门票、电影票等',\n [CollectionCategory.CANVAS_BAG]: '帆布包类商品,如帆布袋、帆布背包等',\n [CollectionCategory.SPIRAL_NOTEBOOK]: '线圈装订笔记本,如线圈笔记本、线圈装订笔记本等',\n [CollectionCategory.MOUSE_PAD]: '鼠标垫类商品,如鼠标垫、鼠标垫等',\n [CollectionCategory.SUPPORT_STICK]: '应援棒类商品,如荧光棒、应援棒等',\n [CollectionCategory.KEYCHAIN]: '挂件/钥匙扣类商品,如装饰挂件、钥匙扣等',\n [CollectionCategory.OTHER]: '挂件/钥匙扣类商品,如装饰挂件、钥匙扣等'\n} as const;\n\n// ===== 上下文类型导出 =====\nexport type { CartContextState } from './context'; \n"]}
|