import { IsNotEmpty, IsObject, IsOptional, IsString } from 'class-validator' import { ReceiptInfo, PendingRenewalReceiptInfo, AppleEventType } from '../../domain/types' export type Environment = 'Sandbox' | 'PROD' export type UnifiedReceiptInfo = { environment: Environment latest_receipt: string latest_receipt_info: Array pending_renewal_info: Array status: number } export class AppleEventParams { @IsNotEmpty() @IsString() environment: Environment @IsNotEmpty() @IsString() notification_type: AppleEventType @IsNotEmpty() @IsObject() unified_receipt: UnifiedReceiptInfo @IsOptional() @IsString() auto_renew_adam_id: string @IsNotEmpty() @IsString() auto_renew_product_id: string @IsOptional() @IsString() auto_renew_status: 'true' | 'false' @IsOptional() @IsString() auto_renew_status_change_date: string @IsOptional() @IsString() auto_renew_status_change_date_ms: string @IsOptional() @IsString() auto_renew_status_change_date_pst: string @IsOptional() @IsString() expiration_intent: number @IsOptional() @IsString() password: string @IsOptional() @IsString() bid: string @IsOptional() @IsString() bvrs: string }