clhq-postgres-module 1.1.0-alpha.125 → 1.1.0-alpha.127
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/entities/editor-project.entity.d.ts +1 -0
- package/dist/entities/editor-project.entity.js +4 -0
- package/dist/entities/index.d.ts +2 -0
- package/dist/entities/index.js +2 -0
- package/dist/entities/item.entity.d.ts +42 -0
- package/dist/entities/item.entity.js +161 -0
- package/dist/entities/scene.entity.d.ts +33 -0
- package/dist/entities/scene.entity.js +119 -0
- package/dist/repositories/credit-allocation.repository.d.ts +14 -0
- package/dist/repositories/credit-allocation.repository.js +74 -0
- package/dist/repositories/index.d.ts +4 -0
- package/dist/repositories/index.js +9 -1
- package/dist/repositories/item.repository.d.ts +31 -0
- package/dist/repositories/item.repository.js +125 -0
- package/dist/repositories/plan-credit-configuration.repository.d.ts +8 -0
- package/dist/repositories/plan-credit-configuration.repository.js +42 -0
- package/dist/repositories/repository.module.js +6 -0
- package/dist/repositories/scene.repository.d.ts +21 -0
- package/dist/repositories/scene.repository.js +105 -0
- package/package.json +1 -1
|
@@ -138,6 +138,10 @@ __decorate([
|
|
|
138
138
|
(0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
|
|
139
139
|
__metadata("design:type", Object)
|
|
140
140
|
], EditorProject.prototype, "metadata", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
(0, typeorm_1.Column)({ name: 'scene_order', type: 'jsonb', default: () => "'[]'::jsonb" }),
|
|
143
|
+
__metadata("design:type", Array)
|
|
144
|
+
], EditorProject.prototype, "sceneOrder", void 0);
|
|
141
145
|
__decorate([
|
|
142
146
|
(0, typeorm_1.Column)({ name: 'last_opened_at', type: 'timestamp', nullable: true }),
|
|
143
147
|
__metadata("design:type", Date)
|
package/dist/entities/index.d.ts
CHANGED
|
@@ -34,4 +34,6 @@ export * from './ai-embedding.entity';
|
|
|
34
34
|
export * from './metadata-activity-log.entity';
|
|
35
35
|
export * from './project-scene-job.entity';
|
|
36
36
|
export * from './project-scene.entity';
|
|
37
|
+
export * from './scene.entity';
|
|
38
|
+
export * from './item.entity';
|
|
37
39
|
export * from './RemotionRender';
|
package/dist/entities/index.js
CHANGED
|
@@ -52,4 +52,6 @@ __exportStar(require("./ai-embedding.entity"), exports);
|
|
|
52
52
|
__exportStar(require("./metadata-activity-log.entity"), exports);
|
|
53
53
|
__exportStar(require("./project-scene-job.entity"), exports);
|
|
54
54
|
__exportStar(require("./project-scene.entity"), exports);
|
|
55
|
+
__exportStar(require("./scene.entity"), exports);
|
|
56
|
+
__exportStar(require("./item.entity"), exports);
|
|
55
57
|
__exportStar(require("./RemotionRender"), exports);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare enum ItemType {
|
|
2
|
+
VIDEOS = "videos",
|
|
3
|
+
AUDIOS = "audios",
|
|
4
|
+
IMAGES = "images",
|
|
5
|
+
TITLES = "titles",
|
|
6
|
+
SHAPES = "shapes",
|
|
7
|
+
EMOJIS = "emojis",
|
|
8
|
+
GIFS = "gifs"
|
|
9
|
+
}
|
|
10
|
+
export declare class Item {
|
|
11
|
+
id: string;
|
|
12
|
+
projectId: string;
|
|
13
|
+
uniqueId: string;
|
|
14
|
+
type: ItemType;
|
|
15
|
+
startMs: number;
|
|
16
|
+
endMs: number;
|
|
17
|
+
frameStartAt: number;
|
|
18
|
+
frameEndAt: number;
|
|
19
|
+
sceneId: string;
|
|
20
|
+
zIndex: number;
|
|
21
|
+
rowId: number;
|
|
22
|
+
locked: boolean;
|
|
23
|
+
visible: boolean;
|
|
24
|
+
mute: boolean;
|
|
25
|
+
isAudio: boolean;
|
|
26
|
+
isVideo: boolean;
|
|
27
|
+
isAudioDetached: boolean;
|
|
28
|
+
src: string;
|
|
29
|
+
s3Url: string;
|
|
30
|
+
s3Key: string;
|
|
31
|
+
thumbUrl: string;
|
|
32
|
+
duration: number;
|
|
33
|
+
volume: number;
|
|
34
|
+
textValue: string;
|
|
35
|
+
style: string;
|
|
36
|
+
shapeName: string;
|
|
37
|
+
isTintable: boolean;
|
|
38
|
+
transformation: Record<string, unknown>;
|
|
39
|
+
metadata: Record<string, unknown>;
|
|
40
|
+
createdAt: Date;
|
|
41
|
+
updatedAt: Date;
|
|
42
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Item = exports.ItemType = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
var ItemType;
|
|
15
|
+
(function (ItemType) {
|
|
16
|
+
ItemType["VIDEOS"] = "videos";
|
|
17
|
+
ItemType["AUDIOS"] = "audios";
|
|
18
|
+
ItemType["IMAGES"] = "images";
|
|
19
|
+
ItemType["TITLES"] = "titles";
|
|
20
|
+
ItemType["SHAPES"] = "shapes";
|
|
21
|
+
ItemType["EMOJIS"] = "emojis";
|
|
22
|
+
ItemType["GIFS"] = "gifs";
|
|
23
|
+
})(ItemType || (exports.ItemType = ItemType = {}));
|
|
24
|
+
let Item = class Item {
|
|
25
|
+
};
|
|
26
|
+
exports.Item = Item;
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.Column)({ primary: true, type: 'varchar', length: 36 }),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], Item.prototype, "id", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, typeorm_1.Column)({ name: 'project_id', type: 'varchar', length: 255 }),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], Item.prototype, "projectId", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)({ name: 'unique_id', type: 'varchar', length: 255 }),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], Item.prototype, "uniqueId", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)({
|
|
41
|
+
type: 'enum',
|
|
42
|
+
enum: ItemType,
|
|
43
|
+
}),
|
|
44
|
+
__metadata("design:type", String)
|
|
45
|
+
], Item.prototype, "type", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, typeorm_1.Column)({ name: 'start_ms', type: 'bigint' }),
|
|
48
|
+
__metadata("design:type", Number)
|
|
49
|
+
], Item.prototype, "startMs", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, typeorm_1.Column)({ name: 'end_ms', type: 'bigint' }),
|
|
52
|
+
__metadata("design:type", Number)
|
|
53
|
+
], Item.prototype, "endMs", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, typeorm_1.Column)({ name: 'frame_start_at', type: 'bigint', nullable: true }),
|
|
56
|
+
__metadata("design:type", Number)
|
|
57
|
+
], Item.prototype, "frameStartAt", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, typeorm_1.Column)({ name: 'frame_end_at', type: 'bigint', nullable: true }),
|
|
60
|
+
__metadata("design:type", Number)
|
|
61
|
+
], Item.prototype, "frameEndAt", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, typeorm_1.Column)({ name: 'scene_id', type: 'varchar', length: 36, nullable: true }),
|
|
64
|
+
__metadata("design:type", String)
|
|
65
|
+
], Item.prototype, "sceneId", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, typeorm_1.Column)({ name: 'z_index', type: 'integer' }),
|
|
68
|
+
__metadata("design:type", Number)
|
|
69
|
+
], Item.prototype, "zIndex", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, typeorm_1.Column)({ name: 'row_id', type: 'integer' }),
|
|
72
|
+
__metadata("design:type", Number)
|
|
73
|
+
], Item.prototype, "rowId", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: false }),
|
|
76
|
+
__metadata("design:type", Boolean)
|
|
77
|
+
], Item.prototype, "locked", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: true }),
|
|
80
|
+
__metadata("design:type", Boolean)
|
|
81
|
+
], Item.prototype, "visible", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: false }),
|
|
84
|
+
__metadata("design:type", Boolean)
|
|
85
|
+
], Item.prototype, "mute", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, typeorm_1.Column)({ name: 'is_audio', type: 'boolean', default: false }),
|
|
88
|
+
__metadata("design:type", Boolean)
|
|
89
|
+
], Item.prototype, "isAudio", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, typeorm_1.Column)({ name: 'is_video', type: 'boolean', default: false }),
|
|
92
|
+
__metadata("design:type", Boolean)
|
|
93
|
+
], Item.prototype, "isVideo", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, typeorm_1.Column)({ name: 'is_audio_detached', type: 'boolean', default: false }),
|
|
96
|
+
__metadata("design:type", Boolean)
|
|
97
|
+
], Item.prototype, "isAudioDetached", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
100
|
+
__metadata("design:type", String)
|
|
101
|
+
], Item.prototype, "src", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, typeorm_1.Column)({ name: 's3_url', type: 'text', nullable: true }),
|
|
104
|
+
__metadata("design:type", String)
|
|
105
|
+
], Item.prototype, "s3Url", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, typeorm_1.Column)({ name: 's3_key', type: 'text', nullable: true }),
|
|
108
|
+
__metadata("design:type", String)
|
|
109
|
+
], Item.prototype, "s3Key", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, typeorm_1.Column)({ name: 'thumb_url', type: 'text', nullable: true }),
|
|
112
|
+
__metadata("design:type", String)
|
|
113
|
+
], Item.prototype, "thumbUrl", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, typeorm_1.Column)({ type: 'bigint', nullable: true }),
|
|
116
|
+
__metadata("design:type", Number)
|
|
117
|
+
], Item.prototype, "duration", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
(0, typeorm_1.Column)({ type: 'decimal', precision: 3, scale: 2, default: 1.0 }),
|
|
120
|
+
__metadata("design:type", Number)
|
|
121
|
+
], Item.prototype, "volume", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
(0, typeorm_1.Column)({ name: 'text_value', type: 'text', nullable: true }),
|
|
124
|
+
__metadata("design:type", String)
|
|
125
|
+
], Item.prototype, "textValue", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
128
|
+
__metadata("design:type", String)
|
|
129
|
+
], Item.prototype, "style", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
(0, typeorm_1.Column)({ name: 'shape_name', type: 'varchar', length: 255, nullable: true }),
|
|
132
|
+
__metadata("design:type", String)
|
|
133
|
+
], Item.prototype, "shapeName", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
(0, typeorm_1.Column)({ name: 'is_tintable', type: 'boolean', default: false }),
|
|
136
|
+
__metadata("design:type", Boolean)
|
|
137
|
+
], Item.prototype, "isTintable", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
|
|
140
|
+
__metadata("design:type", Object)
|
|
141
|
+
], Item.prototype, "transformation", void 0);
|
|
142
|
+
__decorate([
|
|
143
|
+
(0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
|
|
144
|
+
__metadata("design:type", Object)
|
|
145
|
+
], Item.prototype, "metadata", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
(0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
|
|
148
|
+
__metadata("design:type", Date)
|
|
149
|
+
], Item.prototype, "createdAt", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
(0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
|
|
152
|
+
__metadata("design:type", Date)
|
|
153
|
+
], Item.prototype, "updatedAt", void 0);
|
|
154
|
+
exports.Item = Item = __decorate([
|
|
155
|
+
(0, typeorm_1.Entity)('items'),
|
|
156
|
+
(0, typeorm_1.Index)(['projectId']),
|
|
157
|
+
(0, typeorm_1.Index)(['sceneId']),
|
|
158
|
+
(0, typeorm_1.Index)(['projectId', 'uniqueId'], { unique: true }),
|
|
159
|
+
(0, typeorm_1.Index)(['projectId', 'startMs', 'endMs']),
|
|
160
|
+
(0, typeorm_1.Index)(['projectId', 'rowId', 'zIndex'])
|
|
161
|
+
], Item);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare enum SceneThumbnailStatus {
|
|
2
|
+
PENDING = "PENDING",
|
|
3
|
+
GENERATING = "GENERATING",
|
|
4
|
+
READY = "READY",
|
|
5
|
+
FAILED = "FAILED"
|
|
6
|
+
}
|
|
7
|
+
export declare enum TransitionType {
|
|
8
|
+
FADE = "FADE",
|
|
9
|
+
CROSS_DISSOLVE = "CROSS_DISSOLVE",
|
|
10
|
+
WIPE = "WIPE",
|
|
11
|
+
SLIDE = "SLIDE",
|
|
12
|
+
NONE = "NONE"
|
|
13
|
+
}
|
|
14
|
+
export declare class Scene {
|
|
15
|
+
id: string;
|
|
16
|
+
projectId: string;
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
startMs: number;
|
|
20
|
+
endMs: number;
|
|
21
|
+
durationMs: number;
|
|
22
|
+
thumbnailUrl: string;
|
|
23
|
+
thumbnailStatus: SceneThumbnailStatus;
|
|
24
|
+
color: string;
|
|
25
|
+
transitionType: TransitionType;
|
|
26
|
+
transitionDurationMs: number;
|
|
27
|
+
transitionToSceneId: string;
|
|
28
|
+
locked: boolean;
|
|
29
|
+
collapsed: boolean;
|
|
30
|
+
sortOrder: number;
|
|
31
|
+
createdAt: Date;
|
|
32
|
+
updatedAt: Date;
|
|
33
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Scene = exports.TransitionType = exports.SceneThumbnailStatus = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
var SceneThumbnailStatus;
|
|
15
|
+
(function (SceneThumbnailStatus) {
|
|
16
|
+
SceneThumbnailStatus["PENDING"] = "PENDING";
|
|
17
|
+
SceneThumbnailStatus["GENERATING"] = "GENERATING";
|
|
18
|
+
SceneThumbnailStatus["READY"] = "READY";
|
|
19
|
+
SceneThumbnailStatus["FAILED"] = "FAILED";
|
|
20
|
+
})(SceneThumbnailStatus || (exports.SceneThumbnailStatus = SceneThumbnailStatus = {}));
|
|
21
|
+
var TransitionType;
|
|
22
|
+
(function (TransitionType) {
|
|
23
|
+
TransitionType["FADE"] = "FADE";
|
|
24
|
+
TransitionType["CROSS_DISSOLVE"] = "CROSS_DISSOLVE";
|
|
25
|
+
TransitionType["WIPE"] = "WIPE";
|
|
26
|
+
TransitionType["SLIDE"] = "SLIDE";
|
|
27
|
+
TransitionType["NONE"] = "NONE";
|
|
28
|
+
})(TransitionType || (exports.TransitionType = TransitionType = {}));
|
|
29
|
+
let Scene = class Scene {
|
|
30
|
+
};
|
|
31
|
+
exports.Scene = Scene;
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, typeorm_1.Column)({ primary: true, type: 'varchar', length: 36 }),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], Scene.prototype, "id", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
(0, typeorm_1.Column)({ name: 'project_id', type: 'varchar', length: 255 }),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], Scene.prototype, "projectId", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 255 }),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], Scene.prototype, "name", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], Scene.prototype, "description", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
(0, typeorm_1.Column)({ name: 'start_ms', type: 'bigint' }),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], Scene.prototype, "startMs", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
(0, typeorm_1.Column)({ name: 'end_ms', type: 'bigint' }),
|
|
54
|
+
__metadata("design:type", Number)
|
|
55
|
+
], Scene.prototype, "endMs", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
(0, typeorm_1.Column)({ name: 'duration_ms', type: 'bigint', insert: false, update: false }),
|
|
58
|
+
__metadata("design:type", Number)
|
|
59
|
+
], Scene.prototype, "durationMs", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
(0, typeorm_1.Column)({ name: 'thumbnail_url', type: 'text', nullable: true }),
|
|
62
|
+
__metadata("design:type", String)
|
|
63
|
+
], Scene.prototype, "thumbnailUrl", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, typeorm_1.Column)({
|
|
66
|
+
name: 'thumbnail_status',
|
|
67
|
+
type: 'varchar',
|
|
68
|
+
length: 20,
|
|
69
|
+
default: SceneThumbnailStatus.PENDING,
|
|
70
|
+
}),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], Scene.prototype, "thumbnailStatus", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 7, nullable: true }),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], Scene.prototype, "color", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
(0, typeorm_1.Column)({
|
|
79
|
+
name: 'transition_type',
|
|
80
|
+
type: 'varchar',
|
|
81
|
+
length: 20,
|
|
82
|
+
nullable: true,
|
|
83
|
+
}),
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], Scene.prototype, "transitionType", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, typeorm_1.Column)({ name: 'transition_duration_ms', type: 'integer', nullable: true }),
|
|
88
|
+
__metadata("design:type", Number)
|
|
89
|
+
], Scene.prototype, "transitionDurationMs", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
(0, typeorm_1.Column)({ name: 'transition_to_scene_id', type: 'varchar', length: 36, nullable: true }),
|
|
92
|
+
__metadata("design:type", String)
|
|
93
|
+
], Scene.prototype, "transitionToSceneId", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: false }),
|
|
96
|
+
__metadata("design:type", Boolean)
|
|
97
|
+
], Scene.prototype, "locked", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: false }),
|
|
100
|
+
__metadata("design:type", Boolean)
|
|
101
|
+
], Scene.prototype, "collapsed", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, typeorm_1.Column)({ name: 'sort_order', type: 'integer', default: 0 }),
|
|
104
|
+
__metadata("design:type", Number)
|
|
105
|
+
], Scene.prototype, "sortOrder", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, typeorm_1.CreateDateColumn)({ name: 'created_at' }),
|
|
108
|
+
__metadata("design:type", Date)
|
|
109
|
+
], Scene.prototype, "createdAt", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, typeorm_1.UpdateDateColumn)({ name: 'updated_at' }),
|
|
112
|
+
__metadata("design:type", Date)
|
|
113
|
+
], Scene.prototype, "updatedAt", void 0);
|
|
114
|
+
exports.Scene = Scene = __decorate([
|
|
115
|
+
(0, typeorm_1.Entity)('scenes'),
|
|
116
|
+
(0, typeorm_1.Index)(['projectId']),
|
|
117
|
+
(0, typeorm_1.Index)(['projectId', 'sortOrder']),
|
|
118
|
+
(0, typeorm_1.Index)(['projectId', 'startMs', 'endMs'])
|
|
119
|
+
], Scene);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Repository, DeepPartial, FindManyOptions, FindOneOptions } from 'typeorm';
|
|
2
|
+
import { BaseRepository } from './base.repository';
|
|
3
|
+
import { CreditAllocation } from '../entities/credit-allocation.entity';
|
|
4
|
+
export declare class CreditAllocationRepository extends BaseRepository<CreditAllocation> {
|
|
5
|
+
constructor(repository: Repository<CreditAllocation>);
|
|
6
|
+
findActiveByUserId(userId: string): Promise<CreditAllocation | null>;
|
|
7
|
+
findHistoryByUserId(userId: string, limit?: number): Promise<CreditAllocation[]>;
|
|
8
|
+
findExpired(): Promise<CreditAllocation[]>;
|
|
9
|
+
findExpiringIn(days: number): Promise<CreditAllocation[]>;
|
|
10
|
+
createEntity(data: DeepPartial<CreditAllocation>): CreditAllocation;
|
|
11
|
+
findWithOptions(options?: FindManyOptions<CreditAllocation>): Promise<CreditAllocation[]>;
|
|
12
|
+
findOneWithOptions(options?: FindOneOptions<CreditAllocation>): Promise<CreditAllocation | null>;
|
|
13
|
+
createQueryBuilder(alias?: string): import("typeorm").SelectQueryBuilder<CreditAllocation>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CreditAllocationRepository = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
|
+
const typeorm_2 = require("typeorm");
|
|
19
|
+
const base_repository_1 = require("./base.repository");
|
|
20
|
+
const credit_allocation_entity_1 = require("../entities/credit-allocation.entity");
|
|
21
|
+
let CreditAllocationRepository = class CreditAllocationRepository extends base_repository_1.BaseRepository {
|
|
22
|
+
constructor(repository) {
|
|
23
|
+
super(repository);
|
|
24
|
+
}
|
|
25
|
+
async findActiveByUserId(userId) {
|
|
26
|
+
return this.repository.findOne({
|
|
27
|
+
where: { userId, status: 'active' },
|
|
28
|
+
order: { createdAt: 'DESC' },
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async findHistoryByUserId(userId, limit = 10) {
|
|
32
|
+
return this.repository.find({
|
|
33
|
+
where: { userId },
|
|
34
|
+
order: { createdAt: 'DESC' },
|
|
35
|
+
take: limit,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async findExpired() {
|
|
39
|
+
const now = new Date();
|
|
40
|
+
return this.repository
|
|
41
|
+
.createQueryBuilder('allocation')
|
|
42
|
+
.where('allocation.status = :status', { status: 'active' })
|
|
43
|
+
.andWhere('allocation.periodEnd < :now', { now })
|
|
44
|
+
.getMany();
|
|
45
|
+
}
|
|
46
|
+
async findExpiringIn(days) {
|
|
47
|
+
const now = new Date();
|
|
48
|
+
const futureDate = new Date(now.getTime() + days * 24 * 60 * 60 * 1000);
|
|
49
|
+
return this.repository
|
|
50
|
+
.createQueryBuilder('allocation')
|
|
51
|
+
.where('allocation.status = :status', { status: 'active' })
|
|
52
|
+
.andWhere('allocation.periodEnd >= :now', { now })
|
|
53
|
+
.andWhere('allocation.periodEnd <= :futureDate', { futureDate })
|
|
54
|
+
.getMany();
|
|
55
|
+
}
|
|
56
|
+
createEntity(data) {
|
|
57
|
+
return this.repository.create(data);
|
|
58
|
+
}
|
|
59
|
+
async findWithOptions(options) {
|
|
60
|
+
return this.repository.find(options);
|
|
61
|
+
}
|
|
62
|
+
async findOneWithOptions(options) {
|
|
63
|
+
return this.repository.findOne(options);
|
|
64
|
+
}
|
|
65
|
+
createQueryBuilder(alias = 'allocation') {
|
|
66
|
+
return this.repository.createQueryBuilder(alias);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.CreditAllocationRepository = CreditAllocationRepository;
|
|
70
|
+
exports.CreditAllocationRepository = CreditAllocationRepository = __decorate([
|
|
71
|
+
(0, common_1.Injectable)(),
|
|
72
|
+
__param(0, (0, typeorm_1.InjectRepository)(credit_allocation_entity_1.CreditAllocation)),
|
|
73
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
74
|
+
], CreditAllocationRepository);
|
|
@@ -14,7 +14,9 @@ export { UserSubscriptionRepository } from './user-subscription.repository';
|
|
|
14
14
|
export { SubscriptionUsageRepository } from './subscription-usage.repository';
|
|
15
15
|
export { PaymentTransactionRepository } from './payment-transaction.repository';
|
|
16
16
|
export { StripeWebhookRepository } from './stripe-webhook.repository';
|
|
17
|
+
export { CreditAllocationRepository } from './credit-allocation.repository';
|
|
17
18
|
export { CreditTransactionRepository } from './credit-transaction.repository';
|
|
19
|
+
export { PlanCreditConfigurationRepository } from './plan-credit-configuration.repository';
|
|
18
20
|
export { RewardRuleRepository } from './reward-rule.repository';
|
|
19
21
|
export { ReferralEventRepository } from './referral-event.repository';
|
|
20
22
|
export { AiUsageRepository } from './ai-usage.repository';
|
|
@@ -30,4 +32,6 @@ export { UserContextRepository } from './user-context.repository';
|
|
|
30
32
|
export { AiEmbeddingRepository } from './ai-embedding.repository';
|
|
31
33
|
export { MetadataActivityLogRepository } from './metadata-activity-log.repository';
|
|
32
34
|
export { ProjectSceneRepository } from './project-scene.repository';
|
|
35
|
+
export { SceneRepository } from './scene.repository';
|
|
36
|
+
export { ItemRepository } from './item.repository';
|
|
33
37
|
export { RemotionRenderRepository } from './RemotionRenderRepository';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RemotionRenderRepository = exports.ProjectSceneRepository = exports.MetadataActivityLogRepository = exports.AiEmbeddingRepository = exports.UserContextRepository = exports.ProjectMetadataRepository = exports.AssetMetadataRepository = exports.AudioWaveformRepository = exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = exports.ReferralEventRepository = exports.RewardRuleRepository = exports.CreditTransactionRepository = exports.StripeWebhookRepository = exports.PaymentTransactionRepository = exports.SubscriptionUsageRepository = exports.UserSubscriptionRepository = exports.PlanRepository = exports.SubscriptionPlanRepository = exports.CommentRepository = exports.EditorProjectRepository = exports.InviteRepository = exports.WorkspaceMemberRepository = exports.WorkspaceRepository = exports.AuthSessionRepository = exports.UserOnboardingRepository = exports.UserProfileRepository = exports.UserRepository = exports.BaseRepository = void 0;
|
|
3
|
+
exports.RemotionRenderRepository = exports.ItemRepository = exports.SceneRepository = exports.ProjectSceneRepository = exports.MetadataActivityLogRepository = exports.AiEmbeddingRepository = exports.UserContextRepository = exports.ProjectMetadataRepository = exports.AssetMetadataRepository = exports.AudioWaveformRepository = exports.VideoFilmstripRepository = exports.VideoRenderRepository = exports.VideoTranscodeRepository = exports.EffectRepository = exports.AssetRepository = exports.AiUsageRepository = exports.ReferralEventRepository = exports.RewardRuleRepository = exports.PlanCreditConfigurationRepository = exports.CreditTransactionRepository = exports.CreditAllocationRepository = exports.StripeWebhookRepository = exports.PaymentTransactionRepository = exports.SubscriptionUsageRepository = exports.UserSubscriptionRepository = exports.PlanRepository = exports.SubscriptionPlanRepository = exports.CommentRepository = exports.EditorProjectRepository = exports.InviteRepository = exports.WorkspaceMemberRepository = exports.WorkspaceRepository = exports.AuthSessionRepository = exports.UserOnboardingRepository = exports.UserProfileRepository = exports.UserRepository = exports.BaseRepository = void 0;
|
|
4
4
|
var base_repository_1 = require("./base.repository");
|
|
5
5
|
Object.defineProperty(exports, "BaseRepository", { enumerable: true, get: function () { return base_repository_1.BaseRepository; } });
|
|
6
6
|
var user_repository_1 = require("./user.repository");
|
|
@@ -33,8 +33,12 @@ var payment_transaction_repository_1 = require("./payment-transaction.repository
|
|
|
33
33
|
Object.defineProperty(exports, "PaymentTransactionRepository", { enumerable: true, get: function () { return payment_transaction_repository_1.PaymentTransactionRepository; } });
|
|
34
34
|
var stripe_webhook_repository_1 = require("./stripe-webhook.repository");
|
|
35
35
|
Object.defineProperty(exports, "StripeWebhookRepository", { enumerable: true, get: function () { return stripe_webhook_repository_1.StripeWebhookRepository; } });
|
|
36
|
+
var credit_allocation_repository_1 = require("./credit-allocation.repository");
|
|
37
|
+
Object.defineProperty(exports, "CreditAllocationRepository", { enumerable: true, get: function () { return credit_allocation_repository_1.CreditAllocationRepository; } });
|
|
36
38
|
var credit_transaction_repository_1 = require("./credit-transaction.repository");
|
|
37
39
|
Object.defineProperty(exports, "CreditTransactionRepository", { enumerable: true, get: function () { return credit_transaction_repository_1.CreditTransactionRepository; } });
|
|
40
|
+
var plan_credit_configuration_repository_1 = require("./plan-credit-configuration.repository");
|
|
41
|
+
Object.defineProperty(exports, "PlanCreditConfigurationRepository", { enumerable: true, get: function () { return plan_credit_configuration_repository_1.PlanCreditConfigurationRepository; } });
|
|
38
42
|
var reward_rule_repository_1 = require("./reward-rule.repository");
|
|
39
43
|
Object.defineProperty(exports, "RewardRuleRepository", { enumerable: true, get: function () { return reward_rule_repository_1.RewardRuleRepository; } });
|
|
40
44
|
var referral_event_repository_1 = require("./referral-event.repository");
|
|
@@ -65,5 +69,9 @@ var metadata_activity_log_repository_1 = require("./metadata-activity-log.reposi
|
|
|
65
69
|
Object.defineProperty(exports, "MetadataActivityLogRepository", { enumerable: true, get: function () { return metadata_activity_log_repository_1.MetadataActivityLogRepository; } });
|
|
66
70
|
var project_scene_repository_1 = require("./project-scene.repository");
|
|
67
71
|
Object.defineProperty(exports, "ProjectSceneRepository", { enumerable: true, get: function () { return project_scene_repository_1.ProjectSceneRepository; } });
|
|
72
|
+
var scene_repository_1 = require("./scene.repository");
|
|
73
|
+
Object.defineProperty(exports, "SceneRepository", { enumerable: true, get: function () { return scene_repository_1.SceneRepository; } });
|
|
74
|
+
var item_repository_1 = require("./item.repository");
|
|
75
|
+
Object.defineProperty(exports, "ItemRepository", { enumerable: true, get: function () { return item_repository_1.ItemRepository; } });
|
|
68
76
|
var RemotionRenderRepository_1 = require("./RemotionRenderRepository");
|
|
69
77
|
Object.defineProperty(exports, "RemotionRenderRepository", { enumerable: true, get: function () { return RemotionRenderRepository_1.RemotionRenderRepository; } });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { BaseRepository } from './base.repository';
|
|
3
|
+
import { Item } from '../entities/item.entity';
|
|
4
|
+
export declare class ItemRepository extends BaseRepository<Item> {
|
|
5
|
+
private readonly itemRepository;
|
|
6
|
+
constructor(itemRepository: Repository<Item>);
|
|
7
|
+
findByProject(projectId: string): Promise<Item[]>;
|
|
8
|
+
findByProjectWithScenes(projectId: string): Promise<Item[]>;
|
|
9
|
+
findByScene(sceneId: string): Promise<Item[]>;
|
|
10
|
+
findByScenes(sceneIds: string[]): Promise<Item[]>;
|
|
11
|
+
findInTimeRange(projectId: string, startMs: number, endMs: number): Promise<Item[]>;
|
|
12
|
+
findByType(projectId: string, type: string): Promise<Item[]>;
|
|
13
|
+
findByRow(projectId: string, rowId: number): Promise<Item[]>;
|
|
14
|
+
updateSceneIds(updates: {
|
|
15
|
+
id: string;
|
|
16
|
+
sceneId: string | null;
|
|
17
|
+
}[]): Promise<void>;
|
|
18
|
+
removeSceneAssignment(sceneId: string): Promise<number>;
|
|
19
|
+
deleteByProject(projectId: string): Promise<number>;
|
|
20
|
+
deleteByScene(sceneId: string): Promise<number>;
|
|
21
|
+
countByProject(projectId: string): Promise<number>;
|
|
22
|
+
countByScene(sceneId: string): Promise<number>;
|
|
23
|
+
findOrphaned(projectId: string): Promise<Item[]>;
|
|
24
|
+
bulkCreate(items: Partial<Item>[]): Promise<Item[]>;
|
|
25
|
+
findByUniqueIds(projectId: string, uniqueIds: string[]): Promise<Item[]>;
|
|
26
|
+
updatePositions(updates: {
|
|
27
|
+
id: string;
|
|
28
|
+
rowId: number;
|
|
29
|
+
zIndex: number;
|
|
30
|
+
}[]): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ItemRepository = void 0;
|
|
16
|
+
const typeorm_1 = require("typeorm");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_2 = require("@nestjs/typeorm");
|
|
19
|
+
const base_repository_1 = require("./base.repository");
|
|
20
|
+
const item_entity_1 = require("../entities/item.entity");
|
|
21
|
+
let ItemRepository = class ItemRepository extends base_repository_1.BaseRepository {
|
|
22
|
+
constructor(itemRepository) {
|
|
23
|
+
super(itemRepository);
|
|
24
|
+
this.itemRepository = itemRepository;
|
|
25
|
+
}
|
|
26
|
+
async findByProject(projectId) {
|
|
27
|
+
return this.itemRepository.find({
|
|
28
|
+
where: { projectId },
|
|
29
|
+
order: { rowId: 'ASC', zIndex: 'ASC', startMs: 'ASC' },
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async findByProjectWithScenes(projectId) {
|
|
33
|
+
return this.itemRepository.find({
|
|
34
|
+
where: { projectId },
|
|
35
|
+
relations: ['scene'],
|
|
36
|
+
order: { rowId: 'ASC', zIndex: 'ASC', startMs: 'ASC' },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async findByScene(sceneId) {
|
|
40
|
+
return this.itemRepository.find({
|
|
41
|
+
where: { sceneId },
|
|
42
|
+
order: { rowId: 'ASC', zIndex: 'ASC', startMs: 'ASC' },
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
async findByScenes(sceneIds) {
|
|
46
|
+
if (sceneIds.length === 0)
|
|
47
|
+
return [];
|
|
48
|
+
return this.itemRepository.find({
|
|
49
|
+
where: { sceneId: { $in: sceneIds } },
|
|
50
|
+
order: { rowId: 'ASC', zIndex: 'ASC', startMs: 'ASC' },
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async findInTimeRange(projectId, startMs, endMs) {
|
|
54
|
+
return this.itemRepository
|
|
55
|
+
.createQueryBuilder('item')
|
|
56
|
+
.where('item.projectId = :projectId', { projectId })
|
|
57
|
+
.andWhere('item.startMs < :endMs', { endMs })
|
|
58
|
+
.andWhere('item.endMs > :startMs', { startMs })
|
|
59
|
+
.orderBy('item.rowId', 'ASC')
|
|
60
|
+
.addOrderBy('item.zIndex', 'ASC')
|
|
61
|
+
.getMany();
|
|
62
|
+
}
|
|
63
|
+
async findByType(projectId, type) {
|
|
64
|
+
return this.itemRepository.find({
|
|
65
|
+
where: { projectId, type: type },
|
|
66
|
+
order: { startMs: 'ASC' },
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async findByRow(projectId, rowId) {
|
|
70
|
+
return this.itemRepository.find({
|
|
71
|
+
where: { projectId, rowId },
|
|
72
|
+
order: { zIndex: 'ASC', startMs: 'ASC' },
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async updateSceneIds(updates) {
|
|
76
|
+
const updatePromises = updates.map(({ id, sceneId }) => this.itemRepository.update(id, { sceneId }));
|
|
77
|
+
await Promise.all(updatePromises);
|
|
78
|
+
}
|
|
79
|
+
async removeSceneAssignment(sceneId) {
|
|
80
|
+
const result = await this.itemRepository.update({ sceneId }, { sceneId: null });
|
|
81
|
+
return result.affected ?? 0;
|
|
82
|
+
}
|
|
83
|
+
async deleteByProject(projectId) {
|
|
84
|
+
const result = await this.itemRepository.delete({ projectId });
|
|
85
|
+
return result.affected ?? 0;
|
|
86
|
+
}
|
|
87
|
+
async deleteByScene(sceneId) {
|
|
88
|
+
const result = await this.itemRepository.delete({ sceneId });
|
|
89
|
+
return result.affected ?? 0;
|
|
90
|
+
}
|
|
91
|
+
async countByProject(projectId) {
|
|
92
|
+
return this.itemRepository.count({ where: { projectId } });
|
|
93
|
+
}
|
|
94
|
+
async countByScene(sceneId) {
|
|
95
|
+
return this.itemRepository.count({ where: { sceneId } });
|
|
96
|
+
}
|
|
97
|
+
async findOrphaned(projectId) {
|
|
98
|
+
return this.itemRepository.find({
|
|
99
|
+
where: { projectId, sceneId: null },
|
|
100
|
+
order: { rowId: 'ASC', zIndex: 'ASC' },
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
async bulkCreate(items) {
|
|
104
|
+
const entities = this.itemRepository.create(items);
|
|
105
|
+
return this.itemRepository.save(entities);
|
|
106
|
+
}
|
|
107
|
+
async findByUniqueIds(projectId, uniqueIds) {
|
|
108
|
+
if (uniqueIds.length === 0)
|
|
109
|
+
return [];
|
|
110
|
+
return this.itemRepository.find({
|
|
111
|
+
where: { projectId, uniqueId: { $in: uniqueIds } },
|
|
112
|
+
order: { rowId: 'ASC', zIndex: 'ASC' },
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
async updatePositions(updates) {
|
|
116
|
+
const updatePromises = updates.map(({ id, rowId, zIndex }) => this.itemRepository.update(id, { rowId, zIndex }));
|
|
117
|
+
await Promise.all(updatePromises);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
exports.ItemRepository = ItemRepository;
|
|
121
|
+
exports.ItemRepository = ItemRepository = __decorate([
|
|
122
|
+
(0, common_1.Injectable)(),
|
|
123
|
+
__param(0, (0, typeorm_2.InjectRepository)(item_entity_1.Item)),
|
|
124
|
+
__metadata("design:paramtypes", [typeorm_1.Repository])
|
|
125
|
+
], ItemRepository);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { BaseRepository } from './base.repository';
|
|
3
|
+
import { PlanCreditConfiguration } from '../entities/plan-credit-config.entity';
|
|
4
|
+
export declare class PlanCreditConfigurationRepository extends BaseRepository<PlanCreditConfiguration> {
|
|
5
|
+
constructor(repository: Repository<PlanCreditConfiguration>);
|
|
6
|
+
findActiveByPlanId(planId: string): Promise<PlanCreditConfiguration | null>;
|
|
7
|
+
findAllActive(): Promise<PlanCreditConfiguration[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PlanCreditConfigurationRepository = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
|
+
const typeorm_2 = require("typeorm");
|
|
19
|
+
const base_repository_1 = require("./base.repository");
|
|
20
|
+
const plan_credit_config_entity_1 = require("../entities/plan-credit-config.entity");
|
|
21
|
+
let PlanCreditConfigurationRepository = class PlanCreditConfigurationRepository extends base_repository_1.BaseRepository {
|
|
22
|
+
constructor(repository) {
|
|
23
|
+
super(repository);
|
|
24
|
+
}
|
|
25
|
+
async findActiveByPlanId(planId) {
|
|
26
|
+
return this.repository.findOne({
|
|
27
|
+
where: { planId, isActive: true },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async findAllActive() {
|
|
31
|
+
return this.repository.find({
|
|
32
|
+
where: { isActive: true },
|
|
33
|
+
order: { planId: 'ASC' },
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports.PlanCreditConfigurationRepository = PlanCreditConfigurationRepository;
|
|
38
|
+
exports.PlanCreditConfigurationRepository = PlanCreditConfigurationRepository = __decorate([
|
|
39
|
+
(0, common_1.Injectable)(),
|
|
40
|
+
__param(0, (0, typeorm_1.InjectRepository)(plan_credit_config_entity_1.PlanCreditConfiguration)),
|
|
41
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
42
|
+
], PlanCreditConfigurationRepository);
|
|
@@ -27,7 +27,9 @@ const repositories = [
|
|
|
27
27
|
_1.SubscriptionUsageRepository,
|
|
28
28
|
_1.PaymentTransactionRepository,
|
|
29
29
|
_1.StripeWebhookRepository,
|
|
30
|
+
_1.CreditAllocationRepository,
|
|
30
31
|
_1.CreditTransactionRepository,
|
|
32
|
+
_1.PlanCreditConfigurationRepository,
|
|
31
33
|
_1.RewardRuleRepository,
|
|
32
34
|
_1.ReferralEventRepository,
|
|
33
35
|
_1.AiUsageRepository,
|
|
@@ -43,6 +45,8 @@ const repositories = [
|
|
|
43
45
|
_1.AiEmbeddingRepository,
|
|
44
46
|
_1.MetadataActivityLogRepository,
|
|
45
47
|
_1.ProjectSceneRepository,
|
|
48
|
+
_1.SceneRepository,
|
|
49
|
+
_1.ItemRepository,
|
|
46
50
|
_1.RemotionRenderRepository,
|
|
47
51
|
];
|
|
48
52
|
const entities = [
|
|
@@ -78,6 +82,8 @@ const entities = [
|
|
|
78
82
|
entities_1.MetadataActivityLog,
|
|
79
83
|
entities_1.ProjectSceneJob,
|
|
80
84
|
entities_1.ProjectScene,
|
|
85
|
+
entities_1.Scene,
|
|
86
|
+
entities_1.Item,
|
|
81
87
|
entities_1.RemotionRender,
|
|
82
88
|
entities_1.CreditAllocation,
|
|
83
89
|
entities_1.PlanCreditConfiguration,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Repository } from 'typeorm';
|
|
2
|
+
import { BaseRepository } from './base.repository';
|
|
3
|
+
import { Scene } from '../entities/scene.entity';
|
|
4
|
+
export declare class SceneRepository extends BaseRepository<Scene> {
|
|
5
|
+
private readonly sceneRepository;
|
|
6
|
+
constructor(sceneRepository: Repository<Scene>);
|
|
7
|
+
findByProject(projectId: string): Promise<Scene[]>;
|
|
8
|
+
findByProjectWithItems(projectId: string): Promise<Scene[]>;
|
|
9
|
+
findByIdWithProject(id: string): Promise<Scene | null>;
|
|
10
|
+
findInTimeRange(projectId: string, startMs: number, endMs: number): Promise<Scene[]>;
|
|
11
|
+
updateSortOrders(updates: {
|
|
12
|
+
id: string;
|
|
13
|
+
sortOrder: number;
|
|
14
|
+
}[]): Promise<void>;
|
|
15
|
+
deleteByProject(projectId: string): Promise<number>;
|
|
16
|
+
countByProject(projectId: string): Promise<number>;
|
|
17
|
+
findOverlapping(projectId: string, startMs: number, endMs: number, excludeId?: string): Promise<Scene[]>;
|
|
18
|
+
findByThumbnailStatus(status: string, limit?: number): Promise<Scene[]>;
|
|
19
|
+
updateThumbnailStatus(ids: string[], status: string): Promise<void>;
|
|
20
|
+
getNextSortOrder(projectId: string): Promise<number>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SceneRepository = void 0;
|
|
16
|
+
const typeorm_1 = require("typeorm");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_2 = require("@nestjs/typeorm");
|
|
19
|
+
const base_repository_1 = require("./base.repository");
|
|
20
|
+
const scene_entity_1 = require("../entities/scene.entity");
|
|
21
|
+
let SceneRepository = class SceneRepository extends base_repository_1.BaseRepository {
|
|
22
|
+
constructor(sceneRepository) {
|
|
23
|
+
super(sceneRepository);
|
|
24
|
+
this.sceneRepository = sceneRepository;
|
|
25
|
+
}
|
|
26
|
+
async findByProject(projectId) {
|
|
27
|
+
return this.sceneRepository.find({
|
|
28
|
+
where: { projectId },
|
|
29
|
+
order: { sortOrder: 'ASC' },
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async findByProjectWithItems(projectId) {
|
|
33
|
+
return this.sceneRepository.find({
|
|
34
|
+
where: { projectId },
|
|
35
|
+
relations: ['items'],
|
|
36
|
+
order: { sortOrder: 'ASC' },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
async findByIdWithProject(id) {
|
|
40
|
+
return this.sceneRepository.findOne({
|
|
41
|
+
where: { id },
|
|
42
|
+
relations: ['project'],
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
async findInTimeRange(projectId, startMs, endMs) {
|
|
46
|
+
return this.sceneRepository
|
|
47
|
+
.createQueryBuilder('scene')
|
|
48
|
+
.where('scene.projectId = :projectId', { projectId })
|
|
49
|
+
.andWhere('scene.startMs < :endMs', { endMs })
|
|
50
|
+
.andWhere('scene.endMs > :startMs', { startMs })
|
|
51
|
+
.orderBy('scene.sortOrder', 'ASC')
|
|
52
|
+
.getMany();
|
|
53
|
+
}
|
|
54
|
+
async updateSortOrders(updates) {
|
|
55
|
+
const updatePromises = updates.map(({ id, sortOrder }) => this.sceneRepository.update(id, { sortOrder }));
|
|
56
|
+
await Promise.all(updatePromises);
|
|
57
|
+
}
|
|
58
|
+
async deleteByProject(projectId) {
|
|
59
|
+
const result = await this.sceneRepository.delete({ projectId });
|
|
60
|
+
return result.affected ?? 0;
|
|
61
|
+
}
|
|
62
|
+
async countByProject(projectId) {
|
|
63
|
+
return this.sceneRepository.count({ where: { projectId } });
|
|
64
|
+
}
|
|
65
|
+
async findOverlapping(projectId, startMs, endMs, excludeId) {
|
|
66
|
+
const query = this.sceneRepository
|
|
67
|
+
.createQueryBuilder('scene')
|
|
68
|
+
.where('scene.projectId = :projectId', { projectId })
|
|
69
|
+
.andWhere('scene.startMs < :endMs', { endMs })
|
|
70
|
+
.andWhere('scene.endMs > :startMs', { startMs });
|
|
71
|
+
if (excludeId) {
|
|
72
|
+
query.andWhere('scene.id != :excludeId', { excludeId });
|
|
73
|
+
}
|
|
74
|
+
return query.orderBy('scene.sortOrder', 'ASC').getMany();
|
|
75
|
+
}
|
|
76
|
+
async findByThumbnailStatus(status, limit = 100) {
|
|
77
|
+
return this.sceneRepository.find({
|
|
78
|
+
where: { thumbnailStatus: status },
|
|
79
|
+
take: limit,
|
|
80
|
+
order: { updatedAt: 'ASC' },
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async updateThumbnailStatus(ids, status) {
|
|
84
|
+
await this.sceneRepository
|
|
85
|
+
.createQueryBuilder()
|
|
86
|
+
.update()
|
|
87
|
+
.set({ thumbnailStatus: status })
|
|
88
|
+
.where('id IN (:...ids)', { ids })
|
|
89
|
+
.execute();
|
|
90
|
+
}
|
|
91
|
+
async getNextSortOrder(projectId) {
|
|
92
|
+
const result = await this.sceneRepository
|
|
93
|
+
.createQueryBuilder('scene')
|
|
94
|
+
.select('MAX(scene.sortOrder)', 'maxOrder')
|
|
95
|
+
.where('scene.projectId = :projectId', { projectId })
|
|
96
|
+
.getRawOne();
|
|
97
|
+
return (result?.maxOrder ?? -1) + 1;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
exports.SceneRepository = SceneRepository;
|
|
101
|
+
exports.SceneRepository = SceneRepository = __decorate([
|
|
102
|
+
(0, common_1.Injectable)(),
|
|
103
|
+
__param(0, (0, typeorm_2.InjectRepository)(scene_entity_1.Scene)),
|
|
104
|
+
__metadata("design:paramtypes", [typeorm_1.Repository])
|
|
105
|
+
], SceneRepository);
|