feat(web+api): gráfico anual realizado vs meta no painel do representante
Barras (azul/verde) por mês + linha tracejada de meta; meses futuros em cinza. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,14 @@ export const MetaItemSchema = z.object({
|
||||
});
|
||||
export type MetaItem = z.infer<typeof MetaItemSchema>;
|
||||
|
||||
export const MesAnoSchema = z.object({
|
||||
mes: z.number().int().min(1).max(12),
|
||||
valor: z.number(),
|
||||
meta: z.number(),
|
||||
atingiu: z.boolean(),
|
||||
});
|
||||
export type MesAno = z.infer<typeof MesAnoSchema>;
|
||||
|
||||
export const RepDashboardSchema = z.object({
|
||||
meta: z.object({
|
||||
atingido: z.number(),
|
||||
@@ -52,6 +60,7 @@ export const RepDashboardSchema = z.object({
|
||||
pedidosRecentes: z.array(PedidoSummarySchema),
|
||||
naoPositivados: z.array(ClienteNaoPositivadoSchema),
|
||||
totalNaoPositivados: z.number().int(),
|
||||
historicoMensal: z.array(MesAnoSchema).default([]),
|
||||
syncedAt: z.iso.datetime(),
|
||||
});
|
||||
export type RepDashboard = z.infer<typeof RepDashboardSchema>;
|
||||
|
||||
Reference in New Issue
Block a user