/* Options:
Date: 2025-04-13 16:35:51
Version: 8.22
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://data.regent-college.edu

//GlobalNamespace: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: BeanstreamInteracPaymentCompletionRequest.*
//ExcludeTypes: 
//DefaultImports: package:servicestack/servicestack.dart,dart:typed_data
*/

import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class BeanstreamInteracCompletionResponse implements IConvertible
{
    int? approved;
    String? message;

    BeanstreamInteracCompletionResponse({this.approved,this.message});
    BeanstreamInteracCompletionResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        approved = json['approved'];
        message = json['message'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'approved': approved,
        'message': message
    };

    getTypeName() => "BeanstreamInteracCompletionResponse";
    TypeContext? context = _ctx;
}

// @Route("/Beanstream/Payment/Interac/Complete", "POST")
class BeanstreamInteracPaymentCompletionRequest implements IReturn<BeanstreamInteracCompletionResponse>, IConvertible, IPost
{
    String? payment_method;
    int? funded;
    String? idebit_merchantdata;
    String? idebit_track2;
    String? idebit_isslang;
    int? idebit_version;
    String? idebit_issconf;
    String? idebit_issname;
    double? idebit_amount;
    String? idebit_invoice;

    BeanstreamInteracPaymentCompletionRequest({this.payment_method,this.funded,this.idebit_merchantdata,this.idebit_track2,this.idebit_isslang,this.idebit_version,this.idebit_issconf,this.idebit_issname,this.idebit_amount,this.idebit_invoice});
    BeanstreamInteracPaymentCompletionRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        payment_method = json['payment_method'];
        funded = json['funded'];
        idebit_merchantdata = json['idebit_merchantdata'];
        idebit_track2 = json['idebit_track2'];
        idebit_isslang = json['idebit_isslang'];
        idebit_version = json['idebit_version'];
        idebit_issconf = json['idebit_issconf'];
        idebit_issname = json['idebit_issname'];
        idebit_amount = JsonConverters.toDouble(json['idebit_amount']);
        idebit_invoice = json['idebit_invoice'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'payment_method': payment_method,
        'funded': funded,
        'idebit_merchantdata': idebit_merchantdata,
        'idebit_track2': idebit_track2,
        'idebit_isslang': idebit_isslang,
        'idebit_version': idebit_version,
        'idebit_issconf': idebit_issconf,
        'idebit_issname': idebit_issname,
        'idebit_amount': idebit_amount,
        'idebit_invoice': idebit_invoice
    };

    createResponse() => BeanstreamInteracCompletionResponse();
    getResponseTypeName() => "BeanstreamInteracCompletionResponse";
    getTypeName() => "BeanstreamInteracPaymentCompletionRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'data.regent_college.edu', types: <String, TypeInfo> {
    'BeanstreamInteracCompletionResponse': TypeInfo(TypeOf.Class, create:() => BeanstreamInteracCompletionResponse()),
    'BeanstreamInteracPaymentCompletionRequest': TypeInfo(TypeOf.Class, create:() => BeanstreamInteracPaymentCompletionRequest()),
});