Files
CRM_Montzar/apps/api/src/teams/dto.ts
T

61 lines
962 B
TypeScript

import {
IsArray,
IsIn,
IsOptional,
IsString,
MaxLength,
MinLength,
ValidateNested,
} from 'class-validator';
import { Type } from 'class-transformer';
export class CreateTeamDto {
@IsString()
@MinLength(2)
@MaxLength(80)
name!: string;
@IsOptional()
@IsString()
@MaxLength(300)
description?: string;
@IsOptional()
@IsArray()
@IsString({ each: true })
memberIds?: string[];
@IsOptional()
@IsArray()
@IsString({ each: true })
managerIds?: string[];
}
export class UpdateTeamDto {
@IsOptional()
@IsString()
@MinLength(2)
@MaxLength(80)
name?: string;
@IsOptional()
@IsString()
@MaxLength(300)
description?: string;
}
class TeamMemberInputDto {
@IsString()
userId!: string;
@IsIn(['member', 'manager'])
role!: 'member' | 'manager';
}
export class SetTeamMembersDto {
@IsArray()
@ValidateNested({ each: true })
@Type(() => TeamMemberInputDto)
members!: TeamMemberInputDto[];
}