UNPKG

cloud-ide-model-schema

Version:

Pachage for schema management of Cloud IDEsys LMS

72 lines (71 loc) 2.53 kB
"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;