import { Module } from '@nestjs/common';
import { PersonaController } from './persona.controller';
import { PersonaService } from './persona.service';
import { FeatureRegistry } from './features/feature.registry';
import { ChainComposerService } from '../plan/engine/chain-composer.service';
import { ValueFeatureExtractor } from './features/value.feature';
import { TreatmentChainStatusFeatureExtractor } from './features/treatment-chain-status.feature';
import { RecallRiskFeatureExtractor } from './features/recall-risk.feature';
import { DoNotContactStatusFeatureExtractor } from './features/do-not-contact-status.feature';
import { EntitlementStatusFeatureExtractor } from './features/entitlement-status.feature';
import { RfmFeatureExtractor } from './features/rfm.feature';

@Module({
  controllers: [PersonaController],
  providers: [
    PersonaService,
    FeatureRegistry,
    // 无依赖纯函数服务 — 治疗链缺口判定复用它(跟 治疗链面板/召回 同口径)
    ChainComposerService,
    ValueFeatureExtractor,
    TreatmentChainStatusFeatureExtractor,
    RecallRiskFeatureExtractor,
    DoNotContactStatusFeatureExtractor,
    EntitlementStatusFeatureExtractor,
    RfmFeatureExtractor,
  ],
  exports: [PersonaService],
})
export class PersonaModule {}
