import mongoose, { Document, Schema } from "mongoose"; import MainModel from "../../../connect/mongoose.ts"; interface ICommonBase{ type: string; } interface IPointsConveyor extends ICommonBase{ points?: { Uuid:string; position: [number, number, number]; rotation: [number, number, number]; }[]; } interface IPoint extends ICommonBase{ point?: { Uuid:string; position: [number, number, number]; rotation: [number, number, number]; }; } export interface assetData extends Document { modelUuid: string; modelfileID: string; modelName: string; isLocked: boolean; type: string; isVisible: boolean; isArchive: false; // points: [] | {}; position: []; rotation: { x: number; y: number; z: number; }; speed: number | string; eventData: IPoint|IPointsConveyor } const assetDataSchema: Schema = new Schema({ isArchive: { type: Boolean, default: false }, modelUuid: { type: String }, modelfileID: { type: String }, modelName: { type: String }, type: { type: String }, // points: { type: Schema.Types.Mixed }, position: { type: Array }, rotation: { x: { type: Number }, y: { type: Number }, z: { type: Number }, }, speed: { type: Schema.Types.Mixed }, isLocked: { type: Boolean }, isVisible: { type: Boolean }, eventData: { type: Schema.Types.Mixed, required: true, }, }); // export default floorItemsModel; const assetModel = (db: string) => { return MainModel(db, "Assets", assetDataSchema, "Assets"); }; export default assetModel; // import mongoose, { Document, Schema } from "mongoose"; // import MainModel from "../../../connect/mongoose.ts"; // export interface assetData extends Document { // modelUuid: string; // modelfileID: string; // modelName: string; // isLocked: boolean; // type: string; // isVisible: boolean; // isArchive: false; // // position: []; // // rotation: { // // x: number; // // y: number; // // z: number; // // }; // points: { // uuid: string; // position: []; // rotation: []; // actions: [mongoose.Types.ObjectId]; // triggers: [mongoose.Types.ObjectId]; // connections: { // source: { // modelUUID: string; // pointUUID: string; // }; // targets: [ // { // modelUUID: string; // pointUUID: string; // } // ]; // }[]; // }[]; // position: []; // // rotation: []; // rotation: { // x: number; // y: number; // z: number; // }; // speed: number | string; // } // // Define the Mongoose Schema // const assetDataSchema: Schema = new Schema({ // isArchive: { type: Boolean, default: false }, // modelUuid: { type: String }, // modelfileID: { type: String }, // modelName: { type: String }, // type: { type: String }, // // assetPosition: { type: Array }, // points: [ // { // uuid: { type: String }, // position: { type: Array }, // rotation: { type: Array }, // actions: [{ type: mongoose.Schema.Types.ObjectId, ref: "Actions" }], // triggers: [{ type: mongoose.Schema.Types.ObjectId, ref: "Triggers" }], // connections: { // source: { // modelUUID: { type: String }, // pointUUID: { type: String }, // }, // targets: [ // { // modelUUID: { type: String }, // pointUUID: { type: String }, // }, // ], // }, // }, // ], // position: { type: Array }, // // rotation: { type: Array}, // rotation: { // x: { type: Number }, // y: { type: Number }, // z: { type: Number }, // }, // speed: { type: Schema.Types.Mixed }, // isLocked: { type: Boolean }, // isVisible: { type: Boolean }, // }); // // export default floorItemsModel; // const assetModel = (db: string) => { // return MainModel(db, "Assets", assetDataSchema, "Assets"); // }; // export default assetModel;