import { Timestamp } from "../types";

export namespace event {
    type EventType =
        | "PAYIN_NORMAL_CREATED"
        | "PAYIN_NORMAL_SUCCEEDED"
        | "PAYIN_NORMAL_FAILED"
        | "PAYOUT_NORMAL_CREATED"
        | "PAYOUT_NORMAL_SUCCEEDED"
        | "PAYOUT_NORMAL_FAILED"
        | "TRANSFER_NORMAL_CREATED"
        | "TRANSFER_NORMAL_SUCCEEDED"
        | "TRANSFER_NORMAL_FAILED"
        | "PAYIN_REFUND_CREATED"
        | "PAYIN_REFUND_SUCCEEDED"
        | "PAYIN_REFUND_FAILED"
        | "PAYOUT_REFUND_CREATED"
        | "PAYOUT_REFUND_SUCCEEDED"
        | "PAYOUT_REFUND_FAILED"
        | "INSTANT_PAYOUT_SUCCEEDED"
        | "INSTANT_PAYOUT_FALLBACKED"
        | "TRANSFER_REFUND_CREATED"
        | "TRANSFER_REFUND_SUCCEEDED"
        | "TRANSFER_REFUND_FAILED"
        | "KYC_CREATED"
        | "KYC_OUTDATED"
        | "KYC_VALIDATION_ASKED"
        | "KYC_SUCCEEDED"
        | "KYC_FAILED"
        | "PAYIN_REPUDIATION_CREATED"
        | "PAYIN_REPUDIATION_SUCCEEDED"
        | "PAYIN_REPUDIATION_FAILED"
        | "DISPUTE_DOCUMENT_CREATED"
        | "DISPUTE_DOCUMENT_VALIDATION_ASKED"
        | "DISPUTE_DOCUMENT_SUCCEEDED"
        | "DISPUTE_DOCUMENT_FAILED"
        | "DISPUTE_CREATED"
        | "DISPUTE_SUBMITTED"
        | "DISPUTE_ACTION_REQUIRED"
        | "DISPUTE_FURTHER_ACTION_REQUIRED"
        | "DISPUTE_CLOSED"
        | "DISPUTE_SENT_TO_BANK"
        | "TRANSFER_SETTLEMENT_CREATED"
        | "TRANSFER_SETTLEMENT_SUCCEEDED"
        | "TRANSFER_SETTLEMENT_FAILED"
        | "MANDATE_CREATED"
        | "MANDATE_FAILED"
        | "MANDATE_ACTIVATED"
        | "MANDATE_SUBMITTED"
        | "MANDATE_EXPIRED"
        | "PREAUTHORIZATION_PAYMENT_WAITING"
        | "PREAUTHORIZATION_PAYMENT_EXPIRED"
        | "PREAUTHORIZATION_PAYMENT_CANCELED"
        | "PREAUTHORIZATION_PAYMENT_VALIDATED"
        | "UBO_DECLARATION_CREATED"
        | "UBO_DECLARATION_VALIDATION_ASKED"
        | "UBO_DECLARATION_REFUSED"
        | "UBO_DECLARATION_VALIDATED"
        | "UBO_DECLARATION_INCOMPLETE"
        | "USER_KYC_REGULAR"
        | "USER_KYC_LIGHT"
        | "USER_KYC_RENEWAL_REQUIRED"
        | "USER_KYC_RENEWED"
        | "USER_INFLOWS_BLOCKED"
        | "USER_INFLOWS_UNBLOCKED"
        | "USER_OUTFLOWS_BLOCKED"
        | "USER_OUTFLOWS_UNBLOCKED"
        | "PREAUTHORIZATION_CREATED"
        | "PREAUTHORIZATION_SUCCEEDED"
        | "PREAUTHORIZATION_FAILED"
        | "DEPOSIT_PREAUTHORIZATION_CREATED"
        | "DEPOSIT_PREAUTHORIZATION_FAILED"
        | "DEPOSIT_PREAUTHORIZATION_PAYMENT_WAITING"
        | "DEPOSIT_PREAUTHORIZATION_PAYMENT_EXPIRED"
        | "DEPOSIT_PREAUTHORIZATION_PAYMENT_CANCEL_REQUEST"
        | "DEPOSIT_PREAUTHORIZATION_PAYMENT_CANCELED"
        | "DEPOSIT_PREAUTHORIZATION_PAYMENT_VALIDATED"
        | "CARD_VALIDATION_CREATED"
        | "CARD_VALIDATION_SUCCEEDED"
        | "CARD_VALIDATION_FAILED"
        | "VIRTUAL_ACCOUNT_ACTIVE"
        | "VIRTUAL_ACCOUNT_BLOCKED"
        | "VIRTUAL_ACCOUNT_CLOSED"
        | "VIRTUAL_ACCOUNT_FAILED"
        | "PAYIN_NORMAL_PROCESSING_STATUS_PENDING_SUCCEEDED"
        | "IDENTITY_VERIFICATION_VALIDATED"
        | "IDENTITY_VERIFICATION_FAILED"
        | "IDENTITY_VERIFICATION_INCONCLUSIVE"
        | "IDENTITY_VERIFICATION_OUTDATED"
        | "IDENTITY_VERIFICATION_TIMEOUT"
        | "IDENTITY_VERIFICATION_PENDING"
        | "RECIPIENT_ACTIVE"
        | "RECIPIENT_CANCELED"
        | "RECIPIENT_DEACTIVATED"
        | "USER_ACCOUNT_VALIDATION_ASKED"
        | "USER_ACCOUNT_ACTIVATED"
        | "USER_ACCOUNT_CLOSED"
        | "USER_CATEGORY_UPDATED_TO_OWNER"
        | "USER_CATEGORY_UPDATED_TO_PAYER"
        | "USER_CATEGORY_UPDATED_TO_PLATFORM"
        | "INSTANT_CONVERSION_CREATED"
        | "INSTANT_CONVERSION_SUCCEEDED"
        | "INSTANT_CONVERSION_FAILED"
        | "QUOTED_CONVERSION_CREATED"
        | "QUOTED_CONVERSION_SUCCEEDED"
        | "QUOTED_CONVERSION_FAILED"
        | "SCA_ENROLLMENT_SUCCEEDED"
        | "SCA_ENROLLMENT_FAILED"
        | "SCA_ENROLLMENT_EXPIRED"
        | "SCA_CONTACT_INFORMATION_UPDATE_CONSENT_GIVEN"
        | "SCA_CONTACT_INFORMATION_UPDATE_CONSENT_REVOKED"
        | "SCA_TRANSFER_CONSENT_GIVEN"
        | "SCA_TRANSFER_CONSENT_REVOKED"
        | "SCA_RECIPIENT_REGISTRATION_CONSENT_GIVEN"
        | "SCA_RECIPIENT_REGISTRATION_CONSENT_REVOKED"
        | "SCA_VIEW_ACCOUNT_INFORMATION_CONSENT_GIVEN"
        | "SCA_VIEW_ACCOUNT_INFORMATION_CONSENT_REVOKED"
        | "SCA_EMAIL_VERIFIED"
        | "SCA_PHONE_NUMBER_VERIFIED"
        | "REPORT_GENERATED"
        | "REPORT_FAILED"
        | "INTENT_AUTHORIZED"
        | "INTENT_CAPTURED"
        | "INTENT_REFUNDED"
        | "INTENT_REFUND_REVERSED"
        | "INTENT_DISPUTE_CREATED"
        | "INTENT_DISPUTE_DEFENDED"
        | "INTENT_DISPUTE_WON"
        | "INTENT_DISPUTE_LOST"
        | "INTENT_SETTLED_NOT_PAID"
        | "INTENT_PAID"
        | "SPLIT_CREATED"
        | "SPLIT_PENDING_FUNDS_RECEPTION"
        | "SPLIT_AVAILABLE"
        | "SPLIT_REJECTED"
        | "SPLIT_REVERSED"

    interface EventData {
        /**
         * The ID of whatever the event is
         */
        ResourceId: string;

        /**
         * When the event happened
         */
        Date: Timestamp;

        /**
         * The event type
         */
        EventType: EventType;
    }
}
