"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Tenant = exports.RATE_LIMITS = exports.QUOTA_LIMITS = exports.TenantRole = exports.TenantPlan = void 0; const typeorm_1 = require("typeorm"); const api_key_entity_1 = require("./api-key.entity"); var TenantPlan; (function (TenantPlan) { TenantPlan["FREE"] = "FREE"; TenantPlan["STARTER"] = "STARTER"; TenantPlan["PRO"] = "PRO"; TenantPlan["ENTERPRISE"] = "ENTERPRISE"; })(TenantPlan || (exports.TenantPlan = TenantPlan = {})); var TenantRole; (function (TenantRole) { TenantRole["USER"] = "USER"; TenantRole["ADMIN"] = "ADMIN"; })(TenantRole || (exports.TenantRole = TenantRole = {})); exports.QUOTA_LIMITS = { [TenantPlan.FREE]: 8000, [TenantPlan.STARTER]: 25000, [TenantPlan.PRO]: 100000, [TenantPlan.ENTERPRISE]: 500000, }; exports.RATE_LIMITS = { [TenantPlan.FREE]: 5, [TenantPlan.STARTER]: 100, [TenantPlan.PRO]: 500, [TenantPlan.ENTERPRISE]: 50000, }; let Tenant = class Tenant { id; name; email; plan; firebaseUid; role; photoUrl; isActive; createdAt; updatedAt; apiKeys; }; exports.Tenant = Tenant; __decorate([ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'), __metadata("design:type", String) ], Tenant.prototype, "id", void 0); __decorate([ (0, typeorm_1.Column)(), __metadata("design:type", String) ], Tenant.prototype, "name", void 0); __decorate([ (0, typeorm_1.Column)({ unique: true }), __metadata("design:type", String) ], Tenant.prototype, "email", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'enum', enum: TenantPlan, default: TenantPlan.FREE, }), __metadata("design:type", String) ], Tenant.prototype, "plan", void 0); __decorate([ (0, typeorm_1.Column)({ nullable: true, unique: true }), __metadata("design:type", String) ], Tenant.prototype, "firebaseUid", void 0); __decorate([ (0, typeorm_1.Column)({ type: 'enum', enum: TenantRole, default: TenantRole.USER, }), __metadata("design:type", String) ], Tenant.prototype, "role", void 0); __decorate([ (0, typeorm_1.Column)({ nullable: true }), __metadata("design:type", String) ], Tenant.prototype, "photoUrl", void 0); __decorate([ (0, typeorm_1.Column)({ default: true }), __metadata("design:type", Boolean) ], Tenant.prototype, "isActive", void 0); __decorate([ (0, typeorm_1.CreateDateColumn)(), __metadata("design:type", Date) ], Tenant.prototype, "createdAt", void 0); __decorate([ (0, typeorm_1.UpdateDateColumn)(), __metadata("design:type", Date) ], Tenant.prototype, "updatedAt", void 0); __decorate([ (0, typeorm_1.OneToMany)(() => api_key_entity_1.ApiKey, (apiKey) => apiKey.tenant), __metadata("design:type", Array) ], Tenant.prototype, "apiKeys", void 0); exports.Tenant = Tenant = __decorate([ (0, typeorm_1.Entity)('tenants') ], Tenant); //# sourceMappingURL=tenant.entity.js.map