import shortid from 'shortid'; import { zGPTModels } from '../enums/GPTModels'; import Metadata from './Metadata.mongo'; const EmbedConfiguration = { enabled: { type: Boolean, required: true, default: true, }, theme: { type: String, required: true, default: 'light', }, type: { type: String, required: true, default: 'launcher', }, position: { type: String, required: true, default: 'bottom-right', }, background: { type: String, required: true, default: '#000000', }, color: { type: String, required: true, default: '#FFFFFF', }, }; const TrackingConfiguration = { utms: [ { type: String, required: false, default: [], }, ], }; const PromptConfiguration = { topic: { type: String, required: false, default: null, }, context: { type: String, required: false, default: null, }, }; export default { _id: { type: String, required: true, default: shortid.generate, }, organizationId: { type: String, required: true, default: null, }, sourceIds: [{ type: String, required: false, default: [], }], title: { type: String, required: true, default: null, }, description: { type: String, required: false, default: null, }, imageFileId: { type: String, required: false, default: null, }, brandColor: { type: String, required: false, default: '#000000', }, website: { type: String, required: false, default: null, }, faqs: [{ type: String, required: false, default: [], }], model: { type: String, required: false, default: zGPTModels.enum.GPT35Turbo, }, archived: { type: Boolean, required: false, default: false, }, embed: EmbedConfiguration, tracking: TrackingConfiguration, prompt: PromptConfiguration, meta: Metadata, };