import { Schema, model, Types } from 'mongoose';

const MetaPageSubSchema = new Schema({
  pageId: { type: String, required: true },
  captureLead: { type: Types.ObjectId, ref: 'CaptureLead', required: false },
});

const PageConnectionSchema = new Schema({
  client: {
    type: Types.ObjectId,
    ref: 'User',
    required: true,
  },
  companyId: {
    type: Types.ObjectId,
    ref: 'Company',
    required: true,
  },
  metaPageIds: { type: [MetaPageSubSchema], default: [], required: true },
  pageName: String,
  // encrypted page access token
  encryptedPageAccessToken: { type: String, required: true },
  iv: String, // for AES-GCM
  tag: String, // for AES-GCM
  scopes: [String],
  forms: [{ id: String, name: String }],
  active: { type: Boolean, default: true },
  createdAt: { type: Date, default: Date.now },
});

export const PageConnection = model('PageConnection', PageConnectionSchema);
