import { z } from "zod"; import { BILLING_TYPES } from "../constants.js"; export const createCostEventSchema = z.object({ agentId: z.string().uuid(), issueId: z.string().uuid().optional().nullable(), projectId: z.string().uuid().optional().nullable(), goalId: z.string().uuid().optional().nullable(), heartbeatRunId: z.string().uuid().optional().nullable(), billingCode: z.string().optional().nullable(), provider: z.string().min(1), biller: z.string().min(1).optional(), billingType: z.enum(BILLING_TYPES).optional().default("unknown"), model: z.string().min(1), inputTokens: z.number().int().nonnegative().optional().default(0), cachedInputTokens: z.number().int().nonnegative().optional().default(0), outputTokens: z.number().int().nonnegative().optional().default(0), costCents: z.number().int().nonnegative(), occurredAt: z.string().datetime(), }).transform((value) => ({ ...value, biller: value.biller ?? value.provider, })); export type CreateCostEvent = z.infer; export const updateBudgetSchema = z.object({ budgetMonthlyCents: z.number().int().nonnegative(), }); export type UpdateBudget = z.infer;