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

100% Statements 42/42
100% Branches 0/0
100% Functions 0/0
100% Lines 42/42

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 431x 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 1x  
import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { ArrayNotEmpty, IsArray, IsOptional, IsString, ValidateNested } from 'class-validator';
 
import { Plan, Team, User } from '@amalia/core/models';
import { CsvPlanAssignmentRow, ValidatePlanAssignmentsCsvRequest } from '@amalia/payout-definition/plans/types';
 
export class CsvPlanAssignmentRowDto implements CsvPlanAssignmentRow {
  @ApiProperty()
  @IsString()
  @IsOptional()
  public readonly userEmail?: User['email'];
 
  @ApiProperty()
  @IsString()
  @IsOptional()
  public readonly planName?: Plan['name'];
 
  @ApiProperty()
  @IsString()
  @IsOptional()
  public readonly assignmentStartDate?: string; // YYYY-MM-DD
 
  @ApiProperty()
  @IsString()
  @IsOptional()
  public readonly assignmentEndDate?: string; // YYYY-MM-DD
 
  @ApiProperty()
  @IsString()
  @IsOptional()
  public readonly primaryTeam?: Team['name'];
}
 
export class ValidatePlanAssignmentsCsvDto implements ValidatePlanAssignmentsCsvRequest {
  @ApiProperty()
  @IsArray()
  @ArrayNotEmpty()
  @ValidateNested({ each: true })
  @Type(() => CsvPlanAssignmentRowDto)
  public readonly csvRows!: CsvPlanAssignmentRowDto[];
}