feat(orders): fluxo de aprovação — approve/reject endpoints + UIs (C5)
PATCH /orders/:id/approve e /reject com alçada role-gated; OrderDetailPage com modais de aprovação e recusa; ApprovalQueuePage para Sandra; badge de pendências na Sidebar; DevLogin com 4 perfis (rep, supervisor, gerente). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -112,3 +112,17 @@ export const CreateOrderSchema = z.object({
|
||||
items: z.array(CreateOrderItemSchema).min(1),
|
||||
});
|
||||
export type CreateOrder = z.infer<typeof CreateOrderSchema>;
|
||||
|
||||
// ─── Approve / Reject (PATCH /orders/:id/approve|reject) ─────────────────────
|
||||
|
||||
export const ApproveOrderSchema = z.object({
|
||||
// Opcional — supervisor pode ajustar o desconto global. Se omitido, mantém o original.
|
||||
discountPct: z.number().min(0).max(100).optional(),
|
||||
note: z.string().optional(),
|
||||
});
|
||||
export type ApproveOrder = z.infer<typeof ApproveOrderSchema>;
|
||||
|
||||
export const RejectOrderSchema = z.object({
|
||||
reason: z.string().min(1, 'Motivo é obrigatório'), // FR-5.4
|
||||
});
|
||||
export type RejectOrder = z.infer<typeof RejectOrderSchema>;
|
||||
|
||||
Reference in New Issue
Block a user