Add complete UI for adaptive medication settings with presence tracking and nagging configuration

This commit is contained in:
2026-02-16 20:04:58 -06:00
parent 84c6032dc9
commit 69163a37d1
2 changed files with 316 additions and 0 deletions

View File

@@ -689,6 +689,58 @@ export const api = {
},
},
// Adaptive Medications
adaptiveMeds: {
getSettings: async () => {
return request<{
adaptive_timing_enabled: boolean;
adaptive_mode: string;
presence_tracking_enabled: boolean;
nagging_enabled: boolean;
nag_interval_minutes: number;
max_nag_count: number;
quiet_hours_start: string | null;
quiet_hours_end: string | null;
}>('/api/adaptive-meds/settings', { method: 'GET' });
},
updateSettings: async (data: {
adaptive_timing_enabled?: boolean;
adaptive_mode?: string;
presence_tracking_enabled?: boolean;
nagging_enabled?: boolean;
nag_interval_minutes?: number;
max_nag_count?: number;
quiet_hours_start?: string | null;
quiet_hours_end?: string | null;
}) => {
return request<{ success: boolean }>('/api/adaptive-meds/settings', {
method: 'PUT',
body: JSON.stringify(data),
});
},
getPresence: async () => {
return request<{
is_online: boolean;
last_online_at: string | null;
typical_wake_time: string | null;
}>('/api/adaptive-meds/presence', { method: 'GET' });
},
getSchedule: async () => {
return request<Array<{
medication_id: string;
medication_name: string;
base_time: string;
adjusted_time: string;
adjustment_minutes: number;
status: string;
nag_count: number;
}>>('/api/adaptive-meds/schedule', { method: 'GET' });
},
},
// Medications
medications: {
list: async () => {