159 lines
4.0 KiB
TypeScript
159 lines
4.0 KiB
TypeScript
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,
|
|
},
|
|
});
|
|
|
|
// 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;
|