import mongoose, { Schema, Document } from 'mongoose';

export interface ICustomerGroupDocument extends Document {
  _id: any;
  name: string; // Group name (e.g., "TTE", "Eco", "Assetco")
  code: string; // Unique code (uppercase)
  description?: string;
  isActive: boolean;
  createdAt: Date;
  updatedAt: Date;
}

const customerGroupSchema = new Schema<ICustomerGroupDocument>(
  {
    _id: { type: Schema.Types.Mixed, default: () => new mongoose.Types.ObjectId().toString() },
    name: { type: String, required: true, unique: true },
    code: { type: String, required: true, unique: true, uppercase: true },
    description: String,
    isActive: { type: Boolean, default: true },
  },
  {
    timestamps: true,
    strict: false,
  }
);

// Indexes
customerGroupSchema.index({ isActive: 1 });

export const CustomerGroup = mongoose.model<ICustomerGroupDocument>('CustomerGroup', customerGroupSchema);
