mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-20 10:20:15 +01:00
Move usermethods and models to data-schema
This commit is contained in:
parent
4808c5be48
commit
4049b5572c
93 changed files with 2396 additions and 1267 deletions
173
packages/data-schemas/src/models/index.ts
Normal file
173
packages/data-schemas/src/models/index.ts
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
import type { Mongoose } from 'mongoose';
|
||||
import {
|
||||
agentSchema,
|
||||
assistantSchema,
|
||||
balanceSchema,
|
||||
categoriesSchema,
|
||||
messageSchema,
|
||||
sessionSchema,
|
||||
tokenSchema,
|
||||
userSchema,
|
||||
conversationTagSchema,
|
||||
convoSchema,
|
||||
fileSchema,
|
||||
keySchema,
|
||||
presetSchema,
|
||||
projectSchema,
|
||||
promptSchema,
|
||||
roleSchema,
|
||||
shareSchema,
|
||||
toolCallSchema,
|
||||
transactionSchema,
|
||||
bannerSchema,
|
||||
promptGroupSchema,
|
||||
} from '..';
|
||||
import mongoMeili from './plugins/mongoMeili';
|
||||
|
||||
export const registerModels = (mongoose: Mongoose) => {
|
||||
const User = registerUserModel(mongoose);
|
||||
const Session = registerSessionModel(mongoose);
|
||||
const Token = registerTokenModel(mongoose);
|
||||
const Message = registerMessageModel(mongoose);
|
||||
const Agent = registerAgentModel(mongoose);
|
||||
const Assistant = registerAssistantModel(mongoose);
|
||||
const Balance = registerBalanceModel(mongoose);
|
||||
const Banner = registerBannerModel(mongoose);
|
||||
const Categories = registerCategoriesModel(mongoose);
|
||||
const ConversationTag = registerConversationTagModel(mongoose);
|
||||
const File = registerFileModel(mongoose);
|
||||
const Key = registerKeyModel(mongoose);
|
||||
const Preset = registerPresetModel(mongoose);
|
||||
const Project = registerProjectModel(mongoose);
|
||||
const Prompt = registerPromptModel(mongoose);
|
||||
const PromptGroup = registerPromptGroupModel(mongoose);
|
||||
const Role = registerRoleModel(mongoose);
|
||||
const SharedLink = registerShareModel(mongoose);
|
||||
const ToolCall = registerToolCallModel(mongoose);
|
||||
const Transaction = registerTransactionModel(mongoose);
|
||||
const Conversation = registerConversationModel(mongoose);
|
||||
|
||||
return {
|
||||
User,
|
||||
Session,
|
||||
Token,
|
||||
Message,
|
||||
Agent,
|
||||
Assistant,
|
||||
Balance,
|
||||
Banner,
|
||||
Categories,
|
||||
ConversationTag,
|
||||
File,
|
||||
Key,
|
||||
Preset,
|
||||
Project,
|
||||
Prompt,
|
||||
PromptGroup
|
||||
Role,
|
||||
SharedLink,
|
||||
ToolCall,
|
||||
Transaction,
|
||||
Conversation,
|
||||
};
|
||||
};
|
||||
|
||||
const registerSessionModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Session || mongoose.model('Session', sessionSchema);
|
||||
};
|
||||
|
||||
const registerUserModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.User || mongoose.model('User', userSchema);
|
||||
};
|
||||
|
||||
const registerTokenModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Token || mongoose.model('Token', tokenSchema);
|
||||
};
|
||||
|
||||
const registerMessageModel = (mongoose: Mongoose) => {
|
||||
|
||||
if (process.env.MEILI_HOST && process.env.MEILI_MASTER_KEY) {
|
||||
messageSchema.plugin(mongoMeili, {
|
||||
host: process.env.MEILI_HOST,
|
||||
apiKey: process.env.MEILI_MASTER_KEY,
|
||||
indexName: 'messages',
|
||||
primaryKey: 'messageId',
|
||||
});
|
||||
}
|
||||
|
||||
return mongoose.models.Message || mongoose.model('Message', messageSchema);
|
||||
};
|
||||
|
||||
const registerAgentModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Agent || mongoose.model('Agent', agentSchema);
|
||||
};
|
||||
|
||||
const registerAssistantModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Assistant || mongoose.model('Assistant', assistantSchema);
|
||||
};
|
||||
|
||||
const registerBalanceModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Balance || mongoose.model('Balance', balanceSchema);
|
||||
};
|
||||
|
||||
const registerBannerModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Banner || mongoose.model('Banner', bannerSchema);
|
||||
};
|
||||
|
||||
const registerCategoriesModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Categories || mongoose.model('Categories', categoriesSchema);
|
||||
};
|
||||
|
||||
const registerConversationTagModel = (mongoose: Mongoose) => {
|
||||
return (
|
||||
mongoose.models.ConversationTag || mongoose.model('ConversationTag', conversationTagSchema)
|
||||
);
|
||||
};
|
||||
const registerFileModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.File || mongoose.model('File', fileSchema);
|
||||
};
|
||||
|
||||
const registerKeyModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Key || mongoose.model('Key', keySchema);
|
||||
};
|
||||
const registerPresetModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Preset || mongoose.model('Preset', presetSchema);
|
||||
};
|
||||
|
||||
const registerProjectModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Project || mongoose.model('Project', projectSchema);
|
||||
};
|
||||
const registerPromptModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Prompt || mongoose.model('Prompt', promptSchema);
|
||||
};
|
||||
const registerPromptGroupModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.PromptGroup || mongoose.model('PromptGroup', promptGroupSchema);
|
||||
};
|
||||
|
||||
const registerRoleModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Role || mongoose.model('Role', roleSchema);
|
||||
};
|
||||
const registerShareModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.SharedLink || mongoose.model('SharedLink', shareSchema);
|
||||
};
|
||||
|
||||
const registerToolCallModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.ToolCall || mongoose.model('ToolCall', toolCallSchema);
|
||||
};
|
||||
|
||||
const registerTransactionModel = (mongoose: Mongoose) => {
|
||||
return mongoose.models.Transaction || mongoose.model('Trasaction', transactionSchema);
|
||||
};
|
||||
const registerConversationModel = (mongoose: Mongoose) => {
|
||||
if (process.env.MEILI_HOST && process.env.MEILI_MASTER_KEY) {
|
||||
convoSchema.plugin(mongoMeili, {
|
||||
host: process.env.MEILI_HOST,
|
||||
apiKey: process.env.MEILI_MASTER_KEY,
|
||||
/** Note: Will get created automatically if it doesn't exist already */
|
||||
indexName: 'convos',
|
||||
primaryKey: 'conversationId',
|
||||
});
|
||||
}
|
||||
|
||||
return mongoose.models.Conversation || mongoose.model('Conversation', convoSchema);
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue