Midday / apps /api /src /schemas /widgets.ts
Jules
Final deployment with all fixes and verified content
c09f67c
import { WIDGET_TYPES } from "@midday/cache/widget-preferences-cache";
import { z } from "zod";
export const getRunwaySchema = z.object({
currency: z.string().optional(),
});
export const getRevenueSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
});
export const getRevenueSummarySchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
revenueType: z.enum(["gross", "net"]).optional().default("net"),
});
export const getGrowthRateSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
type: z.enum(["revenue", "profit"]).optional().default("revenue"),
revenueType: z.enum(["gross", "net"]).optional().default("net"),
period: z
.enum(["quarterly", "monthly", "yearly"])
.optional()
.default("quarterly"),
});
export const getProfitMarginSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
revenueType: z.enum(["gross", "net"]).optional().default("net"),
});
export const getCashFlowSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
period: z.enum(["monthly", "quarterly"]).optional().default("monthly"),
});
export const getOutstandingInvoicesSchema = z.object({
currency: z.string().optional(),
status: z
.array(z.enum(["unpaid", "overdue"]))
.optional()
.default(["unpaid", "overdue"]),
});
export const getInboxStatsSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
});
export const getTrackedTimeSchema = z.object({
from: z.string(),
to: z.string(),
assignedId: z.string().uuid().optional(),
});
export const getVaultActivitySchema = z.object({
limit: z.number().optional().default(5),
});
export const getAccountBalancesSchema = z.object({
currency: z.string().optional(),
});
export const getNetPositionSchema = z.object({
currency: z.string().optional(),
});
export const getMonthlySpendingSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
});
export const getRecurringExpensesSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
});
export const getTaxSummarySchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
});
export const getCategoryExpensesSchema = z.object({
from: z.string(),
to: z.string(),
currency: z.string().optional(),
limit: z.number().optional().default(5),
});
export const getOverdueInvoicesAlertSchema = z
.object({
currency: z.string().optional(),
})
.optional();
export const getBillableHoursSchema = z.object({
date: z.string(),
view: z.enum(["week", "month"]),
weekStartsOnMonday: z.boolean().optional().default(false),
});
export const getCustomerLifetimeValueSchema = z.object({
currency: z.string().optional(),
});
export const widgetTypeSchema = z.enum(WIDGET_TYPES);
export const widgetPreferencesSchema = z.object({
primaryWidgets: z.array(widgetTypeSchema).max(8),
availableWidgets: z.array(widgetTypeSchema),
});
export const updateWidgetPreferencesSchema = z.object({
primaryWidgets: z.array(widgetTypeSchema).max(8),
});