apps/recallassess/recallassess-api/src/api/admin/participant-group/config/participant-group-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 { ParticipantGroupAddDto } from "../dto/participant-group-add.dto";
import { ParticipantGroupDetailDto } from "../dto/participant-group-detail.dto";
import { ParticipantGroupListDto } from "../dto/participant-group-list.dto";
import { ParticipantGroupSaveDto } from "../dto/participant-group-save.dto";
@Injectable()
export class ParticipantGroupConfig extends ModuleConfigBase {
getConfiguration(): ModuleConfig {
const columns: ColumnConfig[] = [
new ColumnConfig({ name: "id", type: ColumnType.Integer }),
new ColumnConfig({ name: "company_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "company.name" }),
new ColumnConfig({ name: "company_name", relationPath: "company.name" }),
new ColumnConfig({ name: "participant_id_created_by", type: ColumnType.Integer }),
new ColumnConfig({ name: "name" }),
new ColumnConfig({ name: "description" }),
new ColumnConfig({ name: "color_code" }),
new ColumnConfig({ name: "participant_count", type: ColumnType.Integer }),
new ColumnConfig({ name: "last_activity", type: ColumnType.DateTime }),
new ColumnConfig({ name: "created_at", type: ColumnType.DateTime }),
new ColumnConfig({ name: "updated_at", type: ColumnType.DateTime }),
new ColumnConfig({ name: "user_name_created" }),
new ColumnConfig({ name: "user_name_updated" }),
];
// user_name_created / user_name_updated are DTO-only (from relation Transform), not Prisma columns — exclude from keyword search
const keywordSearchCols: string[] = [
"id",
"company_id",
"company.name",
"participant_id_created_by",
"name",
"description",
"color_code",
"participant_count",
"last_activity",
"created_at",
"updated_at",
];
return new ModuleConfig({
name: "participant-group",
columns,
keywordSearchCols,
relationObjToIncludeForList: {
company: true,
userUpdatedBy: true,
userCreatedBy: true,
createdBy: true,
},
relationObjToIncludeForDetail: {
company: true,
createdBy: true,
userCreatedBy: true,
userUpdatedBy: true,
participantGroupHistories: true,
},
listDto: ParticipantGroupListDto,
detailDto: ParticipantGroupDetailDto,
addDto: ParticipantGroupAddDto,
saveDto: ParticipantGroupSaveDto,
});
}
}