release: add post-production workspace 0.9.0

This commit is contained in:
hnzio committed 2026-10-30 17:33:13 +01:00
1 parent abc31d920f
commit a6c8606f3c
46 files changed
+10783 -3415

No files matched your search

+47
View File
@@ -196,6 +196,16 @@ export type PieceUsageUpdate = {
presentationMediaId?: string | null;
};
export type PieceUsageMetadataUpdate = Pick<
PieceUsageUpdate,
| 'title'
| 'outputTitle'
| 'durationSeconds'
| 'ownNotes'
| 'preparationStatus'
| 'preparationEffort'
>;
export type MovePieceUsageInput = {
sectionId: string | null;
position: number;
@@ -1889,6 +1899,43 @@ export function updatePieceUsage(
})();
}
export function updatePieceUsageMetadata(
showId: string,
usageId: string,
expectedRevision: number,
input: PieceUsageMetadataUpdate
): MutationResult {
const show = getShow(showId);
const usage = [
...(show?.sections.flatMap((section) => section.usages) ?? []),
...(show?.reserve ?? [])
].find((item) => item.id === usageId);
if (!usage) throw new Error('NOT_FOUND');
return updatePieceUsage(showId, usageId, expectedRevision, {
...input,
intro: usage.intro,
research: usage.research,
moderation: usage.moderation,
interaction: usage.interaction,
transition: usage.transition,
presentation: usage.presentation,
presentationMode: usage.presentationMode,
presentationSourceLabel: usage.presentationSourceLabel,
presentationSourceUrl: usage.presentationSourceUrl,
presentationSourceTimecodeSeconds: usage.presentationSourceTimecodeSeconds,
presentationTitle: usage.presentationTitle,
presentationDescription: usage.presentationDescription,
presentationImageUrl: usage.presentationImageUrl,
presentationSiteName: usage.presentationSiteName,
presentationMediaId: usage.presentationMediaId,
tools: usage.tools.map((tool) => ({
id: tool.id,
workUrl: tool.workUrl,
note: tool.note
}))
});
}
export function removePieceUsage(
showId: string,
usageId: string,