import { z } from "zod";

export const occupanciesSchema = z.object({
  id: z.number().gt(0),
  clientId: z.number(),
  tenantId: z.number(),
  propId: z.number(),
  roomId: z.number(),
  floor: z.string(),
  rent: z
    .number()
    .gte(1000, "Rent must be greater than Rs 1000")
    .lte(1000000, "Rent must be less than Rs 10,00,000"),
  bedId: z.number(),
  flatId: z.number().nullable(),
  rentalCycle: z.string(),
  rentalType: z.number(),
  rentalMonths: z.number(),
  // noticePeriod: z.number().gt(0, "Notice period must be greater than 0"),
  noticePeriod: z.number(),
  // lockInPeriod: z.number().gt(0, "Lock-in period must be greater than 0"),
  lockInPeriod: z.number(),
  security: z.number().lte(500000, "Security must not be greater than Rs 5,00,000"),
  agreementPeriod: z.number().gt(0, "Agreement period must be greater than 0"),
  electricityReading: z.number(),
  fine: z.number(),
  fineType: z.number(),
  gracePeriod: z.number(),
  agreementStartDate: z.string().date(),
  moveInDate: z.string().date(),
  moveOutDate: z.string().date(),
  status: z.number(),
  isOnlinePaymentEnabled: z.number(),
  isGstEnabled: z.number(),
  rentalBond: z.number(),
  stayType: z.number(),
  notes: z.string(),
  moveOutReason: z.string(),
  isPoliceVerified: z.number(),
  isRentAgreementSigned: z.number(),
  kycStatus: z.number(),
  discountType: z.number(),
  discount: z.number(),
  discountPeriod: z.number(),
  discountStartDate: z.string().date(),
  discountEndDate: z.string().date(),
  isDiscountFromFirstMonth: z.number(),
  verificationId: z.string(),
  referenceId: z.number(),
  gId: z.string(),
  isFoodOpted: z.number(),
  isBusOpted: z.number(),
  bookingAmt: z.number(),
  bookingAdjustType: z.number(),
  bookedBy: z.number(),
  tallyStatus: z.number(),
  tallyLedgerName: z.string(),
  lastRemindedOn: z.string().datetime(),
  isFineEnabled: z.number(),
  createdAt: z.string().datetime(),
  updatedAt: z.string().datetime(),
});

type occupanciesTypes = z.infer<typeof occupanciesSchema>;
export default occupanciesTypes;
