Schema Model - new Version Added
This commit is contained in:
24
src/shared/V1Models/Auth/tokenModel.ts
Normal file
24
src/shared/V1Models/Auth/tokenModel.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "./userAuthModel.ts";
|
||||
export interface Token extends Document {
|
||||
userId: User["_id"];
|
||||
isArchieve: Boolean;
|
||||
refreshToken: string;
|
||||
resetTokenExpiry?: Date;
|
||||
resetToken: string;
|
||||
}
|
||||
const tokenSchema: Schema = new Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
isArchieve: { type: Boolean, default: false },
|
||||
token: { type: String },
|
||||
refreshToken: { type: String },
|
||||
tokenCreatedAt: { type: Date },
|
||||
resetToken: { type: String },
|
||||
resetTokenExpiry: { type: Date },
|
||||
});
|
||||
|
||||
const tokenType = (db: any) => {
|
||||
return MainModel(db, "Token", tokenSchema, "Token");
|
||||
};
|
||||
export default tokenType;
|
||||
46
src/shared/V1Models/Auth/user.ts
Normal file
46
src/shared/V1Models/Auth/user.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "./userAuthModel.ts";
|
||||
export interface UserData extends Document {
|
||||
userId: User["_id"];
|
||||
notificationEnable: boolean;
|
||||
About: string;
|
||||
isArchieve: boolean;
|
||||
Role: string;
|
||||
Profilepicture: string;
|
||||
recentlyViewed: string[];
|
||||
CheckIn: number;
|
||||
CheckOut: number;
|
||||
}
|
||||
const UserDataSchema: Schema = new Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
isArchieve: { type: Boolean, default: false },
|
||||
notificationEnable: { type: Boolean, default: false },
|
||||
About: {
|
||||
type: String,
|
||||
},
|
||||
Role: {
|
||||
type: String,
|
||||
default: "User",
|
||||
enum: ["User", "Admin"],
|
||||
},
|
||||
recentlyViewed: {
|
||||
type: [String],
|
||||
default: [],
|
||||
},
|
||||
Profilepicture: {
|
||||
type: String,
|
||||
// default: "default-profile-picture.jpg"
|
||||
},
|
||||
CheckIn: {
|
||||
type: Number,
|
||||
},
|
||||
CheckOut: {
|
||||
type: Number,
|
||||
},
|
||||
});
|
||||
|
||||
const UsersDataModel = (db: any) => {
|
||||
return MainModel(db, "UsersData", UserDataSchema, "UsersData");
|
||||
};
|
||||
export default UsersDataModel;
|
||||
34
src/shared/V1Models/Auth/userAuthModel.ts
Normal file
34
src/shared/V1Models/Auth/userAuthModel.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
export interface User extends Document {
|
||||
Username: string;
|
||||
Email: string;
|
||||
Password: string;
|
||||
isArchieve: boolean;
|
||||
visitorBrowserID: string;
|
||||
lastPasswordReset: number;
|
||||
}
|
||||
const signupschema: Schema = new Schema({
|
||||
Username: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
Email: {
|
||||
type: String,
|
||||
unique: true,
|
||||
required: true,
|
||||
},
|
||||
Password: {
|
||||
type: String,
|
||||
min: 8,
|
||||
// required: true,
|
||||
},
|
||||
isArchieve: { type: Boolean, default: false },
|
||||
lastPasswordReset: { type: Number },
|
||||
visitorBrowserID: { type: String },
|
||||
});
|
||||
|
||||
const userModel = (db: any) => {
|
||||
return MainModel(db, "User", signupschema, "User");
|
||||
};
|
||||
export default userModel;
|
||||
71
src/shared/V1Models/Builder/assetModel.ts
Normal file
71
src/shared/V1Models/Builder/assetModel.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
import { Document, Schema } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.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 {
|
||||
userId: User["_id"];
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
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({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
modelUuid: { type: String },
|
||||
modelfileID: { type: String },
|
||||
modelName: { type: String },
|
||||
type: { type: String },
|
||||
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,
|
||||
},
|
||||
});
|
||||
|
||||
const assetModel = (db: string) => {
|
||||
return MainModel(db, "Assets", assetDataSchema, "Assets");
|
||||
};
|
||||
export default assetModel;
|
||||
51
src/shared/V1Models/Builder/cameraModel.ts
Normal file
51
src/shared/V1Models/Builder/cameraModel.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { Document, Schema } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
export interface Camera extends Document {
|
||||
userId: User["_id"];
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
position: {
|
||||
x: number;
|
||||
y: number;
|
||||
z: number;
|
||||
};
|
||||
target: {
|
||||
x: { type: Number; required: true };
|
||||
y: { type: Number; required: true };
|
||||
z: { type: Number; required: true };
|
||||
};
|
||||
rotation: {
|
||||
x: { type: Number; required: true };
|
||||
y: { type: Number; required: true };
|
||||
z: { type: Number; required: true };
|
||||
};
|
||||
}
|
||||
|
||||
const cameraSchema: Schema = new Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
position: {
|
||||
x: { type: Number, required: true },
|
||||
y: { type: Number, required: true },
|
||||
z: { type: Number, required: true },
|
||||
},
|
||||
target: {
|
||||
x: { type: Number, required: true },
|
||||
y: { type: Number, required: true },
|
||||
z: { type: Number, required: true },
|
||||
},
|
||||
rotation: {
|
||||
x: { type: Number, required: true },
|
||||
y: { type: Number, required: true },
|
||||
z: { type: Number, required: true },
|
||||
},
|
||||
});
|
||||
|
||||
const cameraModel = (db: string) => {
|
||||
return MainModel(db, "Camera", cameraSchema, "Camera");
|
||||
};
|
||||
export default cameraModel;
|
||||
29
src/shared/V1Models/Builder/linesModel.ts
Normal file
29
src/shared/V1Models/Builder/linesModel.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import mongoose, { Schema } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
const positionSchema = new mongoose.Schema({
|
||||
x: { type: Number }, // Optional position fields
|
||||
y: { type: Number },
|
||||
z: { type: Number },
|
||||
});
|
||||
|
||||
const Vector3 = new mongoose.Schema({
|
||||
position: { type: positionSchema, required: false }, // Optional position
|
||||
uuid: { type: String, required: false }, // Optional uuid
|
||||
});
|
||||
|
||||
const LineSchema = new mongoose.Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
layer: { type: Number, required: true }, // Layer is mandatory
|
||||
line: { type: [Vector3], required: true }, // Array of line objects
|
||||
type: { type: String, required: false }, // Optional type
|
||||
});
|
||||
|
||||
const lineModel = (db: string) => {
|
||||
return MainModel(db, "lines", LineSchema, "lines");
|
||||
};
|
||||
export default lineModel;
|
||||
37
src/shared/V1Models/Builder/wallItemsModel.ts
Normal file
37
src/shared/V1Models/Builder/wallItemsModel.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { Document, Schema } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
export interface WallItems extends Document {
|
||||
userId: User["_id"];
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
modelUuid: string;
|
||||
modelName: string;
|
||||
type: string;
|
||||
csgposition: [];
|
||||
csgscale: [];
|
||||
position: [];
|
||||
quaternion: [];
|
||||
scale: [];
|
||||
}
|
||||
|
||||
const wallItemsSchema: Schema = new Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
modelUuid: { type: String, unique: true },
|
||||
modelName: { type: String },
|
||||
type: { type: String },
|
||||
csgposition: { type: Array },
|
||||
csgscale: { type: Array },
|
||||
position: { type: Array },
|
||||
quaternion: { type: Array },
|
||||
scale: { type: Array },
|
||||
});
|
||||
|
||||
const wallItemModel = (db: string) => {
|
||||
return MainModel(db, "wallitems", wallItemsSchema, "wallitems");
|
||||
};
|
||||
export default wallItemModel;
|
||||
50
src/shared/V1Models/Builder/zoneModel.ts
Normal file
50
src/shared/V1Models/Builder/zoneModel.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
export interface Zone extends Document {
|
||||
zoneName: string;
|
||||
zoneId: string;
|
||||
zonePoints: [];
|
||||
viewPortCenter: [];
|
||||
viewPortposition: [];
|
||||
isArchive: boolean;
|
||||
panelOrder: string[];
|
||||
lockedPanel: string[];
|
||||
createdBy: User["_id"];
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
layer: number;
|
||||
}
|
||||
const zoneSchema: Schema = new Schema(
|
||||
{
|
||||
zoneName: { type: String },
|
||||
zoneId: { type: String },
|
||||
createdBy: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
layer: { type: Number },
|
||||
points: { type: Array },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
panelOrder: {
|
||||
type: [String],
|
||||
enum: ["left", "right", "top", "bottom"],
|
||||
},
|
||||
viewPortCenter: { type: Array, required: true },
|
||||
viewPortposition: { type: Array, required: true },
|
||||
lockedPanel: {
|
||||
type: [String],
|
||||
default: [],
|
||||
enum: ["left", "right", "top", "bottom"],
|
||||
},
|
||||
// createdBy: { type: mongoose.Schema.Types.ObjectId, ref: "User" },
|
||||
// sceneID: { type: mongoose.Schema.Types.ObjectId, ref: "Scene" },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const zoneModel = (db: any) => {
|
||||
return MainModel(db, "zones", zoneSchema, "zones");
|
||||
};
|
||||
export default zoneModel;
|
||||
25
src/shared/V1Models/Environment/environments-Model.ts
Normal file
25
src/shared/V1Models/Environment/environments-Model.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { Document, Schema } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
export interface Environment extends Document {
|
||||
userId: User["_id"];
|
||||
roofVisibility: boolean;
|
||||
wallVisibility: boolean;
|
||||
renderDistance: number;
|
||||
shadowVisibility: boolean;
|
||||
limitDistance: boolean;
|
||||
}
|
||||
|
||||
const environmentSchema: Schema = new Schema({
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User", unique: true },
|
||||
roofVisibility: { type: Boolean, default: false },
|
||||
wallVisibility: { type: Boolean, default: false },
|
||||
shadowVisibility: { type: Boolean, default: false },
|
||||
renderDistance: { type: Number, default: 40 },
|
||||
limitDistance: { type: Boolean, default: true },
|
||||
});
|
||||
|
||||
const environmentModel = (db: string) => {
|
||||
return MainModel(db, "Environment", environmentSchema, "Environment");
|
||||
};
|
||||
export default environmentModel;
|
||||
39
src/shared/V1Models/Project/project-model.ts
Normal file
39
src/shared/V1Models/Project/project-model.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
|
||||
export interface Project extends Document {
|
||||
projectUuid: string;
|
||||
projectName: string;
|
||||
createdBy: User["_id"];
|
||||
isArchive: boolean;
|
||||
isDeleted: boolean;
|
||||
thumbnail: string;
|
||||
sharedUsers: [];
|
||||
DeletedAt: Date;
|
||||
isViewed: number;
|
||||
total_versions: string;
|
||||
Present_version: string;
|
||||
}
|
||||
const projectSchema: Schema = new Schema(
|
||||
{
|
||||
projectUuid: { type: String },
|
||||
projectName: { type: String },
|
||||
thumbnail: { type: String },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
createdBy: { type: Schema.Types.ObjectId, ref: "user" },
|
||||
sharedUsers: [{ type: Schema.Types.ObjectId, ref: "user" }],
|
||||
DeletedAt: { type: Date, default: null },
|
||||
isDeleted: { type: Boolean, default: false },
|
||||
isViewed: { type: Number },
|
||||
total_versions: { type: String },
|
||||
Present_version: { type: String },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const projectModel = (db: string) => {
|
||||
return MainModel(db, "Projects", projectSchema, "Projects");
|
||||
};
|
||||
|
||||
export default projectModel;
|
||||
182
src/shared/V1Models/Simulation/eventsDataModel.ts
Normal file
182
src/shared/V1Models/Simulation/eventsDataModel.ts
Normal file
@@ -0,0 +1,182 @@
|
||||
// models/Product.ts
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
|
||||
interface AssetEventSchema {
|
||||
modelUuid: string;
|
||||
modelName: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
state: "idle" | "running" | "stopped" | "disabled" | "error";
|
||||
}
|
||||
|
||||
interface TriggerSchema {
|
||||
triggerUuid: string;
|
||||
triggerName: string;
|
||||
triggerType: "onComplete" | "onStart" | "onStop" | "delay" | "onError";
|
||||
delay: number;
|
||||
triggeredAsset: {
|
||||
triggeredModel: { modelName: string; modelUuid: string };
|
||||
triggeredPoint: { pointName: string; pointUuid: string };
|
||||
triggeredAction: { actionName: string; actionUuid: string };
|
||||
} | null;
|
||||
}
|
||||
|
||||
interface ConveyorPointSchema {
|
||||
uuid: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
action: {
|
||||
actionUuid: string;
|
||||
actionName: string;
|
||||
actionType: "default" | "spawn" | "swap" | "despawn";
|
||||
material: string;
|
||||
delay: number | "inherit";
|
||||
spawnInterval: number | "inherit";
|
||||
spawnCount: number | "inherit";
|
||||
triggers: TriggerSchema[];
|
||||
};
|
||||
}
|
||||
|
||||
interface VehiclePointSchema {
|
||||
uuid: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
action: {
|
||||
actionUuid: string;
|
||||
actionName: string;
|
||||
actionType: "travel";
|
||||
material: string | null;
|
||||
unLoadDuration: number;
|
||||
loadCapacity: number;
|
||||
pickUpPoint: { x: number; y: number; z: number } | null;
|
||||
unLoadPoint: { x: number; y: number; z: number } | null;
|
||||
triggers: TriggerSchema[];
|
||||
};
|
||||
}
|
||||
|
||||
interface RoboticArmPointSchema {
|
||||
uuid: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
actions: {
|
||||
actionUuid: string;
|
||||
actionName: string;
|
||||
actionType: "pickAndPlace";
|
||||
process: {
|
||||
startPoint: [number, number, number];
|
||||
endPoint: [number, number, number];
|
||||
};
|
||||
triggers: TriggerSchema[];
|
||||
}[];
|
||||
}
|
||||
|
||||
interface MachinePointSchema {
|
||||
uuid: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
action: {
|
||||
actionUuid: string;
|
||||
actionName: string;
|
||||
actionType: "process";
|
||||
processTime: number;
|
||||
swapMaterial: string;
|
||||
triggers: TriggerSchema[];
|
||||
};
|
||||
}
|
||||
|
||||
interface StoragePointSchema {
|
||||
uuid: string;
|
||||
position: [number, number, number];
|
||||
rotation: [number, number, number];
|
||||
action: {
|
||||
actionUuid: string;
|
||||
actionName: string;
|
||||
actionType: "storage";
|
||||
materials: { materialName: string; materialId: string }[];
|
||||
storageCapacity: number;
|
||||
};
|
||||
}
|
||||
|
||||
interface ConveyorEventSchema extends AssetEventSchema {
|
||||
type: "transfer";
|
||||
speed: number;
|
||||
points: ConveyorPointSchema[];
|
||||
}
|
||||
|
||||
interface VehicleEventSchema extends AssetEventSchema {
|
||||
type: "vehicle";
|
||||
speed: number;
|
||||
point: VehiclePointSchema;
|
||||
}
|
||||
|
||||
interface RoboticArmEventSchema extends AssetEventSchema {
|
||||
type: "roboticArm";
|
||||
speed: number;
|
||||
point: RoboticArmPointSchema;
|
||||
}
|
||||
|
||||
interface MachineEventSchema extends AssetEventSchema {
|
||||
type: "machine";
|
||||
// speed: number;
|
||||
point: MachinePointSchema;
|
||||
}
|
||||
|
||||
interface StorageEventSchema extends AssetEventSchema {
|
||||
type: "storageUnit";
|
||||
// speed: number;
|
||||
point: StoragePointSchema;
|
||||
}
|
||||
interface IPointModel extends Document {
|
||||
modelUuid: String;
|
||||
modelName: String;
|
||||
position: String;
|
||||
rotation: String;
|
||||
state: String;
|
||||
productId: String;
|
||||
isArchive: boolean;
|
||||
type: "transfer" | "vehicle" | "roboticArm" | "machine" | "storageUnit";
|
||||
speed: number;
|
||||
point:
|
||||
| VehicleEventSchema
|
||||
| RoboticArmEventSchema
|
||||
| MachineEventSchema
|
||||
| StorageEventSchema;
|
||||
points: ConveyorEventSchema[];
|
||||
}
|
||||
// type EventsSchema = ConveyorEventSchema | VehicleEventSchema | RoboticArmEventSchema | MachineEventSchema | StorageEventSchema;
|
||||
|
||||
const BaseEventSchema = new Schema<IPointModel>(
|
||||
{
|
||||
modelUuid: { type: String, required: true },
|
||||
modelName: { type: String, required: true },
|
||||
position: { type: [Number], required: true },
|
||||
rotation: { type: [Number], required: true },
|
||||
speed: { type: Number },
|
||||
state: {
|
||||
type: String,
|
||||
enum: ["idle", "running", "stopped", "disabled", "error"],
|
||||
default: "idle",
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
enum: ["transfer", "vehicle", "roboticArm", "machine", "storageUnit"],
|
||||
},
|
||||
point: {
|
||||
type: Schema.Types.Mixed,
|
||||
},
|
||||
points: {
|
||||
type: Schema.Types.Mixed,
|
||||
},
|
||||
productId: { type: String, required: true },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
},
|
||||
{ discriminatorKey: "type", timestamps: true }
|
||||
);
|
||||
|
||||
const EventsDataModel = (db: string) => {
|
||||
return MainModel(db, "EventDatas", BaseEventSchema, "EventDatas");
|
||||
};
|
||||
|
||||
export default EventsDataModel;
|
||||
26
src/shared/V1Models/Simulation/productModel.ts
Normal file
26
src/shared/V1Models/Simulation/productModel.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
export interface Product extends Document {
|
||||
productName: string;
|
||||
productId: string;
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
eventsData: [];
|
||||
isArchive: boolean;
|
||||
}
|
||||
|
||||
const ProductSchema = new Schema({
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
productName: { type: String, required: true },
|
||||
productId: { type: String, required: true },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
});
|
||||
|
||||
const ProductModel = (db: string) => {
|
||||
return MainModel(db, "Product", ProductSchema, "Product");
|
||||
};
|
||||
|
||||
export default ProductModel;
|
||||
27
src/shared/V1Models/Version/versionModel.ts
Normal file
27
src/shared/V1Models/Version/versionModel.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
export interface Version extends Document {
|
||||
versionName: string;
|
||||
projectId: Project["_id"];
|
||||
createdBy: User["_id"];
|
||||
isArchive: boolean;
|
||||
version: number;
|
||||
}
|
||||
const versionSchema: Schema = new Schema(
|
||||
{
|
||||
versionName: { type: String },
|
||||
version: { type: Number },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "project" },
|
||||
createdBy: { type: Schema.Types.ObjectId, ref: "user" },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const versionModel = (db: string) => {
|
||||
return MainModel(db, "Versions", versionSchema, "Versions");
|
||||
};
|
||||
|
||||
export default versionModel;
|
||||
37
src/shared/V1Models/Vizualization/3dwidget.ts
Normal file
37
src/shared/V1Models/Vizualization/3dwidget.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { Schema, Document, model } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Zone } from "../Builder/zoneModel.ts";
|
||||
export interface Widget3d extends Document {
|
||||
type: string;
|
||||
widgetID: string;
|
||||
widgetName: string;
|
||||
position: [];
|
||||
rotation: [];
|
||||
isArchive: boolean;
|
||||
zoneId: Zone["_id"];
|
||||
Data: {
|
||||
measurements: {};
|
||||
duration: string;
|
||||
};
|
||||
}
|
||||
const Widget3dSchema: Schema = new Schema(
|
||||
{
|
||||
type: { type: String },
|
||||
widgetID: { type: String },
|
||||
widgetName: { type: String, default: "Widget3D" },
|
||||
position: { type: Array },
|
||||
rotation: { type: Array },
|
||||
zoneId: { type: Schema.Types.ObjectId, ref: "Zone" },
|
||||
Data: {
|
||||
measurements: { type: Object, default: {} },
|
||||
duration: { type: String, default: "1h" },
|
||||
},
|
||||
isArchive: { type: Boolean, default: false },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const widget3dModel = (db: any) => {
|
||||
return MainModel(db, "3dWidget", Widget3dSchema, "3dWidget");
|
||||
};
|
||||
export default widget3dModel;
|
||||
46
src/shared/V1Models/Vizualization/floatWidget.ts
Normal file
46
src/shared/V1Models/Vizualization/floatWidget.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import { Schema, Document, model } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Zone } from "../Builder/zoneModel.ts";
|
||||
export interface FloatingWidget extends Document {
|
||||
className: string;
|
||||
iconName: string;
|
||||
header: string;
|
||||
floatWidgetID: string;
|
||||
position: {};
|
||||
per: string;
|
||||
value: string;
|
||||
isArchive: boolean;
|
||||
zoneId: Zone["_id"];
|
||||
Data: {
|
||||
measurements: {};
|
||||
duration: string;
|
||||
};
|
||||
}
|
||||
const floatingWidgetSchema: Schema = new Schema(
|
||||
{
|
||||
className: { type: String },
|
||||
iconName: { type: String },
|
||||
header: { type: String },
|
||||
floatWidgetID: { type: String },
|
||||
position: { type: Object },
|
||||
per: { type: String },
|
||||
value: { type: String },
|
||||
zoneId: { type: Schema.Types.ObjectId, ref: "Zone" },
|
||||
Data: {
|
||||
measurements: { type: Object, default: {} },
|
||||
duration: { type: String, default: "1h" },
|
||||
},
|
||||
isArchive: { type: Boolean, default: false },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const floatWidgetModel = (db: any) => {
|
||||
return MainModel(
|
||||
db,
|
||||
"FloatingWidget",
|
||||
floatingWidgetSchema,
|
||||
"FloatingWidget"
|
||||
);
|
||||
};
|
||||
export default floatWidgetModel;
|
||||
23
src/shared/V1Models/Vizualization/panelmodel.ts
Normal file
23
src/shared/V1Models/Vizualization/panelmodel.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import mongoose, { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Zone } from "../Builder/zoneModel.ts";
|
||||
export interface Panel extends Document {
|
||||
zoneId: Zone["_id"];
|
||||
panelName: string;
|
||||
widgets: [mongoose.Types.ObjectId];
|
||||
isArchive: boolean;
|
||||
}
|
||||
const panelSchema: Schema = new Schema(
|
||||
{
|
||||
zoneId: { type: Schema.Types.ObjectId, ref: "Zone" },
|
||||
panelName: { type: String },
|
||||
widgets: [{ type: mongoose.Schema.Types.ObjectId, ref: "Widget" }],
|
||||
isArchive: { type: Boolean, default: false },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const panelModel = (db: any) => {
|
||||
return MainModel(db, "Panel", panelSchema, "Panel");
|
||||
};
|
||||
export default panelModel;
|
||||
39
src/shared/V1Models/Vizualization/templatemodel.ts
Normal file
39
src/shared/V1Models/Vizualization/templatemodel.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { User } from "../Auth/userAuthModel.ts";
|
||||
import { Project } from "../Project/project-model.ts";
|
||||
import { Version } from "../Version/versionModel.ts";
|
||||
export interface Template extends Document {
|
||||
userId: User["_id"];
|
||||
projectId: Project["_id"];
|
||||
versionId: Version["_id"];
|
||||
templateName: string;
|
||||
templateID: string;
|
||||
snapshot: string;
|
||||
panelOrder: [];
|
||||
widgets: [];
|
||||
floatWidgets: [];
|
||||
Widgets3D: [];
|
||||
isArchive: boolean;
|
||||
}
|
||||
const templateSchema: Schema = new Schema(
|
||||
{
|
||||
userId: { type: Schema.Types.ObjectId, ref: "User" },
|
||||
projectId: { type: Schema.Types.ObjectId, ref: "Project" },
|
||||
versionId: { type: Schema.Types.ObjectId, ref: "Version" },
|
||||
templateName: { type: String },
|
||||
templateID: { type: String },
|
||||
snapshot: { type: String },
|
||||
panelOrder: { type: Array },
|
||||
widgets: { type: Array },
|
||||
floatWidgets: { type: Array },
|
||||
Widgets3D: { type: Array },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const templateModel = (db: any) => {
|
||||
return MainModel(db, "Template", templateSchema, "Template");
|
||||
};
|
||||
export default templateModel;
|
||||
47
src/shared/V1Models/Vizualization/widgemodel.ts
Normal file
47
src/shared/V1Models/Vizualization/widgemodel.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import mongoose, { Schema, Document } from "mongoose";
|
||||
import MainModel from "../../connect/mongoose.ts";
|
||||
import { Zone } from "../Builder/zoneModel.ts";
|
||||
export interface widget extends Document {
|
||||
widgetName: string;
|
||||
widgetside: string;
|
||||
widgetID: string;
|
||||
widgetOrder: string;
|
||||
elementType: string;
|
||||
elementColor: string;
|
||||
fontFamily: string;
|
||||
fontStyle: string;
|
||||
fontWeight: string;
|
||||
isArchive: boolean;
|
||||
panelID: mongoose.Types.ObjectId;
|
||||
Data: {
|
||||
measurements: {};
|
||||
duration: string;
|
||||
};
|
||||
zoneId: Zone["_id"];
|
||||
}
|
||||
const widgetSchema: Schema = new Schema(
|
||||
{
|
||||
widgetName: { type: String, default: "Widget" },
|
||||
widgetside: { type: String },
|
||||
widgetID: { type: String },
|
||||
widgetOrder: { type: String },
|
||||
elementType: { type: String },
|
||||
elementColor: { type: String },
|
||||
fontFamily: { type: String },
|
||||
fontStyle: { type: String },
|
||||
Data: {
|
||||
measurements: { type: Object, default: {} },
|
||||
duration: { type: String, default: "1h" },
|
||||
},
|
||||
fontWeight: { type: String },
|
||||
isArchive: { type: Boolean, default: false },
|
||||
panelID: { type: mongoose.Schema.Types.ObjectId, ref: "Panel" },
|
||||
zoneId: { type: Schema.Types.ObjectId, ref: "Zone" },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
const widgetModel = (db: any) => {
|
||||
return MainModel(db, "Widget", widgetSchema, "Widget");
|
||||
};
|
||||
export default widgetModel;
|
||||
Reference in New Issue
Block a user