import { LeadBaseSchema } from './schemas/base.schema';
import { BuyLeadSchema } from './schemas/buy.schema';
import { SellLeadSchema } from './schemas/sell.schema';
import { RentLeadSchema } from './schemas/rent.schema';
import { LeaseLeadSchema } from './schemas/lease.schema';

import {
  IBuyLead,
  ISellLead,
  IRentLead,
  ILeaseLead,
  ILeadDoc,
  ILeadModel,
} from './lead.interface';
import mongoose from 'mongoose';

const Lead = mongoose.model<ILeadDoc, ILeadModel>('Lead', LeadBaseSchema);

const BuyLead = Lead.discriminator<IBuyLead & Document>('buy', BuyLeadSchema);
const SellLead = Lead.discriminator<ISellLead & Document>('sell', SellLeadSchema);
const RentLead = Lead.discriminator<IRentLead & Document>('rent', RentLeadSchema);
const LeaseLead = Lead.discriminator<ILeaseLead & Document>('lease', LeaseLeadSchema);

export {
  Lead,
  BuyLead,
  SellLead,
  RentLead,
  LeaseLead,
};
