cecon-interfaces
Version:
Interfaces de Projetos Cecon
83 lines (82 loc) • 3.63 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PayioActivationBatchEntity = void 0;
var license_type_enum_1 = require("../../activation-key/enums/license-type.enum");
var activation_batch_status_enum_1 = require("../enums/activation-batch-status.enum");
var PayioActivationBatchEntity = /** @class */ (function () {
function PayioActivationBatchEntity(data) {
/** Prazo em dias para ativar as licenças (a partir da criação do lote) */
this.activationDeadlineDays = 180; // 6 meses;
/** Quantidade de licenças ativas */
this.activeLicenses = 0;
// === INFORMAÇÕES DO APLICATIVO ===
/** ID do aplicativo que será ativado */
this.appId = '';
/** Nome do aplicativo (para facilitar consultas) */
this.appName = '';
/** Slug do aplicativo */
this.appSlug = '';
/** Quantidade de licenças ativadas */
this.availableLicenses = 0;
/** Número sequencial do lote (ex: "2025/001", "2025/002") */
this.batchNumber = '';
// === CONTROLE DE TEMPO ===
/** Data de criação do lote */
this.createdAt = new Date();
// === AUDITORIA ===
/** ID do admin que criou o lote */
this.createdBy = '';
// === INFORMAÇÕES DO DISTRIBUIDOR ===
/** ID do distribuidor que receberá as licenças */
this.distributorId = '';
/** Nome do distribuidor (para facilitar consultas) */
this.distributorName = '';
/** Quantidade de licenças expiradas */
this.expiredLicenses = 0;
/** Dias de tolerância após expiração */
this.gracePeriodDays = 0;
this.id = '';
// === CONFIGURAÇÕES DE LICENÇA ===
/** Tipo de licença que será gerada neste lote */
this.licenseType = license_type_enum_1.EPayioLicenseType.SUBSCRIPTION;
/** Logs de operações do lote */
this.logs = [];
/** Preço total negociado com o distribuidor */
this.negotiatedPrice = 0;
/** Quantidade de licenças revogadas */
this.revokedLicenses = 0;
/** Indica se é ambiente sandbox */
this.sandbox = false;
/** Número sequencial dentro do ano */
this.sequentialNumber = 0;
/** Status atual do lote */
this.status = activation_batch_status_enum_1.EPayioActivationBatchStatus.PROCESSING;
/** Tags para busca e indexação */
this.tags = [];
// === CONTROLE E ESTOQUE DE LICENÇAS ===
/** Quantidade total de licenças no lote */
this.totalLicenses = 0;
// === INFORMAÇÕES COMERCIAIS ===
/** Preço unitário por licença */
this.unitPrice = 0;
/** Data da última atualização */
this.updatedAt = new Date();
/** Período de validade da licença em meses (para definição comercial) */
this.validityPeriodMonths = 12;
/** Período de validade da licença do tipo trial em dias (para definição comercial) */
this.validityTrialPeriodDays = 0;
/** Versão ou intervalo de versões do software cobertas */
this.versionConstraint = [];
/** Ano de referência do lote */
this.year = new Date().getFullYear();
if (data) {
for (var key in data) {
if (data.hasOwnProperty(key) && key in this) {
this[key] = data[key];
}
}
}
}
return PayioActivationBatchEntity;
}());
exports.PayioActivationBatchEntity = PayioActivationBatchEntity;