58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
import type { IOverallStatus } from './servicestatus.js';
|
|
|
|
// ============================================
|
|
// Service Group
|
|
// ============================================
|
|
|
|
/**
|
|
* A group of related services displayed together.
|
|
*/
|
|
export interface IServiceGroup {
|
|
id: string;
|
|
name: string;
|
|
description?: string;
|
|
serviceIds: string[];
|
|
expanded: boolean;
|
|
order?: number;
|
|
}
|
|
|
|
// ============================================
|
|
// Status Page Configuration
|
|
// ============================================
|
|
|
|
/**
|
|
* Configuration for a public status page.
|
|
*/
|
|
export interface IStatusPageConfig {
|
|
id: string;
|
|
name: string;
|
|
slug: string;
|
|
|
|
// Branding
|
|
logoUrl?: string;
|
|
faviconUrl?: string;
|
|
primaryColor?: string;
|
|
customCss?: string;
|
|
|
|
// Content
|
|
headerTitle: string;
|
|
headerDescription?: string;
|
|
footerText?: string;
|
|
|
|
// Features
|
|
showHistoricalUptime: boolean;
|
|
showResponseTime: boolean;
|
|
showSubscribeButton: boolean;
|
|
showIncidentHistory: boolean;
|
|
|
|
// Service grouping
|
|
serviceGroups: IServiceGroup[];
|
|
|
|
// Overall status override
|
|
overallStatus?: IOverallStatus;
|
|
|
|
// Custom domain
|
|
customDomain?: string;
|
|
sslEnabled?: boolean;
|
|
}
|