Files

1.6 KiB

Domain Entities — Unit 3: frontend-cms-page

TypeScript Types

CmsInstanceStatus

export type CmsInstanceStatus = 'Available' | 'NotAvailable' | 'Inactive';

String union matching CmsInstanceStatus enum values serialized by the backend (Available, NotAvailable, Inactive).


CmsInstance

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

export interface CreateCmsInstanceRequest {
    name: string;
    url: string;
    apiKey: string;
}

Sent as body to POST /api/v1/CmsInstances.


UpdateCmsInstanceStatusRequest

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

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.