/* tslint:disable */
/* eslint-disable */
/**
 * Paystack
 * The OpenAPI specification of the Paystack API that merchants and developers can harness to build financial solutions in Africa.
 *
 * The version of the Paystack Node library: 1.0.0
 * Contact: techsupport@paystack.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { exists, mapValues } from '../runtime';
/**
 * 
 * @export
 * @interface DisputeResolve
 */
export interface DisputeResolve {
    /**
     * Dispute resolution. Accepted values, merchant-accepted, declined
     * @type {string}
     * @memberof DisputeResolve
     */
    resolution: string;
    /**
     * Reason for resolving
     * @type {string}
     * @memberof DisputeResolve
     */
    message: string;
    /**
     * The amount to refund, in kobo if currency is NGN, pesewas, if currency is GHS, and cents, if currency is ZAR
     * @type {string}
     * @memberof DisputeResolve
     */
    refundAmount: string;
    /**
     * Filename of attachment returned via response from the Dispute upload URL
     * @type {string}
     * @memberof DisputeResolve
     */
    uploadedFilename: string;
    /**
     * Evidence Id for fraud claims
     * @type {number}
     * @memberof DisputeResolve
     */
    evidence?: number;
}

export function DisputeResolveFromJSON(json: any): DisputeResolve {
    return DisputeResolveFromJSONTyped(json, false);
}

export function DisputeResolveFromJSONTyped(json: any, ignoreDiscriminator: boolean): DisputeResolve {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'resolution': json['resolution'],
        'message': json['message'],
        'refundAmount': json['refund_amount'],
        'uploadedFilename': json['uploaded_filename'],
        'evidence': !exists(json, 'evidence') ? undefined : json['evidence'],
    };
}

export function DisputeResolveToJSON(value?: DisputeResolve | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'resolution': value.resolution,
        'message': value.message,
        'refund_amount': value.refundAmount,
        'uploaded_filename': value.uploadedFilename,
        'evidence': value.evidence,
    };
}


