feat(maintenance): Update maintenance mode status schema and UI logic

This commit is contained in:
debudebuye 2026-02-24 19:18:36 +03:00
parent ba209593f5
commit 83743343c9
2 changed files with 16 additions and 10 deletions

View File

@ -52,6 +52,8 @@ export default function MaintenancePage() {
return <div className="text-center py-8">Loading maintenance status...</div> return <div className="text-center py-8">Loading maintenance status...</div>
} }
const isEnabled = status?.status === 'ACTIVE'
return ( return (
<div className="space-y-6"> <div className="space-y-6">
<h2 className="text-3xl font-bold">Maintenance Mode</h2> <h2 className="text-3xl font-bold">Maintenance Mode</h2>
@ -60,8 +62,8 @@ export default function MaintenancePage() {
<CardHeader> <CardHeader>
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<CardTitle>Maintenance Status</CardTitle> <CardTitle>Maintenance Status</CardTitle>
<Badge variant={status?.enabled ? 'destructive' : 'default'}> <Badge variant={isEnabled ? 'destructive' : 'default'}>
{status?.enabled ? 'Enabled' : 'Disabled'} {isEnabled ? 'Enabled' : 'Disabled'}
</Badge> </Badge>
</div> </div>
</CardHeader> </CardHeader>
@ -74,12 +76,12 @@ export default function MaintenancePage() {
</p> </p>
</div> </div>
<Switch <Switch
checked={status?.enabled || false} checked={isEnabled}
onCheckedChange={handleToggle} onCheckedChange={handleToggle}
/> />
</div> </div>
{!status?.enabled && ( {!isEnabled && (
<div className="space-y-2"> <div className="space-y-2">
<Label htmlFor="message">Maintenance Message (Optional)</Label> <Label htmlFor="message">Maintenance Message (Optional)</Label>
<Input <Input
@ -94,7 +96,7 @@ export default function MaintenancePage() {
</div> </div>
)} )}
{status?.enabled && status?.message && ( {isEnabled && status?.message && (
<div> <div>
<Label>Current Message</Label> <Label>Current Message</Label>
<p className="text-sm mt-2">{status.message}</p> <p className="text-sm mt-2">{status.message}</p>
@ -105,4 +107,3 @@ export default function MaintenancePage() {
</div> </div>
) )
} }

View File

@ -30,10 +30,15 @@ export interface SystemInfo {
} }
export interface MaintenanceStatus { export interface MaintenanceStatus {
enabled: boolean id: string
status: 'ACTIVE' | 'INACTIVE'
message?: string message?: string
scheduledStart?: string scheduledAt?: string | null
scheduledEnd?: string startedAt?: string | null
endedAt?: string | null
enabledBy?: string
createdAt: string
updatedAt: string
} }
class SystemService { class SystemService {
@ -57,7 +62,7 @@ class SystemService {
* Get maintenance mode status * Get maintenance mode status
*/ */
async getMaintenanceStatus(): Promise<MaintenanceStatus> { async getMaintenanceStatus(): Promise<MaintenanceStatus> {
const response = await apiClient.get<MaintenanceStatus>('/admin/maintenance/status') const response = await apiClient.get<MaintenanceStatus>('/admin/maintenance')
return response.data return response.data
} }