cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
72 lines (71 loc) • 2.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CAppRolloutConfigMst = void 0;
var mongoose_1 = require("mongoose");
/* SCHEMA START */
var app_rollout_config_mst = new mongoose_1.Schema({
approll_version_id_appver: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "app_version_mst",
required: true,
comment: "FK to app_version_mst - Reference to app version"
},
approll_rollout_phases: [{
phase_number: {
type: Number,
required: true,
comment: "Phase number"
},
percentage: {
type: Number,
required: true,
min: 0,
max: 100,
comment: "0-100 percentage for this phase"
},
start_date: {
type: Date,
required: true,
comment: "Phase start date"
},
end_date: {
type: Date,
comment: "Phase end date"
},
phase_status_id_sygms: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "core_general_master",
required: true,
comment: "FK to core_general_master - Phase status (APP_PHASE_STATUS)"
}
}],
approll_rollout_criteria: {
type: mongoose_1.Schema.Types.Mixed,
comment: "JSON object - Rollout criteria (min_os_version, device_types, regions, user_segments)"
},
approll_auto_advance: {
type: Boolean,
default: false,
comment: "Auto advance to next phase"
},
approll_created_by_id_auth: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst",
required: true,
comment: "FK to auth_user_mst - User who created"
},
approll_created_at: {
type: Date,
default: Date.now,
comment: "Creation timestamp"
},
approll_updated_at: {
type: Date,
default: Date.now,
comment: "Last update timestamp"
}
}, { collection: 'app_rollout_config_mst', timestamps: { createdAt: 'approll_created_at', updatedAt: 'approll_updated_at' } });
// Indexes for performance optimization
app_rollout_config_mst.index({ approll_version_id_appver: 1 });
var CAppRolloutConfigMst = mongoose_1.default.model("app_rollout_config_mst", app_rollout_config_mst);
exports.CAppRolloutConfigMst = CAppRolloutConfigMst;