/**
 * Speaking Engagement Memory Model
 * Stores per-company generation memory to prevent story hook repetition.
 * Each company gets one document with an array of usedStoryHooks.
 */

import mongoose, { Schema, Document } from 'mongoose';

export interface ISpeakingEngagementMemory extends Document {
  companyId: string;
  usedStoryHooks: string[];
  createdAt: Date;
  updatedAt: Date;
}

const SpeakingEngagementMemorySchema = new Schema<ISpeakingEngagementMemory>({
  companyId: {
    type: String,
    required: [true, 'Company ID is required'],
    index: true,
  },
  usedStoryHooks: {
    type: [String],
    default: [],
  },
}, {
  timestamps: true,
});

// One document per company
SpeakingEngagementMemorySchema.index({ companyId: 1 }, { unique: true });

export const SpeakingEngagementMemory = mongoose.models.SpeakingEngagementMemory as mongoose.Model<ISpeakingEngagementMemory>
  || mongoose.model<ISpeakingEngagementMemory>('SpeakingEngagementMemory', SpeakingEngagementMemorySchema);