diff --git a/server/src/repositories/checks/IChecksRepository.ts b/server/src/repositories/checks/IChecksRepository.ts new file mode 100644 index 000000000..844db9a33 --- /dev/null +++ b/server/src/repositories/checks/IChecksRepository.ts @@ -0,0 +1,5 @@ +import type { CheckEntity } from "@/types/domain/index.js"; + +export interface IChecksRepository {} + +export default IChecksRepository; diff --git a/server/src/types/domain/check.ts b/server/src/types/domain/check.ts new file mode 100644 index 000000000..e93fef2b2 --- /dev/null +++ b/server/src/types/domain/check.ts @@ -0,0 +1,96 @@ +import type { MonitorStatus } from "@/types/domain/index.js"; + +export interface CheckEntityBase { + id: string; + monitorId: string; + status: MonitorStatus; + responseTime: number; + createdAt: Date; +} + +// Optional payloads for different monitor types +export interface PageSpeedPayload { + lighthouse?: Record; +} + +export interface InfraCpuMetrics { + physical_core?: number; + logical_core?: number; + frequency?: number; + current_frequency?: number; + temperature?: Array<{ sensor?: string; value?: number }>; + free_percent?: number; + usage_percent?: number; +} + +export interface InfraMemoryMetrics { + total_bytes?: number; + available_bytes?: number; + used_bytes?: number; + usage_percent?: number; +} + +export interface InfraDiskMetrics { + device?: string; + mountpoint?: string; + fs_type?: string; + total_bytes?: number; + used_bytes?: number; + usage_percent?: number; +} + +export interface InfraNetMetrics { + iface?: string; + rx_bytes?: number; + tx_bytes?: number; +} + +export interface InfraHostInfo { + os?: string; + platform?: string; + kernel_version?: string; + pretty_name?: string; +} + +export interface InfraPayload { + system?: { + cpu?: InfraCpuMetrics; + memory?: InfraMemoryMetrics; + disk?: InfraDiskMetrics[]; + net?: InfraNetMetrics[]; + host?: InfraHostInfo; + }; +} + +export interface DockerHealth { + healthy?: boolean; + source?: string; + message?: string; +} + +export interface DockerExposedPort { + port?: string; + protocol?: string; +} + +export interface DockerContainerSummary { + container_id?: string; + container_name?: string; + status?: string; + health?: DockerHealth; + running?: boolean; + base_image?: string; + exposed_ports?: DockerExposedPort[]; + started_at?: number; + finished_at?: number; +} + +export interface DockerPayload { + data?: DockerContainerSummary[]; + capture?: Record; +} + +export type CheckEntity = CheckEntityBase & + Partial & + Partial & + Partial; diff --git a/server/src/types/domain/index.ts b/server/src/types/domain/index.ts index e7790153d..d17cf020e 100644 --- a/server/src/types/domain/index.ts +++ b/server/src/types/domain/index.ts @@ -1 +1,2 @@ -export type { Monitor } from "@/types/domain/monitor.js"; +export * from "@/types/domain/monitor.js"; +export * from "@/types/domain/check.js";