All files / libs/payout-definition/challenges/core/src/lib payout-definition-challenges-core.module.ts

0% Statements 0/72
0% Branches 0/1
0% Functions 0/1
0% Lines 0/72

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                                                                                                                                                 
import { Module } from '@nestjs/common';
import { CqrsModule } from '@nestjs/cqrs';
import { TypeOrmModule } from '@nestjs/typeorm';

import { PlansAssignmentsModule } from '@amalia/assignments/plans/core';
import {
  Challenge,
  Company,
  Notification,
  Payment,
  Period,
  PlanAssignment,
  Rule,
  Statement,
} from '@amalia/core/models';
import { QueueModule } from '@amalia/kernel/queue/core';
import { DesignerModule } from '@amalia/payout-definition/designer/core';
import { PeriodsModule } from '@amalia/payout-definition/periods/core';
import { CompaniesModule } from '@amalia/tenants/companies/core';
import { UsersModule } from '@amalia/tenants/users/core';

import { executeChallengesTask } from './handlers';
import {
  FindChallengeByRuleAndPeriodUseCase,
  GetChallengePaymentsUseCase,
  GetChallengeUsersToNotifyUseCase,
  GetLaunchChallengeNotificationsStatusUseCase,
  ScheduleSendChallengeLaunchNotificationUseCase,
} from './use-cases';
import { SendChallengeLaunchNotificationUseCase } from './use-cases/send-challenge-launch-notification/send-challenge-launch-notification.use-case';

export {
  /* Handlers */
  executeChallengesTask,
  /* Use Cases */
  FindChallengeByRuleAndPeriodUseCase,
  GetChallengePaymentsUseCase,
  GetChallengeUsersToNotifyUseCase,
  GetLaunchChallengeNotificationsStatusUseCase,
  ScheduleSendChallengeLaunchNotificationUseCase,
  SendChallengeLaunchNotificationUseCase,
};

@Module({
  imports: [
    TypeOrmModule.forFeature([Challenge, Company, Notification, Payment, Period, PlanAssignment, Rule, Statement]),
    CompaniesModule,
    CqrsModule,
    DesignerModule,
    PeriodsModule,
    PlansAssignmentsModule,
    QueueModule,
    UsersModule,
  ],
  providers: [
    FindChallengeByRuleAndPeriodUseCase,
    GetChallengeUsersToNotifyUseCase,
    GetChallengePaymentsUseCase,
    GetLaunchChallengeNotificationsStatusUseCase,
    ScheduleSendChallengeLaunchNotificationUseCase,
    SendChallengeLaunchNotificationUseCase,
  ],
  exports: [
    FindChallengeByRuleAndPeriodUseCase,
    GetChallengeUsersToNotifyUseCase,
    GetChallengePaymentsUseCase,
    GetLaunchChallengeNotificationsStatusUseCase,
    ScheduleSendChallengeLaunchNotificationUseCase,
    SendChallengeLaunchNotificationUseCase,
  ],
})
export class ChallengesCoreModule {}