/** * Do not edit this file it is auto-generated by io-utils / gen-api-models. * See https://github.com/pagopa/io-utils */ /* tslint:disable */ import { Timestamp } from "./Timestamp"; import * as t from "io-ts"; import { withDefault } from "italia-ts-commons/lib/types"; import { IWithinRangeIntegerTag, WithinRangeInteger } from "italia-ts-commons/lib/numbers"; import { PatternString } from "italia-ts-commons/lib/strings"; import { WithinRangeString } from "italia-ts-commons/lib/strings"; import { FiscalCode as FiscalCodeT } from "italia-ts-commons/lib/strings"; /** * Metadata needed to process pagoPA payments. */ // required attributes const MessageContentPayment_dataR = t.interface({ amount: t.union([ WithinRangeInteger<1, 9999999999, IWithinRangeIntegerTag<1, 9999999999>>( 1, 9999999999 ), t.literal(9999999999) ]), notice_number: PatternString("^[0123][0-9]{17}$") }); // optional attributes const MessageContentPayment_dataO = t.partial({ invalid_after_due_date: withDefault(t.boolean, false) }); export const MessageContentPayment_data = t.exact( t.intersection( [MessageContentPayment_dataR, MessageContentPayment_dataO], "MessageContentPayment_data" ) ); export type MessageContentPayment_data = t.TypeOf< typeof MessageContentPayment_data >; /** * Metadata needed to process medical prescriptions. */ // required attributes const MessageContentPrescription_dataR = t.interface({ nre: WithinRangeString(15, 16) }); // optional attributes const MessageContentPrescription_dataO = t.partial({ iup: WithinRangeString(1, 17), prescriber_fiscal_code: FiscalCodeT }); export const MessageContentPrescription_data = t.exact( t.intersection( [MessageContentPrescription_dataR, MessageContentPrescription_dataO], "MessageContentPrescription_data" ) ); export type MessageContentPrescription_data = t.TypeOf< typeof MessageContentPrescription_data >; // required attributes const MessageContentR = t.interface({ subject: WithinRangeString(10, 121), markdown: WithinRangeString(80, 10001) }); // optional attributes const MessageContentO = t.partial({ payment_data: MessageContentPayment_data, prescription_data: MessageContentPrescription_data, due_date: Timestamp }); export const MessageContent = t.exact( t.intersection([MessageContentR, MessageContentO], "MessageContent") ); export type MessageContent = t.TypeOf;