@@ -3,10 +3,15 @@ import {
33 CreateUpdateLetterProperties ,
44 CreateUpdateTemplate ,
55 EmailProperties ,
6+ Language ,
7+ LetterFiles ,
68 LetterProperties ,
9+ LetterType ,
710 NhsAppProperties ,
811 SmsProperties ,
912 TemplateDto ,
13+ TemplateStatus ,
14+ TemplateType ,
1015} from 'nhs-notify-backend-client' ;
1116
1217export type FormId =
@@ -28,39 +33,43 @@ export type FormState = {
2833 validationError ?: FormErrorState ;
2934} ;
3035
31- type NhsAppType = {
36+ type NhsAppTemplateType = {
3237 templateType : 'NHS_APP' ;
3338} ;
3439
35- type EmailType = {
40+ type EmailTemplateType = {
3641 templateType : 'EMAIL' ;
3742} ;
3843
39- type SmsType = {
44+ type SmsTemplateType = {
4045 templateType : 'SMS' ;
4146} ;
4247
43- type LetterType = {
48+ type LetterTemplateType = {
4449 templateType : 'LETTER' ;
4550} ;
4651
4752export type CreateUpdateNHSAppTemplate = CreateUpdateTemplate &
4853 NhsAppProperties &
49- NhsAppType ;
54+ NhsAppTemplateType ;
5055export type CreateUpdateEmailTemplate = CreateUpdateTemplate &
5156 EmailProperties &
52- EmailType ;
57+ EmailTemplateType ;
5358export type CreateUpdateSMSTemplate = CreateUpdateTemplate &
5459 SmsProperties &
55- SmsType ;
60+ SmsTemplateType ;
5661export type CreateUpdateLetterTemplate = CreateUpdateTemplate &
5762 CreateUpdateLetterProperties &
58- LetterType ;
63+ LetterTemplateType ;
5964
60- export type NHSAppTemplate = TemplateDto & NhsAppProperties & NhsAppType ;
61- export type EmailTemplate = TemplateDto & EmailProperties & EmailType ;
62- export type SMSTemplate = TemplateDto & SmsProperties & SmsType ;
63- export type LetterTemplate = TemplateDto & LetterProperties & LetterType ;
65+ export type NHSAppTemplate = TemplateDto &
66+ NhsAppProperties &
67+ NhsAppTemplateType ;
68+ export type EmailTemplate = TemplateDto & EmailProperties & EmailTemplateType ;
69+ export type SMSTemplate = TemplateDto & SmsProperties & SmsTemplateType ;
70+ export type LetterTemplate = TemplateDto &
71+ LetterProperties &
72+ LetterTemplateType ;
6473
6574export type TemplateFormState < T = CreateUpdateTemplate | TemplateDto > =
6675 FormState & T ;
@@ -102,3 +111,28 @@ export type GuardDutyMalwareScanStatusPassed = Extract<
102111 GuardDutyMalwareScanStatus ,
103112 'NO_THREATS_FOUND'
104113> ;
114+
115+ export type MergedTemplate = {
116+ createdAt : string ;
117+ files ?: LetterFiles ;
118+ id : string ;
119+ language ?: Language ;
120+ letterType ?: LetterType ;
121+ sftpSendLockTime ?: number ;
122+ message ?: string ;
123+ name : string ;
124+ subject ?: string ;
125+ templateStatus : TemplateStatus ;
126+ templateType : TemplateType ;
127+ updatedAt : string ;
128+ // owner: string;
129+ // version: number;
130+ } ;
131+
132+ type AssertExtendsMerged < T extends MergedTemplate > = T ;
133+
134+ // assigned only for the purpose of the assertion
135+ type _Asserted = AssertExtendsMerged < LetterTemplate > &
136+ AssertExtendsMerged < NHSAppTemplate > &
137+ AssertExtendsMerged < EmailTemplate > &
138+ AssertExtendsMerged < SMSTemplate > ;
0 commit comments