1
- import { Field , InputType , ObjectType } from '@nestjs/graphql' ;
1
+ import { InputType , ObjectType } from '@nestjs/graphql' ;
2
2
import { Type } from 'class-transformer' ;
3
3
import { ValidateNested } from 'class-validator' ;
4
4
import {
5
5
DateFilter ,
6
6
FilterField ,
7
7
ID ,
8
+ ListField ,
9
+ OptionalField ,
8
10
PaginatedList ,
9
11
SecuredList ,
10
12
SortablePaginationInput ,
@@ -26,30 +28,28 @@ import { EngagementStatus } from './status.enum';
26
28
27
29
@InputType ( )
28
30
export abstract class EngagementFilters {
29
- @Field ( {
31
+ @OptionalField ( {
30
32
description : 'Only engagements matching this type' ,
31
- nullable : true ,
32
33
} )
33
34
readonly type ?: 'language' | 'internship' ;
34
35
35
- @Field ( {
36
- nullable : true ,
36
+ @OptionalField ( {
37
37
description :
38
38
'Only engagements whose project or engaged entity (language / user) name match' ,
39
39
} )
40
40
readonly name ?: string ;
41
41
42
- @Field ( ( ) => [ EngagementStatus ] , {
43
- nullable : true ,
42
+ @ListField ( ( ) => EngagementStatus , {
43
+ optional : true ,
44
+ empty : 'omit' ,
44
45
} )
45
46
readonly status ?: readonly EngagementStatus [ ] ;
46
47
47
48
readonly projectId ?: ID ;
48
49
@FilterField ( ( ) => ProjectFilters )
49
50
readonly project ?: ProjectFilters & { } ;
50
51
51
- @Field ( {
52
- nullable : true ,
52
+ @OptionalField ( {
53
53
description :
54
54
'Only engagements whose engaged entity (language / user) name match' ,
55
55
} )
@@ -64,26 +64,26 @@ export abstract class EngagementFilters {
64
64
65
65
readonly partnerId ?: ID < 'Partner' > ;
66
66
67
- @Field ( {
68
- nullable : true ,
69
- } )
67
+ @OptionalField ( )
70
68
@Type ( ( ) => DateFilter )
71
69
@ValidateNested ( )
72
70
readonly startDate ?: DateFilter ;
73
71
74
- @Field ( {
75
- nullable : true ,
76
- } )
72
+ @OptionalField ( )
77
73
@Type ( ( ) => DateFilter )
78
74
@ValidateNested ( )
79
75
readonly endDate ?: DateFilter ;
80
76
81
- @Field ( ( ) => [ LanguageMilestone ] , {
82
- nullable : true ,
77
+ @ListField ( ( ) => LanguageMilestone , {
78
+ optional : true ,
79
+ empty : 'omit' ,
83
80
} )
84
81
readonly milestoneReached ?: readonly LanguageMilestone [ ] ;
85
82
86
- @Field ( ( ) => [ AIAssistedTranslation ] , { nullable : true } )
83
+ @ListField ( ( ) => AIAssistedTranslation , {
84
+ optional : true ,
85
+ empty : 'omit' ,
86
+ } )
87
87
readonly usingAIAssistedTranslation ?: readonly AIAssistedTranslation [ ] ;
88
88
}
89
89
0 commit comments