import { Schema, model } from 'mongoose';
import { IRulesDoc, IRulesModel } from './rules.interface';
import { paginate, toJSON } from '@/shared/utils/plugins';

const rulesSchema = new Schema<IRulesDoc>(
  {
    companyId: { type: Schema.Types.ObjectId, ref: 'Company', required: true },
    rules: {
      type: Map,
      of: Boolean,
      default: {},
    },
    createdBy: { type: Schema.Types.ObjectId, ref: 'User' },
    updatedBy: { type: Schema.Types.ObjectId, ref: 'User' },
  },
  {
    timestamps: true,
  },
);

rulesSchema.plugin(toJSON);
rulesSchema.plugin(paginate);

export const Rules = model<IRulesDoc, IRulesModel>('Rules', rulesSchema);
