File

apps/recallassess/recallassess-api/src/api/admin/promo-code/config/promo-code-config.service.ts

Extends

ModuleConfigBase

Index

Methods

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,
    });
  }
}

results matching ""

    No results matching ""