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; // position: []; // rotation: { // x: number; // y: number; // z: number; // }; points: { uuid: string; position: []; rotation: []; actions: [mongoose.Types.ObjectId]; triggers: [mongoose.Types.ObjectId]; connections: { source: { pathUUID: string; pointUUID: string; }; targets: [ { pathUUID: string; pointUUID: string; } ]; }[]; }[]; assetPosition: number[]; assetRotation: number[]; speed: number | string; } // Define the Mongoose Schema const assetDataSchema: Schema = new Schema({ 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: { pathUUID: { type: String }, pointUUID: { type: String }, }, targets: [ { pathUUID: { type: String }, pointUUID: { type: String }, }, ], }, }, ], assetPosition: { type: [Number] }, assetRotation: { type: [Number] }, speed: { type: Schema.Types.Mixed }, isLocked: { type: Boolean }, isVisible: { type: Boolean }, // rotation: { // x: { type: Number }, // y: { type: Number }, // z: { type: Number }, // }, }); // export default floorItemsModel; const assetModel = (db: string) => { return MainModel(db, "Assets", assetDataSchema, "Assets"); }; export default assetModel;