feat: add Auto Check MH Payment toggle with weekly schedule
Adds a toggle behind the Go button on the Payments page to automatically run the MH batch payment check on a user-selected day of week and hour. Default is off. - Schema: added autoMhCheckEnabled, autoMhCheckDayOfWeek, autoMhCheckHour to User model - Backend: new mhBatchPaymentService (shared logic), GET/PUT /auto-mh-check-setting routes, hourly cron job that fires on matching day+hour - Frontend: toggle + day select (Mon–Sun) + time select (hourly) that persist immediately to DB Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,9 @@ export const UserAggregateResultSchema = z.object({ _count: z.object({
|
||||
autoBackupHour: z.number(),
|
||||
usbBackupEnabled: z.number(),
|
||||
usbBackupHour: z.number(),
|
||||
autoMhCheckEnabled: z.number(),
|
||||
autoMhCheckDayOfWeek: z.number(),
|
||||
autoMhCheckHour: z.number(),
|
||||
patients: z.number(),
|
||||
appointments: z.number(),
|
||||
staff: z.number(),
|
||||
@@ -32,24 +35,32 @@ export const UserAggregateResultSchema = z.object({ _count: z.object({
|
||||
_sum: z.object({
|
||||
id: z.number().nullable(),
|
||||
autoBackupHour: z.number().nullable(),
|
||||
usbBackupHour: z.number().nullable()
|
||||
usbBackupHour: z.number().nullable(),
|
||||
autoMhCheckDayOfWeek: z.number().nullable(),
|
||||
autoMhCheckHour: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_avg: z.object({
|
||||
id: z.number().nullable(),
|
||||
autoBackupHour: z.number().nullable(),
|
||||
usbBackupHour: z.number().nullable()
|
||||
usbBackupHour: z.number().nullable(),
|
||||
autoMhCheckDayOfWeek: z.number().nullable(),
|
||||
autoMhCheckHour: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_min: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
username: z.string().nullable(),
|
||||
password: z.string().nullable(),
|
||||
autoBackupHour: z.number().int().nullable(),
|
||||
usbBackupHour: z.number().int().nullable()
|
||||
usbBackupHour: z.number().int().nullable(),
|
||||
autoMhCheckDayOfWeek: z.number().int().nullable(),
|
||||
autoMhCheckHour: z.number().int().nullable()
|
||||
}).nullable().optional(),
|
||||
_max: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
username: z.string().nullable(),
|
||||
password: z.string().nullable(),
|
||||
autoBackupHour: z.number().int().nullable(),
|
||||
usbBackupHour: z.number().int().nullable()
|
||||
usbBackupHour: z.number().int().nullable(),
|
||||
autoMhCheckDayOfWeek: z.number().int().nullable(),
|
||||
autoMhCheckHour: z.number().int().nullable()
|
||||
}).nullable().optional()});
|
||||
Reference in New Issue
Block a user