import { z } from "zod";

export const recurringExpensesSchema = z.object({
  id: z.number(),
  clientId: z.number(),
  propId: z.number(),
  flatId: z.number().nullable(),
  assetId: z.number().nullable(),
  amount: z.number().nonnegative().gt(0),
  type: z.number().gt(0),
  expenseNature: z.number(),
  paidDate: z.string().datetime(), // For timestamp
  paidByUserType: z.number(),
  paidBy: z.number(),
  paidToUserType: z.number(),
  paidTo: z.number(),
  description: z.string().optional(), // Text is mapped to string
  paymentMethod: z.number(),
  noOfMonths: z.number(),
  dueDate: z.string().date(),
  recurrenceDate: z.string().date(),
  expenceCycleType: z.number(),
  expenseCycle: z.number(),
  status: z.number(),
  isAutopay: z.number(),
  autopayId: z.number(),
  createdAt: z.string().datetime(),
  updatedAt: z.string().datetime(),
  referenceId: z.number(),
  expenseTitle: z.string().nullable(),
});

type recurringExpensesTypes = z.infer<typeof recurringExpensesSchema>;

export default recurringExpensesTypes;
