Freeze the shared contracts every Media Studio slice builds on: zod DTOs, EDL, platform profile, brand kit, gate and render plan schemas; the media RPC surface with a scaffold router; provider interfaces for sources, inference, rendering, motion graphics and publishing; media background jobs; the Prisma models and migration; and the @rakazo/media domain package signatures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0138YqDj3ttfayRwuMKKrqVj
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import type { PlatformProfile, PlatformProfileSummary } from "@rakazo/contracts";
|
|
import { notImplemented } from "./not-implemented.js";
|
|
|
|
export const PROFILE_STALE_DAYS = 90;
|
|
|
|
export interface ProfileLoadError {
|
|
file: string;
|
|
message: string;
|
|
}
|
|
|
|
export interface ProfileSet {
|
|
profiles: Map<string, { profile: PlatformProfile; origin: "builtin" | "private" }>;
|
|
errors: ProfileLoadError[];
|
|
}
|
|
|
|
/** Parse raw JSON documents; invalid ones become errors and are skipped whole. */
|
|
export function parseProfiles(_documents: Array<{ file: string; json: unknown }>): {
|
|
profiles: PlatformProfile[];
|
|
errors: ProfileLoadError[];
|
|
} {
|
|
return notImplemented("parseProfiles");
|
|
}
|
|
|
|
/** Private profiles override builtin ones with the same id. */
|
|
export function mergeProfiles(
|
|
_builtin: PlatformProfile[],
|
|
_private: PlatformProfile[],
|
|
): ProfileSet {
|
|
return notImplemented("mergeProfiles");
|
|
}
|
|
|
|
export function summarizeProfile(
|
|
_profile: PlatformProfile,
|
|
_origin: "builtin" | "private",
|
|
_now: Date,
|
|
): PlatformProfileSummary {
|
|
return notImplemented("summarizeProfile");
|
|
}
|