mcp-talent-server
Version:
Model Context Protocol server for talent management tools
31 lines • 1.38 kB
JavaScript
import mongoose, { Schema } from "mongoose";
// Column definition schema for dynamic columns
const ColumnDefinitionSchema = new Schema({
name: { type: String, required: true, index: true },
label: { type: String, required: true, index: true },
data_description: { type: String, default: "" },
}, { _id: false });
// Main sheet schema
const SheetSchema = new Schema({
name: { type: String, required: true, index: true },
description: { type: String },
userId: { type: Schema.Types.ObjectId, ref: "User", required: true },
columns: [ColumnDefinitionSchema],
googleDriveId: { type: String, default: null },
metadata: {
totalRows: { type: Number, default: 0 },
lastModified: { type: Date, default: Date.now },
version: { type: Number, default: 1 }
},
}, { timestamps: true });
// Sheet data schema for storing row data
const SheetDataSchema = new Schema({
sheetId: { type: Schema.Types.ObjectId, ref: "Sheet", required: true },
rowId: { type: String, required: true }, // Custom row identifier
data: { type: Schema.Types.Mixed, required: true }, // Dynamic data based on sheet columns
}, { timestamps: true });
const Sheet = mongoose.model("Sheet", SheetSchema);
const SheetData = mongoose.model("SheetData", SheetDataSchema);
export default Sheet;
export { SheetData };
//# sourceMappingURL=sheet.model.js.map