All files / libs/payout-calculation/statements/shared/src/lib statement-to-compute.ts

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

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                                               
import { type Period } from '@amalia/payout-definition/periods/types';
import { type Plan } from '@amalia/payout-definition/plans/types';
import { type UserContract } from '@amalia/tenants/users/types';

export class StatementToCompute {
  public readonly key: string;

  public constructor(planId?: Plan['id'], periodId?: Period['id'], userId?: UserContract['id']) {
    this.key = StatementToCompute.makeStatementComputeKey(planId, periodId, userId);
  }

  private static makeStatementComputeKey(
    planId?: Plan['id'],
    periodId?: Period['id'],
    userId?: UserContract['id'],
  ): string {
    return [planId ?? '', periodId ?? '', userId ?? ''].join('::');
  }

  public isInCollection(statementsToCompute?: StatementToCompute[]): boolean {
    return !!statementsToCompute?.some((s) => s.key === this.key);
  }
}