Files
Dwinzo-Backend-V0.0/src/shared/model/builder/assets/asset-Model.ts

86 lines
2.1 KiB
TypeScript
Raw Normal View History

2025-03-28 12:45:59 +05:30
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;
2025-03-28 12:45:59 +05:30
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;
2025-03-28 12:45:59 +05:30
}
// Define the Mongoose Schema
const assetDataSchema: Schema = new Schema({
modeluuid: { type: String },
modelfileID: { type: String },
modelname: { type: String },
type: { type: String },
// assetPosition: { type: Array },
2025-03-28 12:45:59 +05:30
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 },
},
],
},
2025-03-28 12:45:59 +05:30
},
],
assetPosition: { type: [Number] },
assetRotation: { type: [Number] },
speed: { type: Number },
2025-03-28 12:45:59 +05:30
isLocked: { type: Boolean },
isVisible: { type: Boolean },
// rotation: {
// x: { type: Number },
// y: { type: Number },
// z: { type: Number },
// },
2025-03-28 12:45:59 +05:30
});
// export default floorItemsModel;
const assetModel = (db: string) => {
return MainModel(db, "Assets", assetDataSchema, "Assets");
};
export default assetModel;