import { ApiError, request } from './client'; import type { components } from './generated/v1'; export type DecoGroup = components['schemas']['DecoGroupResponseModel']; export type DecoListItem = components['schemas']['DecoListItemResponseModel']; export type Deco = components['schemas']['DecoResponseModel']; export type DecoBreakContent = components['schemas']['DecoBreakContentResponseModel']; export type CreateDecoGroupRequest = components['schemas']['CreateDecoGroupRequest']; export type CreateDecoRequest = components['schemas']['CreateDecoRequest']; export type ReplaceDecoRequest = components['schemas']['ReplaceDecoRequest']; export type DecoBreakContentRequest = components['schemas']['DecoBreakContentRequest']; // Deco groups export function getDecoGroups(): Promise { return request('/api/decos/groups'); } export function createDecoGroup(body: CreateDecoGroupRequest): Promise { return request('/api/decos/groups', { body, method: 'POST' }); } export function deleteDecoGroup(id: number): Promise { return request(`/api/decos/groups/${id}`, { method: 'DELETE' }); } // Decos export function getDecos(): Promise { return request('/api/decos'); } export function getDeco(id: number): Promise { return request(`/api/decos/${id}`); } export function createDeco(body: CreateDecoRequest): Promise { return request('/api/decos', { body, method: 'POST' }); } export function deleteDeco(id: number): Promise { return request(`/api/decos/${id}`, { method: 'DELETE' }); } export function replaceDeco(id: number, body: ReplaceDecoRequest): Promise { return request(`/api/decos/${id}`, { body, method: 'PUT' }); } export function messageFromDecoError(error: unknown, fallback = 'Unable to load decos'): string { if (error instanceof ApiError) { return error.detail ?? error.message; } if (error instanceof Error) { return error.message; } return fallback; }