1
1
import { Field , InputType , ObjectType } from '@nestjs/graphql' ;
2
+ import { entries } from '@seedcompany/common' ;
2
3
import { Type } from 'class-transformer' ;
3
4
import { ValidateNested } from 'class-validator' ;
4
5
import { stripIndent } from 'common-tags' ;
5
- import { keys as keysOf } from 'ts-transformer-keys' ;
6
- import { CalendarDate , DateField , ID , IdField } from '~/common' ;
6
+ import { CalendarDate , DataObject , DateField , ID , IdField } from '~/common' ;
7
7
import { ChangesetIdField } from '../../changeset' ;
8
8
import { CreateDefinedFileVersionInput } from '../../file/dto' ;
9
9
import { LanguageMilestone } from '../../language/dto' ;
@@ -16,7 +16,7 @@ import { EngagementStatus } from './status.enum';
16
16
@InputType ( {
17
17
isAbstract : true ,
18
18
} )
19
- export abstract class CreateEngagement {
19
+ export abstract class CreateEngagement extends DataObject {
20
20
@IdField ( )
21
21
readonly projectId : ID ;
22
22
@@ -37,8 +37,11 @@ export abstract class CreateEngagement {
37
37
}
38
38
39
39
@InputType ( )
40
- export abstract class CreateLanguageEngagement extends CreateEngagement {
41
- static readonly Props = keysOf < CreateLanguageEngagement > ( ) ;
40
+ export class CreateLanguageEngagement extends CreateEngagement {
41
+ // Warning: this only works if not doing inheritance type mapping
42
+ static readonly Props = entries (
43
+ CreateLanguageEngagement . defaultValue ( CreateLanguageEngagement ) ,
44
+ ) . map ( ( [ k ] ) => k ) ;
42
45
43
46
@IdField ( )
44
47
readonly languageId : ID ;
@@ -81,8 +84,11 @@ export abstract class CreateLanguageEngagement extends CreateEngagement {
81
84
}
82
85
83
86
@InputType ( )
84
- export abstract class CreateInternshipEngagement extends CreateEngagement {
85
- static readonly Props = keysOf < CreateInternshipEngagement > ( ) ;
87
+ export class CreateInternshipEngagement extends CreateEngagement {
88
+ // Warning: this only works if not doing inheritance type mapping
89
+ static readonly Props = entries (
90
+ CreateInternshipEngagement . defaultValue ( CreateInternshipEngagement ) ,
91
+ ) . map ( ( [ k ] ) => k ) ;
86
92
87
93
@IdField ( )
88
94
readonly internId : ID ;
0 commit comments