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

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

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 411x 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, IsOptional, IsUUID, Validate, ValidateIf, ValidateNested } from 'class-validator';
 
import { PlanAssignment, Team } from '@amalia/core/models';
import { TimestampDate } from '@amalia/kernel/api';
import { UpdatePlanAssignmentRequest, UpdatePlanAssignmentsRequest } from '@amalia/payout-definition/plans/types';
 
export class UpdatePlanAssignmentDto implements UpdatePlanAssignmentRequest {
  @ApiProperty()
  @IsUUID('4')
  public readonly id!: PlanAssignment['id'];
 
  @ApiProperty()
  @IsOptional()
  @ValidateIf((_, value) => value !== null)
  @Validate(TimestampDate, { message: 'Invalid effectiveAsOf' })
  public readonly effectiveAsOf?: PlanAssignment['effectiveAsOf'];
 
  @ApiProperty()
  @IsOptional()
  @ValidateIf((_, value) => value !== null)
  @Validate(TimestampDate, { message: 'Invalid effectiveUntil' })
  public readonly effectiveUntil?: PlanAssignment['effectiveUntil'];
 
  @ApiProperty()
  @IsOptional()
  @ValidateIf((_, value) => value !== null)
  @IsUUID('4')
  public readonly mainTeamId?: Team['id'] | null;
}
 
export class UpdatePlanAssignmentsDto implements UpdatePlanAssignmentsRequest {
  @ApiProperty()
  @IsArray()
  @ArrayNotEmpty()
  @ValidateNested({ each: true })
  @Type(() => UpdatePlanAssignmentDto)
  public readonly planAssignments!: UpdatePlanAssignmentDto[];
}