You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

105 lines
1.6 KiB

import { K1ImportStatus, KDocumentStatus } from '@prisma/client';
import {
IsArray,
IsBoolean,
IsEnum,
IsInt,
IsNumber,
IsObject,
IsOptional,
IsString,
Min,
ValidateNested
} from 'class-validator';
import { Type } from 'class-transformer';
export class CreateK1ImportDto {
@IsString()
partnershipId: string;
@IsInt()
@Min(1900)
taxYear: number;
}
export class K1ExtractedFieldDto {
@IsString()
boxNumber: string;
@IsString()
label: string;
@IsOptional()
@IsString()
customLabel?: string;
@IsString()
rawValue: string;
@IsOptional()
@IsNumber()
numericValue?: number;
@IsNumber()
confidence: number;
@IsString()
confidenceLevel: 'HIGH' | 'MEDIUM' | 'LOW';
@IsBoolean()
isUserEdited: boolean;
@IsBoolean()
isReviewed: boolean;
}
export class K1UnmappedItemDto {
@IsString()
rawLabel: string;
@IsString()
rawValue: string;
@IsOptional()
@IsNumber()
numericValue?: number;
@IsNumber()
confidence: number;
@IsInt()
pageNumber: number;
@IsString()
resolution: 'assigned' | 'discarded';
@IsOptional()
@IsString()
assignedBoxNumber?: string;
}
export class VerifyK1ImportDto {
@IsInt()
@Min(1900)
taxYear: number;
@IsArray()
@ValidateNested({ each: true })
@Type(() => K1ExtractedFieldDto)
fields: K1ExtractedFieldDto[];
@IsOptional()
@IsArray()
@ValidateNested({ each: true })
@Type(() => K1UnmappedItemDto)
unmappedItems?: K1UnmappedItemDto[];
}
export class ConfirmK1ImportDto {
@IsEnum(KDocumentStatus)
filingStatus: KDocumentStatus;
@IsOptional()
@IsString()
existingKDocumentAction?: 'UPDATE' | 'CREATE_NEW';
}