30 lines
1.6 KiB
JavaScript
30 lines
1.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.AddMaxOrganizationalDecksToOrganization1692712800000 = void 0;
|
|
const typeorm_1 = require("typeorm");
|
|
class AddMaxOrganizationalDecksToOrganization1692712800000 {
|
|
constructor() {
|
|
this.name = 'AddMaxOrganizationalDecksToOrganization1692712800000';
|
|
}
|
|
async up(queryRunner) {
|
|
// Add maxOrganizationalDecks column to Organizations table
|
|
await queryRunner.addColumn('Organizations', new typeorm_1.TableColumn({
|
|
name: 'maxOrganizationalDecks',
|
|
type: 'int',
|
|
isNullable: true, // No default - set by admin
|
|
comment: 'Maximum number of organizational decks a premium user can create in this organization'
|
|
}));
|
|
// Add performance indexes for deck filtering queries
|
|
await queryRunner.query(`CREATE INDEX "IDX_DECK_USER_STATE_CTYPE" ON "Decks" ("user_id", "state", "ctype")`);
|
|
await queryRunner.query(`CREATE INDEX "IDX_DECK_ORG_CTYPE_STATE" ON "Decks" ("organization_id", "ctype", "state")`);
|
|
}
|
|
async down(queryRunner) {
|
|
// Drop indexes
|
|
await queryRunner.query(`DROP INDEX "IDX_DECK_ORG_CTYPE_STATE"`);
|
|
await queryRunner.query(`DROP INDEX "IDX_DECK_USER_STATE_CTYPE"`);
|
|
// Remove maxOrganizationalDecks column
|
|
await queryRunner.dropColumn('Organizations', 'maxOrganizationalDecks');
|
|
}
|
|
}
|
|
exports.AddMaxOrganizationalDecksToOrganization1692712800000 = AddMaxOrganizationalDecksToOrganization1692712800000;
|
|
//# sourceMappingURL=AddMaxOrganizationalDecksToOrganization.js.map
|