/* * Copyright (C) 2023 Expedia, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { Amount } from './Amount' import { AmountMapper } from './AmountMapper' import { JsonObject, JsonProperty } from 'typescript-json-serializer' /** * Details related to the chargeback. */ @JsonObject({ constructorParams: [{}] }) export class ChargebackDetail { /** * Identifies the chargeback status. Possible values are: -`RECEIVED` - The chargeback was received. -`REVERSAL` - The chargeback reversal was received. */ @JsonProperty({ name: 'chargeback_status' }) chargebackStatus: ChargebackDetailChargebackStatusEnum /** * Reason for chargeback which can be `Fraud` or `Non Fraud`. */ @JsonProperty({ name: 'chargeback_reason' }) chargebackReason: ChargebackDetailChargebackReasonEnum @JsonProperty({ name: 'chargeback_amount', type: (property) => AmountMapper.getType(property), }) chargebackAmount: Amount /** * Unique code provided by the acquiring bank for the category of fraud. */ @JsonProperty({ name: 'bank_reason_code' }) bankReasonCode?: string /** * Date and time when the chargeback was reported to the partner, in ISO-8601 date and time format `yyyy-MM-ddTHH:mm:ss.SSSZ`. */ @JsonProperty({ name: 'chargeback_reported_date_time' }) chargebackReportedDateTime?: Date public constructor(chargebackDetail: ChargebackDetailProperties) { this.chargebackStatus = chargebackDetail.chargebackStatus this.chargebackReason = chargebackDetail.chargebackReason this.chargebackAmount = chargebackDetail.chargebackAmount this.bankReasonCode = chargebackDetail.bankReasonCode this.chargebackReportedDateTime = chargebackDetail.chargebackReportedDateTime } } export type ChargebackDetailChargebackStatusEnum = 'RECEIVED' | 'REVERSAL' export type ChargebackDetailChargebackReasonEnum = 'FRAUD' | 'NON_FRAUD' export interface ChargebackDetailProperties { chargebackStatus: ChargebackDetailChargebackStatusEnum chargebackReason: ChargebackDetailChargebackReasonEnum chargebackAmount: Amount bankReasonCode?: string chargebackReportedDateTime?: Date }