import { z } from "zod";
import { propertiesSchema } from "./property.schema";

export const bankAccountsSchema = z.object({
  id: z.number(),
  clientId: z.number(),
  bankName: z.string(),
  accountNum: z.string(),
  ifsc: z.string(),
  bankAddress: z.string(),
  type: z.number(),
  isOnlineSettlement: z.number(),
  upiId: z.string(),
  holderName: z.string(),
  payuMid: z.string(),
  payuKey: z.string(),
  easebuzzSubMerchantId: z.string(),
  cashfreeVendorId: z.string(),
  createdAt: z.string().datetime(),
  updatedAt: z.string().datetime(),
});

type bankAccountsTypes = z.infer<typeof bankAccountsSchema>;

export const addBankSchema = z.object({
  holderName: z.string(),
  accountNum: z.string(),
  ifsc: z.string(),
  bankAddress: z.string(),
  type: z.number(),
  bankName: z.string(),
  upiId: z.string(),
  properties: z.array(propertiesSchema.shape.id),
});

export const removeBankSchema = z.object({
  bankId: z.number(),
});

export const toggleBankSchema = z.object({
  propId: z.number(),
  toggleValue: z.number(),
  bankId: z.number().nullable(),
});

export const setAsBankSettlementSchema = z.object({
  propIds: z.string(),
  bankId: z.number().nullable(),
});
export default bankAccountsTypes;
