apps/recallassess/recallassess-api/src/api/admin/promo-code/config/promo-code-config.service.ts
ModuleConfigBase
Methods |
| getConfiguration |
getConfiguration()
|
|
Returns :
ModuleConfig
|
import { ColumnConfig, ColumnType } from "@bish-nest/core/app-config/column-config.class";
import { ModuleConfig } from "@bish-nest/core/app-config/module-config.class";
import { ModuleConfigBase } from "@bish-nest/core/app-config/module-config-base.class";
import { Injectable } from "@nestjs/common";
import { PromoCodeAddDto } from "../dto/promo-code-add.dto";
import { PromoCodeDetailDto } from "../dto/promo-code-detail.dto";
import { PromoCodeListDto } from "../dto/promo-code-list.dto";
import { PromoCodeSaveDto } from "../dto/promo-code-save.dto";
@Injectable()
export class PromoCodeConfig extends ModuleConfigBase {
getConfiguration(): ModuleConfig {
const columns: ColumnConfig[] = [
new ColumnConfig({ name: "id", type: ColumnType.Integer }),
new ColumnConfig({ name: "promo_code" }),
new ColumnConfig({ name: "title" }),
new ColumnConfig({ name: "description" }),
new ColumnConfig({ name: "discount_percentage", type: ColumnType.Float }),
new ColumnConfig({ name: "valid_from", type: ColumnType.DateTime }),
new ColumnConfig({ name: "valid_until", type: ColumnType.DateTime }),
new ColumnConfig({ name: "usage_limit", type: ColumnType.Integer }),
new ColumnConfig({ name: "usage_count", type: ColumnType.Integer }),
new ColumnConfig({ name: "is_active", type: ColumnType.Boolean }),
new ColumnConfig({ name: "is_currently_valid", type: ColumnType.Boolean }),
new ColumnConfig({ name: "usage_percentage", type: ColumnType.Float }),
new ColumnConfig({ name: "remaining_uses", type: ColumnType.Integer }),
new ColumnConfig({ name: "status_text" }),
new ColumnConfig({ name: "created_at", type: ColumnType.DateTime }),
new ColumnConfig({ name: "updated_at", type: ColumnType.DateTime }),
];
return new ModuleConfig({
name: "promo-code",
columns,
keywordSearchCols: [
"id",
"promo_code",
"title",
"description",
"discount_percentage",
"valid_from",
"valid_until",
"usage_limit",
"usage_count",
"is_active",
// Computed list column; mapped to real DB predicates in BNestDataUtilService
"status_text",
"created_at",
],
mediaArr: [],
relationObjToIncludeForDetail: {
userCreatedBy: true,
userUpdatedBy: true,
},
listDto: PromoCodeListDto,
detailDto: PromoCodeDetailDto,
addDto: PromoCodeAddDto,
saveDto: PromoCodeSaveDto,
});
}
}