38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.LicenseService = void 0;
|
|
const Result_1 = require("../../../shared/domain/Result");
|
|
const License_1 = require("../domain/entities/License");
|
|
class LicenseService {
|
|
constructor(validator) {
|
|
this.validator = validator;
|
|
this.currentLicense = License_1.License.createFree();
|
|
}
|
|
getCurrentLicense() {
|
|
return this.currentLicense;
|
|
}
|
|
async activate(licenseKey) {
|
|
const result = await this.validator.validate(licenseKey);
|
|
if ((0, Result_1.isErr)(result))
|
|
return result;
|
|
this.currentLicense = result.value;
|
|
return result;
|
|
}
|
|
hasFeature(feature) {
|
|
return this.currentLicense.hasFeature(feature);
|
|
}
|
|
getStatus() {
|
|
const license = this.currentLicense;
|
|
return {
|
|
plan: license.plan.toString(),
|
|
organizationName: license.organizationName,
|
|
email: license.email,
|
|
issuedAt: license.issuedAt.toISOString(),
|
|
expiresAt: license.expiresAt?.toISOString() ?? null,
|
|
isValid: license.isValid,
|
|
features: license.getEntitlements().toArray(),
|
|
};
|
|
}
|
|
}
|
|
exports.LicenseService = LicenseService;
|