feat: add Copayment and Adjustment columns to payments table
- Added copayment and adjustment fields (Decimal, default 0) to Payment model in schema and directly to DB via ALTER TABLE - Added PATCH /api/payments/:id/copayment and /adjustment routes - Added inline-editable Copayment and Adjustment columns after MH Paid with same click-to-edit format; Copayment in blue, Adjustment in orange Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,9 @@ export const PaymentAggregateResultSchema = z.object({ _count: z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.number(),
|
||||
notes: z.number(),
|
||||
icn: z.number(),
|
||||
@@ -29,7 +32,10 @@ export const PaymentAggregateResultSchema = z.object({ _count: z.object({
|
||||
totalBilled: z.number().nullable(),
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable()
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_avg: z.object({
|
||||
id: z.number().nullable(),
|
||||
@@ -40,7 +46,10 @@ export const PaymentAggregateResultSchema = z.object({ _count: z.object({
|
||||
totalBilled: z.number().nullable(),
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable()
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_min: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
@@ -52,6 +61,9 @@ export const PaymentAggregateResultSchema = z.object({ _count: z.object({
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable(),
|
||||
notes: z.string().nullable(),
|
||||
icn: z.string().nullable(),
|
||||
createdAt: z.date().nullable(),
|
||||
@@ -67,6 +79,9 @@ export const PaymentAggregateResultSchema = z.object({ _count: z.object({
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable(),
|
||||
notes: z.string().nullable(),
|
||||
icn: z.string().nullable(),
|
||||
createdAt: z.date().nullable(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentCreateResultSchema = z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentDeleteResultSchema = z.nullable(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentFindFirstResultSchema = z.nullable(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -10,6 +10,9 @@ export const PaymentFindManyResultSchema = z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentFindUniqueResultSchema = z.nullable(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
notes: z.string(),
|
||||
icn: z.string(),
|
||||
createdAt: z.date(),
|
||||
@@ -23,6 +26,9 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.number(),
|
||||
notes: z.number(),
|
||||
icn: z.number(),
|
||||
@@ -43,7 +49,10 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalBilled: z.number().nullable(),
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable()
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_avg: z.object({
|
||||
id: z.number().nullable(),
|
||||
@@ -54,7 +63,10 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalBilled: z.number().nullable(),
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable()
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_min: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
@@ -66,6 +78,9 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable(),
|
||||
notes: z.string().nullable(),
|
||||
icn: z.string().nullable(),
|
||||
createdAt: z.date().nullable(),
|
||||
@@ -81,6 +96,9 @@ export const PaymentGroupByResultSchema = z.array(z.object({
|
||||
totalPaid: z.number().nullable(),
|
||||
totalAdjusted: z.number().nullable(),
|
||||
totalDue: z.number().nullable(),
|
||||
mhPaidAmount: z.number().nullable(),
|
||||
copayment: z.number().nullable(),
|
||||
adjustment: z.number().nullable(),
|
||||
notes: z.string().nullable(),
|
||||
icn: z.string().nullable(),
|
||||
createdAt: z.date().nullable(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentUpdateResultSchema = z.nullable(z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -9,6 +9,9 @@ export const PaymentUpsertResultSchema = z.object({
|
||||
totalPaid: z.number(),
|
||||
totalAdjusted: z.number(),
|
||||
totalDue: z.number(),
|
||||
mhPaidAmount: z.number().optional(),
|
||||
copayment: z.number(),
|
||||
adjustment: z.number(),
|
||||
status: z.unknown(),
|
||||
notes: z.string().optional(),
|
||||
icn: z.string().optional(),
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotAggregateResultSchema = z.object({ _count: z.object({
|
||||
id: z.number(),
|
||||
userId: z.number(),
|
||||
data: z.number(),
|
||||
user: z.number()
|
||||
}).optional(),
|
||||
_sum: z.object({
|
||||
id: z.number().nullable(),
|
||||
userId: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_avg: z.object({
|
||||
id: z.number().nullable(),
|
||||
userId: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_min: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
userId: z.number().int().nullable()
|
||||
}).nullable().optional(),
|
||||
_max: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
userId: z.number().int().nullable()
|
||||
}).nullable().optional()});
|
||||
@@ -0,0 +1,2 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotCountResultSchema = z.number();
|
||||
@@ -0,0 +1,4 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotCreateManyResultSchema = z.object({
|
||||
count: z.number()
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotCreateResultSchema = z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
});
|
||||
@@ -0,0 +1,4 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotDeleteManyResultSchema = z.object({
|
||||
count: z.number()
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotDeleteResultSchema = z.nullable(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
}));
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotFindFirstResultSchema = z.nullable(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
}));
|
||||
@@ -0,0 +1,17 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotFindManyResultSchema = z.object({
|
||||
data: z.array(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
})),
|
||||
pagination: z.object({
|
||||
page: z.number().int().min(1),
|
||||
pageSize: z.number().int().min(1),
|
||||
total: z.number().int().min(0),
|
||||
totalPages: z.number().int().min(0),
|
||||
hasNext: z.boolean(),
|
||||
hasPrev: z.boolean()
|
||||
})
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotFindUniqueResultSchema = z.nullable(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
}));
|
||||
@@ -0,0 +1,28 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotGroupByResultSchema = z.array(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
_count: z.object({
|
||||
id: z.number(),
|
||||
userId: z.number(),
|
||||
data: z.number(),
|
||||
user: z.number()
|
||||
}).optional(),
|
||||
_sum: z.object({
|
||||
id: z.number().nullable(),
|
||||
userId: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_avg: z.object({
|
||||
id: z.number().nullable(),
|
||||
userId: z.number().nullable()
|
||||
}).nullable().optional(),
|
||||
_min: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
userId: z.number().int().nullable()
|
||||
}).nullable().optional(),
|
||||
_max: z.object({
|
||||
id: z.number().int().nullable(),
|
||||
userId: z.number().int().nullable()
|
||||
}).nullable().optional()
|
||||
}));
|
||||
@@ -0,0 +1,4 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotUpdateManyResultSchema = z.object({
|
||||
count: z.number()
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotUpdateResultSchema = z.nullable(z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
}));
|
||||
@@ -0,0 +1,7 @@
|
||||
import * as z from 'zod';
|
||||
export const ProcedureTimeslotUpsertResultSchema = z.object({
|
||||
id: z.number().int(),
|
||||
userId: z.number().int(),
|
||||
data: z.unknown(),
|
||||
user: z.unknown()
|
||||
});
|
||||
@@ -21,7 +21,8 @@ export const UserAggregateResultSchema = z.object({ _count: z.object({
|
||||
twilioSettings: z.number(),
|
||||
aiSettings: z.number(),
|
||||
officeHours: z.number(),
|
||||
officeContact: z.number()
|
||||
officeContact: z.number(),
|
||||
procedureTimeslot: z.number()
|
||||
}).optional(),
|
||||
_sum: z.object({
|
||||
id: z.number().nullable()
|
||||
|
||||
@@ -21,5 +21,6 @@ export const UserCreateResultSchema = z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
});
|
||||
@@ -21,5 +21,6 @@ export const UserDeleteResultSchema = z.nullable(z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
}));
|
||||
@@ -21,5 +21,6 @@ export const UserFindFirstResultSchema = z.nullable(z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
}));
|
||||
@@ -22,7 +22,8 @@ export const UserFindManyResultSchema = z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
})),
|
||||
pagination: z.object({
|
||||
page: z.number().int().min(1),
|
||||
|
||||
@@ -21,5 +21,6 @@ export const UserFindUniqueResultSchema = z.nullable(z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
}));
|
||||
@@ -27,7 +27,8 @@ export const UserGroupByResultSchema = z.array(z.object({
|
||||
twilioSettings: z.number(),
|
||||
aiSettings: z.number(),
|
||||
officeHours: z.number(),
|
||||
officeContact: z.number()
|
||||
officeContact: z.number(),
|
||||
procedureTimeslot: z.number()
|
||||
}).optional(),
|
||||
_sum: z.object({
|
||||
id: z.number().nullable()
|
||||
|
||||
@@ -21,5 +21,6 @@ export const UserUpdateResultSchema = z.nullable(z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
}));
|
||||
@@ -21,5 +21,6 @@ export const UserUpsertResultSchema = z.object({
|
||||
twilioSettings: z.unknown().optional(),
|
||||
aiSettings: z.unknown().optional(),
|
||||
officeHours: z.unknown().optional(),
|
||||
officeContact: z.unknown().optional()
|
||||
officeContact: z.unknown().optional(),
|
||||
procedureTimeslot: z.unknown().optional()
|
||||
});
|
||||
@@ -362,3 +362,16 @@ export { OfficeContactDeleteManyResultSchema } from './OfficeContactDeleteManyRe
|
||||
export { OfficeContactAggregateResultSchema } from './OfficeContactAggregateResult.schema';
|
||||
export { OfficeContactGroupByResultSchema } from './OfficeContactGroupByResult.schema';
|
||||
export { OfficeContactCountResultSchema } from './OfficeContactCountResult.schema';
|
||||
export { ProcedureTimeslotFindUniqueResultSchema } from './ProcedureTimeslotFindUniqueResult.schema';
|
||||
export { ProcedureTimeslotFindFirstResultSchema } from './ProcedureTimeslotFindFirstResult.schema';
|
||||
export { ProcedureTimeslotFindManyResultSchema } from './ProcedureTimeslotFindManyResult.schema';
|
||||
export { ProcedureTimeslotCreateResultSchema } from './ProcedureTimeslotCreateResult.schema';
|
||||
export { ProcedureTimeslotCreateManyResultSchema } from './ProcedureTimeslotCreateManyResult.schema';
|
||||
export { ProcedureTimeslotUpdateResultSchema } from './ProcedureTimeslotUpdateResult.schema';
|
||||
export { ProcedureTimeslotUpdateManyResultSchema } from './ProcedureTimeslotUpdateManyResult.schema';
|
||||
export { ProcedureTimeslotUpsertResultSchema } from './ProcedureTimeslotUpsertResult.schema';
|
||||
export { ProcedureTimeslotDeleteResultSchema } from './ProcedureTimeslotDeleteResult.schema';
|
||||
export { ProcedureTimeslotDeleteManyResultSchema } from './ProcedureTimeslotDeleteManyResult.schema';
|
||||
export { ProcedureTimeslotAggregateResultSchema } from './ProcedureTimeslotAggregateResult.schema';
|
||||
export { ProcedureTimeslotGroupByResultSchema } from './ProcedureTimeslotGroupByResult.schema';
|
||||
export { ProcedureTimeslotCountResultSchema } from './ProcedureTimeslotCountResult.schema';
|
||||
|
||||
Reference in New Issue
Block a user