42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { Schema, Document } from "mongoose";
|
|
import MainModel from "../connection/connection";
|
|
import { IProject } from "./projectmodel";
|
|
interface Ifolders extends Document {
|
|
folderName: string;
|
|
createdAt: number;
|
|
}
|
|
const folderSchema: Schema = new Schema(
|
|
{
|
|
folderName: { type: String, required: true },
|
|
createdAt: { type: Date, default: Date.now },
|
|
},
|
|
{ _id: false }
|
|
);
|
|
export interface IMVCPrject extends Document {
|
|
projectId: IProject["_id"];
|
|
controllers: boolean;
|
|
routes: boolean;
|
|
models: boolean;
|
|
services: boolean;
|
|
middleware: boolean;
|
|
utils: boolean;
|
|
config: boolean;
|
|
folders: Ifolders[];
|
|
}
|
|
const mvcSchema: Schema = new Schema({
|
|
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
|
controllers: { type: Boolean },
|
|
routes: { type: Boolean },
|
|
models: { type: Boolean },
|
|
services: { type: Boolean },
|
|
middleware: { type: Boolean },
|
|
utils: { type: Boolean },
|
|
config: { type: Boolean },
|
|
folders: [folderSchema],
|
|
});
|
|
|
|
const MVCarcModel = (db: any) => {
|
|
return MainModel(db, "MVCArc", mvcSchema, "MVCArc");
|
|
};
|
|
export default MVCarcModel;
|