All files / libs/assignments/plans/core/src/legacy/dto upsert-plan-assignments.dto.ts

100% Statements 41/41
100% Branches 4/4
100% Functions 0/0
100% Lines 41/41

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 421x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { ArrayNotEmpty, IsArray, IsUUID, Validate, ValidateIf, ValidateNested } from 'class-validator';
 
import { Plan, Team, User } from '@amalia/core/models';
import { TimestampDate } from '@amalia/kernel/api';
import { UpsertPlanAssignmentsRequest, type UpsertPlanAssignmentRequest } from '@amalia/payout-definition/plans/types';
 
export class UpsertPlanAssignmentDto implements UpsertPlanAssignmentRequest {
  @ApiProperty()
  @IsUUID('4')
  public readonly userId!: User['id'];
 
  @ApiProperty()
  @IsUUID('4')
  public readonly planId!: Plan['id'];
 
  @ApiProperty()
  @ValidateIf((_, value) => value !== null)
  @Validate(TimestampDate, { message: 'Invalid effectiveAsOf' })
  public readonly effectiveAsOf!: number | null;
 
  @ApiProperty()
  @ValidateIf((_, value) => value !== null)
  @Validate(TimestampDate, { message: 'Invalid effectiveUntil' })
  public readonly effectiveUntil!: number | null;
 
  @ApiProperty()
  @ValidateIf((_, value) => value !== null)
  @IsUUID('4')
  public readonly mainTeamId!: Team['id'] | null;
}
 
export class UpsertPlanAssignmentsDto implements UpsertPlanAssignmentsRequest {
  @ApiProperty()
  @IsArray()
  @ArrayNotEmpty()
  @ValidateNested({ each: true })
  @Type(() => UpsertPlanAssignmentDto)
  public readonly planAssignments!: UpsertPlanAssignmentDto[];
}