# Domain Entities — Unit 3: frontend-cms-page ## TypeScript Types ### CmsInstanceStatus ```typescript export type CmsInstanceStatus = 'Available' | 'NotAvailable' | 'Inactive'; ``` String union matching `CmsInstanceStatus` enum values serialized by the backend (`Available`, `NotAvailable`, `Inactive`). --- ### CmsInstance ```typescript export interface CmsInstance { id: string; // UUID name: string; url: string; status: CmsInstanceStatus; disableMessage: string | null; lastContactedAt: string | null; // ISO 8601, null if never contacted lastStatusPushedAt: string | null; // ISO 8601 lastIntegrityCheckFailedAt: string | null; // ISO 8601 } ``` --- ### CreateCmsInstanceRequest ```typescript export interface CreateCmsInstanceRequest { name: string; url: string; apiKey: string; } ``` Sent as body to `POST /api/v1/CmsInstances`. --- ### UpdateCmsInstanceStatusRequest ```typescript export interface UpdateCmsInstanceStatusRequest { status: CmsInstanceStatus; disableMessage: string | null; } ``` Sent as body to `PUT /api/v1/CmsInstances/{id}/status`. `disableMessage` is `null` unless `status === 'NotAvailable'`. --- ### UpdateStatusResult ```typescript export interface UpdateStatusResult { success: boolean; slaveContactSuccess: boolean; // true = cliënt was reachable and confirmed } ``` Returned by `PUT /api/v1/CmsInstances/{id}/status`. `slaveContactSuccess` drives the differentiated toast message. --- ## File Location All types added to `src/api/types.ts`.