Files
ulitka/src/modules/issue/presentation/graphql/create-issue.input.ts
T
vadim c5691da2b8
Gitea Actions / Deploy (push) Successful in 32s
issue type
2026-10-18 20:37:58 +03:00

50 lines
942 B
TypeScript

import { Field, InputType, Int } from '@nestjs/graphql';
import { IsDate, IsIn, IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';
import { ISSUE_TYPE_ALIASES } from '../../domain/value-objects/issue-type.vo.js';
@InputType()
export class CreateIssueInput {
@Field()
@IsString()
@IsNotEmpty()
key: string;
@Field()
@IsString()
@IsNotEmpty()
@MaxLength(200)
title: string;
@Field()
@IsString()
@IsNotEmpty()
projectId: string;
@Field({ nullable: true })
@IsOptional()
@IsString()
content?: string;
@Field(() => Int, { nullable: true })
@IsOptional()
@IsInt()
@Min(0)
@Max(4)
priority?: number;
@Field({ nullable: true })
@IsOptional()
@IsIn(ISSUE_TYPE_ALIASES)
type?: string;
@Field({ nullable: true })
@IsOptional()
@IsString()
assignee?: string;
@Field(() => Date, { nullable: true })
@IsOptional()
@IsDate()
dueDate?: Date;
}