feat: editor-v2 S1 — EDL schema, strict validation, /video/edl API, edl_projects store
apps/api/src/media-control/edl.ts: the EdlProject schema (closed enums, integer ms, 3dB steps, <=50 items, <=15 min, filtergraph-metacharacter blocklist on card text) + validateEdlProject — the mirror-assert owner for the worker's edl-plan port. 043_edl_projects: RLS tenant table. EdlController: POST /video/edl, PATCH autosave, GET (project + latest assemble job), POST :id/render (queues kind 'assemble' with the validated project). Tests 130 passing across media-control.
This commit is contained in:
parent
10dfda3b7c
commit
d8de9f5d82
6 changed files with 643 additions and 1 deletions
|
|
@ -23,6 +23,8 @@ import { VideoService } from "./video/video.service";
|
|||
import { ChunkedUploadService } from "./video/chunked-upload.js";
|
||||
import { LiveMonitorModule } from "./live-monitor/live-monitor.module";
|
||||
import { MediaControlModule } from "./media-control/media-control.module";
|
||||
import { EdlController } from "./media-control/edl.controller";
|
||||
import { EdlService } from "./media-control/edl.service";
|
||||
import { ProductionModule } from "./production/production.module";
|
||||
import { RealtimeModule } from "./realtime/realtime.module";
|
||||
import { LiveChatModule } from "./live-chat/live-chat.module";
|
||||
|
|
@ -59,6 +61,7 @@ import { MediaModule } from "./media/media.module.js";
|
|||
VideoController,
|
||||
GroupsController,
|
||||
AnalyticsController,
|
||||
EdlController,
|
||||
SettingsController,
|
||||
BrandingController,
|
||||
PublicBrandingController,
|
||||
|
|
@ -67,6 +70,6 @@ import { MediaModule } from "./media/media.module.js";
|
|||
{ provide: PublishingExecutionRepository, useFactory: () => new PublishingExecutionRepository(pool) },
|
||||
TemporalWorkflowStarter,
|
||||
{ provide: PUBLISHING_DEPENDENCIES, inject: [PublishingExecutionRepository, TemporalWorkflowStarter, ApprovalGateService], useFactory: (repository: PublishingExecutionRepository, workflowStarter: TemporalWorkflowStarter, approvalGate: ApprovalGateService) => ({ repository, workflowStarter, approvalGate, tenantTransaction: withTenant, assertReady: () => assertPublishingSchema(pool) }) },
|
||||
PublishingService, ApprovalGateService, AuthService, ConnectionsService, TeamService, InviteLinkService, AuditQueryService, VideoService, ChunkedUploadService, GroupsService, SnapshotService, SettingsService, BrandingService],
|
||||
PublishingService, ApprovalGateService, AuthService, ConnectionsService, TeamService, InviteLinkService, AuditQueryService, VideoService, ChunkedUploadService, GroupsService, SnapshotService, SettingsService, BrandingService, EdlService],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue