import { Schema, model } from 'mongoose';
import { paginate, toJSON } from '@/shared/utils/plugins/index.js';
import { IConfigurationDoc, IConfigurationModel } from '../property.interfaces';

const configurationSchema = new Schema<IConfigurationDoc>(
  {
    category: {
      type: Schema.Types.ObjectId,
      ref: 'Category',
    },
    subCategory: {
      type: Schema.Types.ObjectId,
      ref: 'SubCategory',
    },
    name: {
      type: String,
      required: true,
      unique: true,
      trim: true,
    },
    createdBy: { type: Schema.Types.ObjectId, ref: 'User' },
    updatedBy: { type: Schema.Types.ObjectId, ref: 'User' },
  },
  { timestamps: true },
);

configurationSchema.plugin(toJSON);
configurationSchema.plugin(paginate);

const Configuration = model<IConfigurationDoc, IConfigurationModel>(
  'Configuration',
  configurationSchema,
);
export default Configuration;
