Billiecart API

<back to all web services

SetBudgetBreakdownRequest

Requires Authentication
Requires the role:manager
The following routes are available for this service:
PUT/packages/{Id}/budget-breakdown
import 'package:servicestack/servicestack.dart';

abstract class PutOperationUnTenanted<TResponse> implements IPut
{
    PutOperationUnTenanted();
    PutOperationUnTenanted.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "PutOperationUnTenanted<$TResponse>";
    TypeContext? context = _ctx;
}

abstract class PutOperationTenanted<TResponse> extends PutOperationUnTenanted<TResponse> implements ITenantedRequest
{
    String? organisationId;

    PutOperationTenanted({this.organisationId});
    PutOperationTenanted.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        organisationId = json['organisationId'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'organisationId': organisationId
    });

    getTypeName() => "PutOperationTenanted<$TResponse>";
    TypeContext? context = _ctx;
}

class BudgetBreakdown implements IConvertible
{
    double? leaseAmount;
    double? administrationFee;
    double? fuel;
    double? servicing;
    double? tyres;
    double? insurance;
    double? carWash;
    double? registration;
    double? roadSideAssistance;
    double? anythingExtra;

    BudgetBreakdown({this.leaseAmount,this.administrationFee,this.fuel,this.servicing,this.tyres,this.insurance,this.carWash,this.registration,this.roadSideAssistance,this.anythingExtra});
    BudgetBreakdown.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        leaseAmount = JsonConverters.toDouble(json['leaseAmount']);
        administrationFee = JsonConverters.toDouble(json['administrationFee']);
        fuel = JsonConverters.toDouble(json['fuel']);
        servicing = JsonConverters.toDouble(json['servicing']);
        tyres = JsonConverters.toDouble(json['tyres']);
        insurance = JsonConverters.toDouble(json['insurance']);
        carWash = JsonConverters.toDouble(json['carWash']);
        registration = JsonConverters.toDouble(json['registration']);
        roadSideAssistance = JsonConverters.toDouble(json['roadSideAssistance']);
        anythingExtra = JsonConverters.toDouble(json['anythingExtra']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'leaseAmount': leaseAmount,
        'administrationFee': administrationFee,
        'fuel': fuel,
        'servicing': servicing,
        'tyres': tyres,
        'insurance': insurance,
        'carWash': carWash,
        'registration': registration,
        'roadSideAssistance': roadSideAssistance,
        'anythingExtra': anythingExtra
    };

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

class Employment implements IConvertible
{
    String? payrollCycle;
    DateTime? firstPayDate;
    String? employerId;
    String? employerName;

    Employment({this.payrollCycle,this.firstPayDate,this.employerId,this.employerName});
    Employment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        payrollCycle = json['payrollCycle'];
        firstPayDate = JsonConverters.fromJson(json['firstPayDate'],'DateTime',context!);
        employerId = json['employerId'];
        employerName = json['employerName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'payrollCycle': payrollCycle,
        'firstPayDate': JsonConverters.toJson(firstPayDate,'DateTime',context!),
        'employerId': employerId,
        'employerName': employerName
    };

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

class Vehicle implements IConvertible
{
    String? make;
    String? model;
    String? colour;
    String? bodyShape;
    String? licensePlate;
    String? transmission;
    int? manufactureYear;

    Vehicle({this.make,this.model,this.colour,this.bodyShape,this.licensePlate,this.transmission,this.manufactureYear});
    Vehicle.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        make = json['make'];
        model = json['model'];
        colour = json['colour'];
        bodyShape = json['bodyShape'];
        licensePlate = json['licensePlate'];
        transmission = json['transmission'];
        manufactureYear = json['manufactureYear'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'make': make,
        'model': model,
        'colour': colour,
        'bodyShape': bodyShape,
        'licensePlate': licensePlate,
        'transmission': transmission,
        'manufactureYear': manufactureYear
    };

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

class BankAccount implements IConvertible
{
    String? bsbNumber;
    String? accountNumber;

    BankAccount({this.bsbNumber,this.accountNumber});
    BankAccount.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'bsbNumber': bsbNumber,
        'accountNumber': accountNumber
    };

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

class LeaseDetails implements IConvertible
{
    int? term;
    DateTime? startDate;
    double? amountFinanced;
    double? paymentAmount;
    String? financeProvider;
    double? residualValue;
    int? yearlyKmsTravelled;
    double? fringeBenefitTaxValue;
    String? fringeBenefitTaxMethod;
    int? fringeBenefitTaxBusinessUse;
    DateTime? fringeBenefitTaxStartDate;
    double? preTaxDeduction;
    double? postTaxDeduction;
    double? gstOnPostTaxDeduction;
    double? luxuryVehicleCharge;
    double? onRoadCost;
    DateTime? registrationDueDate;
    DateTime? insuranceDueDate;
    BankAccount? leaseProviderBankAccount;

    LeaseDetails({this.term,this.startDate,this.amountFinanced,this.paymentAmount,this.financeProvider,this.residualValue,this.yearlyKmsTravelled,this.fringeBenefitTaxValue,this.fringeBenefitTaxMethod,this.fringeBenefitTaxBusinessUse,this.fringeBenefitTaxStartDate,this.preTaxDeduction,this.postTaxDeduction,this.gstOnPostTaxDeduction,this.luxuryVehicleCharge,this.onRoadCost,this.registrationDueDate,this.insuranceDueDate,this.leaseProviderBankAccount});
    LeaseDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        term = json['term'];
        startDate = JsonConverters.fromJson(json['startDate'],'DateTime',context!);
        amountFinanced = JsonConverters.toDouble(json['amountFinanced']);
        paymentAmount = JsonConverters.toDouble(json['paymentAmount']);
        financeProvider = json['financeProvider'];
        residualValue = JsonConverters.toDouble(json['residualValue']);
        yearlyKmsTravelled = json['yearlyKmsTravelled'];
        fringeBenefitTaxValue = JsonConverters.toDouble(json['fringeBenefitTaxValue']);
        fringeBenefitTaxMethod = json['fringeBenefitTaxMethod'];
        fringeBenefitTaxBusinessUse = json['fringeBenefitTaxBusinessUse'];
        fringeBenefitTaxStartDate = JsonConverters.fromJson(json['fringeBenefitTaxStartDate'],'DateTime',context!);
        preTaxDeduction = JsonConverters.toDouble(json['preTaxDeduction']);
        postTaxDeduction = JsonConverters.toDouble(json['postTaxDeduction']);
        gstOnPostTaxDeduction = JsonConverters.toDouble(json['gstOnPostTaxDeduction']);
        luxuryVehicleCharge = JsonConverters.toDouble(json['luxuryVehicleCharge']);
        onRoadCost = JsonConverters.toDouble(json['onRoadCost']);
        registrationDueDate = JsonConverters.fromJson(json['registrationDueDate'],'DateTime',context!);
        insuranceDueDate = JsonConverters.fromJson(json['insuranceDueDate'],'DateTime',context!);
        leaseProviderBankAccount = JsonConverters.fromJson(json['leaseProviderBankAccount'],'BankAccount',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'term': term,
        'startDate': JsonConverters.toJson(startDate,'DateTime',context!),
        'amountFinanced': amountFinanced,
        'paymentAmount': paymentAmount,
        'financeProvider': financeProvider,
        'residualValue': residualValue,
        'yearlyKmsTravelled': yearlyKmsTravelled,
        'fringeBenefitTaxValue': fringeBenefitTaxValue,
        'fringeBenefitTaxMethod': fringeBenefitTaxMethod,
        'fringeBenefitTaxBusinessUse': fringeBenefitTaxBusinessUse,
        'fringeBenefitTaxStartDate': JsonConverters.toJson(fringeBenefitTaxStartDate,'DateTime',context!),
        'preTaxDeduction': preTaxDeduction,
        'postTaxDeduction': postTaxDeduction,
        'gstOnPostTaxDeduction': gstOnPostTaxDeduction,
        'luxuryVehicleCharge': luxuryVehicleCharge,
        'onRoadCost': onRoadCost,
        'registrationDueDate': JsonConverters.toJson(registrationDueDate,'DateTime',context!),
        'insuranceDueDate': JsonConverters.toJson(insuranceDueDate,'DateTime',context!),
        'leaseProviderBankAccount': JsonConverters.toJson(leaseProviderBankAccount,'BankAccount',context!)
    };

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

class BudgetBalances implements IConvertible
{
    double? leaseAmount;
    double? administrationFee;
    double? fuel;
    double? servicing;
    double? tyres;
    double? insurance;
    double? carWash;
    double? registration;
    double? roadSideAssistance;
    double? anythingExtra;

    BudgetBalances({this.leaseAmount,this.administrationFee,this.fuel,this.servicing,this.tyres,this.insurance,this.carWash,this.registration,this.roadSideAssistance,this.anythingExtra});
    BudgetBalances.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        leaseAmount = JsonConverters.toDouble(json['leaseAmount']);
        administrationFee = JsonConverters.toDouble(json['administrationFee']);
        fuel = JsonConverters.toDouble(json['fuel']);
        servicing = JsonConverters.toDouble(json['servicing']);
        tyres = JsonConverters.toDouble(json['tyres']);
        insurance = JsonConverters.toDouble(json['insurance']);
        carWash = JsonConverters.toDouble(json['carWash']);
        registration = JsonConverters.toDouble(json['registration']);
        roadSideAssistance = JsonConverters.toDouble(json['roadSideAssistance']);
        anythingExtra = JsonConverters.toDouble(json['anythingExtra']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'leaseAmount': leaseAmount,
        'administrationFee': administrationFee,
        'fuel': fuel,
        'servicing': servicing,
        'tyres': tyres,
        'insurance': insurance,
        'carWash': carWash,
        'registration': registration,
        'roadSideAssistance': roadSideAssistance,
        'anythingExtra': anythingExtra
    };

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

class SalarySacrificeBreakdown implements IConvertible
{
    double? leaseAmount;
    double? administrationFee;
    double? fuel;
    double? servicing;
    double? tyres;
    double? insurance;
    double? carWash;
    double? registration;
    double? roadSideAssistance;
    double? anythingExtra;

    SalarySacrificeBreakdown({this.leaseAmount,this.administrationFee,this.fuel,this.servicing,this.tyres,this.insurance,this.carWash,this.registration,this.roadSideAssistance,this.anythingExtra});
    SalarySacrificeBreakdown.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        leaseAmount = JsonConverters.toDouble(json['leaseAmount']);
        administrationFee = JsonConverters.toDouble(json['administrationFee']);
        fuel = JsonConverters.toDouble(json['fuel']);
        servicing = JsonConverters.toDouble(json['servicing']);
        tyres = JsonConverters.toDouble(json['tyres']);
        insurance = JsonConverters.toDouble(json['insurance']);
        carWash = JsonConverters.toDouble(json['carWash']);
        registration = JsonConverters.toDouble(json['registration']);
        roadSideAssistance = JsonConverters.toDouble(json['roadSideAssistance']);
        anythingExtra = JsonConverters.toDouble(json['anythingExtra']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'leaseAmount': leaseAmount,
        'administrationFee': administrationFee,
        'fuel': fuel,
        'servicing': servicing,
        'tyres': tyres,
        'insurance': insurance,
        'carWash': carWash,
        'registration': registration,
        'roadSideAssistance': roadSideAssistance,
        'anythingExtra': anythingExtra
    };

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

class SalarySacrifice implements IConvertible
{
    DateTime? paymentDate;
    SalarySacrificeBreakdown? salarySacrificeBreakdown;
    double? preTaxDeduction;
    double? postTaxDeduction;
    String? contributionId;

    SalarySacrifice({this.paymentDate,this.salarySacrificeBreakdown,this.preTaxDeduction,this.postTaxDeduction,this.contributionId});
    SalarySacrifice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        paymentDate = JsonConverters.fromJson(json['paymentDate'],'DateTime',context!);
        salarySacrificeBreakdown = JsonConverters.fromJson(json['salarySacrificeBreakdown'],'SalarySacrificeBreakdown',context!);
        preTaxDeduction = JsonConverters.toDouble(json['preTaxDeduction']);
        postTaxDeduction = JsonConverters.toDouble(json['postTaxDeduction']);
        contributionId = json['contributionId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'paymentDate': JsonConverters.toJson(paymentDate,'DateTime',context!),
        'salarySacrificeBreakdown': JsonConverters.toJson(salarySacrificeBreakdown,'SalarySacrificeBreakdown',context!),
        'preTaxDeduction': preTaxDeduction,
        'postTaxDeduction': postTaxDeduction,
        'contributionId': contributionId
    };

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

class ForecastedSalarySacrifice implements IConvertible
{
    DateTime? paymentDate;
    double? amount;
    SalarySacrifice? matched;

    ForecastedSalarySacrifice({this.paymentDate,this.amount,this.matched});
    ForecastedSalarySacrifice.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        paymentDate = JsonConverters.fromJson(json['paymentDate'],'DateTime',context!);
        amount = JsonConverters.toDouble(json['amount']);
        matched = JsonConverters.fromJson(json['matched'],'SalarySacrifice',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'paymentDate': JsonConverters.toJson(paymentDate,'DateTime',context!),
        'amount': amount,
        'matched': JsonConverters.toJson(matched,'SalarySacrifice',context!)
    };

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

class Expense implements IConvertible
{
    String? budgetCategory;
    double? amount;
    double? gst;

    Expense({this.budgetCategory,this.amount,this.gst});
    Expense.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        budgetCategory = json['budgetCategory'];
        amount = JsonConverters.toDouble(json['amount']);
        gst = JsonConverters.toDouble(json['gst']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'budgetCategory': budgetCategory,
        'amount': amount,
        'gst': gst
    };

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

class ForecastedOutgoingPayment implements IConvertible
{
    DateTime? scheduled;
    double? amount;
    String? budgetCategory;
    Expense? matched;

    ForecastedOutgoingPayment({this.scheduled,this.amount,this.budgetCategory,this.matched});
    ForecastedOutgoingPayment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        scheduled = JsonConverters.fromJson(json['scheduled'],'DateTime',context!);
        amount = JsonConverters.toDouble(json['amount']);
        budgetCategory = json['budgetCategory'];
        matched = JsonConverters.fromJson(json['matched'],'Expense',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'scheduled': JsonConverters.toJson(scheduled,'DateTime',context!),
        'amount': amount,
        'budgetCategory': budgetCategory,
        'matched': JsonConverters.toJson(matched,'Expense',context!)
    };

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

class Adjustment implements IIdentifiableResource, IConvertible
{
    String? budgetCategory;
    double? amount;
    double? gst;
    String? description;
    DateTime? received;
    String? id;

    Adjustment({this.budgetCategory,this.amount,this.gst,this.description,this.received,this.id});
    Adjustment.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        budgetCategory = json['budgetCategory'];
        amount = JsonConverters.toDouble(json['amount']);
        gst = JsonConverters.toDouble(json['gst']);
        description = json['description'];
        received = JsonConverters.fromJson(json['received'],'DateTime',context!);
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'budgetCategory': budgetCategory,
        'amount': amount,
        'gst': gst,
        'description': description,
        'received': JsonConverters.toJson(received,'DateTime',context!),
        'id': id
    };

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

class Transaction implements IConvertible
{
    DateTime? received;
    String? budgetCategory;
    double? amount;
    double? gst;
    String? description;
    String? type;

    Transaction({this.received,this.budgetCategory,this.amount,this.gst,this.description,this.type});
    Transaction.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        received = JsonConverters.fromJson(json['received'],'DateTime',context!);
        budgetCategory = json['budgetCategory'];
        amount = JsonConverters.toDouble(json['amount']);
        gst = JsonConverters.toDouble(json['gst']);
        description = json['description'];
        type = json['type'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'received': JsonConverters.toJson(received,'DateTime',context!),
        'budgetCategory': budgetCategory,
        'amount': amount,
        'gst': gst,
        'description': description,
        'type': type
    };

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

class SalaryPackage implements IIdentifiableResource, IConvertible
{
    String? customerId;
    String? customerFirstName;
    String? customerLastName;
    String? status;
    String? notes;
    BudgetBreakdown? budgetBreakdown;
    Employment? employment;
    Vehicle? vehicle;
    LeaseDetails? leaseDetails;
    BudgetBalances? budgetBalances;
    double? currentBalance;
    List<ForecastedSalarySacrifice>? forecastedSalarySacrifices;
    List<ForecastedOutgoingPayment>? forecastedOutgoingPayments;
    List<Adjustment>? adjustments;
    List<Transaction>? transactions;
    String? id;

    SalaryPackage({this.customerId,this.customerFirstName,this.customerLastName,this.status,this.notes,this.budgetBreakdown,this.employment,this.vehicle,this.leaseDetails,this.budgetBalances,this.currentBalance,this.forecastedSalarySacrifices,this.forecastedOutgoingPayments,this.adjustments,this.transactions,this.id});
    SalaryPackage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        customerId = json['customerId'];
        customerFirstName = json['customerFirstName'];
        customerLastName = json['customerLastName'];
        status = json['status'];
        notes = json['notes'];
        budgetBreakdown = JsonConverters.fromJson(json['budgetBreakdown'],'BudgetBreakdown',context!);
        employment = JsonConverters.fromJson(json['employment'],'Employment',context!);
        vehicle = JsonConverters.fromJson(json['vehicle'],'Vehicle',context!);
        leaseDetails = JsonConverters.fromJson(json['leaseDetails'],'LeaseDetails',context!);
        budgetBalances = JsonConverters.fromJson(json['budgetBalances'],'BudgetBalances',context!);
        currentBalance = JsonConverters.toDouble(json['currentBalance']);
        forecastedSalarySacrifices = JsonConverters.fromJson(json['forecastedSalarySacrifices'],'List<ForecastedSalarySacrifice>',context!);
        forecastedOutgoingPayments = JsonConverters.fromJson(json['forecastedOutgoingPayments'],'List<ForecastedOutgoingPayment>',context!);
        adjustments = JsonConverters.fromJson(json['adjustments'],'List<Adjustment>',context!);
        transactions = JsonConverters.fromJson(json['transactions'],'List<Transaction>',context!);
        id = json['id'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'customerId': customerId,
        'customerFirstName': customerFirstName,
        'customerLastName': customerLastName,
        'status': status,
        'notes': notes,
        'budgetBreakdown': JsonConverters.toJson(budgetBreakdown,'BudgetBreakdown',context!),
        'employment': JsonConverters.toJson(employment,'Employment',context!),
        'vehicle': JsonConverters.toJson(vehicle,'Vehicle',context!),
        'leaseDetails': JsonConverters.toJson(leaseDetails,'LeaseDetails',context!),
        'budgetBalances': JsonConverters.toJson(budgetBalances,'BudgetBalances',context!),
        'currentBalance': currentBalance,
        'forecastedSalarySacrifices': JsonConverters.toJson(forecastedSalarySacrifices,'List<ForecastedSalarySacrifice>',context!),
        'forecastedOutgoingPayments': JsonConverters.toJson(forecastedOutgoingPayments,'List<ForecastedOutgoingPayment>',context!),
        'adjustments': JsonConverters.toJson(adjustments,'List<Adjustment>',context!),
        'transactions': JsonConverters.toJson(transactions,'List<Transaction>',context!),
        'id': id
    };

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

class SetBudgetBreakdownResponse implements IConvertible
{
    ResponseStatus? responseStatus;
    SalaryPackage? salaryPackage;

    SetBudgetBreakdownResponse({this.responseStatus,this.salaryPackage});
    SetBudgetBreakdownResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        salaryPackage = JsonConverters.fromJson(json['salaryPackage'],'SalaryPackage',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!),
        'salaryPackage': JsonConverters.toJson(salaryPackage,'SalaryPackage',context!)
    };

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

class SetBudgetBreakdownRequest extends PutOperationTenanted<SetBudgetBreakdownResponse> implements IConvertible
{
    String? id;
    double? leaseAmount;
    double? administrationFee;
    double? fuel;
    double? servicing;
    double? tyres;
    double? insurance;
    double? carWash;
    double? registration;
    double? roadSideAssistance;
    double? anythingExtra;

    SetBudgetBreakdownRequest({this.id,this.leaseAmount,this.administrationFee,this.fuel,this.servicing,this.tyres,this.insurance,this.carWash,this.registration,this.roadSideAssistance,this.anythingExtra});
    SetBudgetBreakdownRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        id = json['id'];
        leaseAmount = JsonConverters.toDouble(json['leaseAmount']);
        administrationFee = JsonConverters.toDouble(json['administrationFee']);
        fuel = JsonConverters.toDouble(json['fuel']);
        servicing = JsonConverters.toDouble(json['servicing']);
        tyres = JsonConverters.toDouble(json['tyres']);
        insurance = JsonConverters.toDouble(json['insurance']);
        carWash = JsonConverters.toDouble(json['carWash']);
        registration = JsonConverters.toDouble(json['registration']);
        roadSideAssistance = JsonConverters.toDouble(json['roadSideAssistance']);
        anythingExtra = JsonConverters.toDouble(json['anythingExtra']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'id': id,
        'leaseAmount': leaseAmount,
        'administrationFee': administrationFee,
        'fuel': fuel,
        'servicing': servicing,
        'tyres': tyres,
        'insurance': insurance,
        'carWash': carWash,
        'registration': registration,
        'roadSideAssistance': roadSideAssistance,
        'anythingExtra': anythingExtra
    });

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

TypeContext _ctx = TypeContext(library: 'staging_api.billiecart.com.au', types: <String, TypeInfo> {
    'PutOperationUnTenanted<TResponse>': TypeInfo(TypeOf.AbstractClass),
    'PutOperationTenanted<TResponse>': TypeInfo(TypeOf.AbstractClass),
    'BudgetBreakdown': TypeInfo(TypeOf.Class, create:() => BudgetBreakdown()),
    'Employment': TypeInfo(TypeOf.Class, create:() => Employment()),
    'Vehicle': TypeInfo(TypeOf.Class, create:() => Vehicle()),
    'BankAccount': TypeInfo(TypeOf.Class, create:() => BankAccount()),
    'LeaseDetails': TypeInfo(TypeOf.Class, create:() => LeaseDetails()),
    'BudgetBalances': TypeInfo(TypeOf.Class, create:() => BudgetBalances()),
    'SalarySacrificeBreakdown': TypeInfo(TypeOf.Class, create:() => SalarySacrificeBreakdown()),
    'SalarySacrifice': TypeInfo(TypeOf.Class, create:() => SalarySacrifice()),
    'ForecastedSalarySacrifice': TypeInfo(TypeOf.Class, create:() => ForecastedSalarySacrifice()),
    'Expense': TypeInfo(TypeOf.Class, create:() => Expense()),
    'ForecastedOutgoingPayment': TypeInfo(TypeOf.Class, create:() => ForecastedOutgoingPayment()),
    'Adjustment': TypeInfo(TypeOf.Class, create:() => Adjustment()),
    'Transaction': TypeInfo(TypeOf.Class, create:() => Transaction()),
    'SalaryPackage': TypeInfo(TypeOf.Class, create:() => SalaryPackage()),
    'List<ForecastedSalarySacrifice>': TypeInfo(TypeOf.Class, create:() => <ForecastedSalarySacrifice>[]),
    'List<ForecastedOutgoingPayment>': TypeInfo(TypeOf.Class, create:() => <ForecastedOutgoingPayment>[]),
    'List<Adjustment>': TypeInfo(TypeOf.Class, create:() => <Adjustment>[]),
    'List<Transaction>': TypeInfo(TypeOf.Class, create:() => <Transaction>[]),
    'SetBudgetBreakdownResponse': TypeInfo(TypeOf.Class, create:() => SetBudgetBreakdownResponse()),
    'SetBudgetBreakdownRequest': TypeInfo(TypeOf.Class, create:() => SetBudgetBreakdownRequest()),
});

Dart SetBudgetBreakdownRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /packages/{Id}/budget-breakdown HTTP/1.1 
Host: staging-api.billiecart.com.au 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"id":"String","leaseAmount":0,"administrationFee":0,"fuel":0,"servicing":0,"tyres":0,"insurance":0,"carWash":0,"registration":0,"roadSideAssistance":0,"anythingExtra":0,"organisationId":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}},"salaryPackage":{"customerId":"String","customerFirstName":"String","customerLastName":"String","status":"String","notes":"String","budgetBreakdown":{"leaseAmount":0,"administrationFee":0,"fuel":0,"servicing":0,"tyres":0,"insurance":0,"carWash":0,"registration":0,"roadSideAssistance":0,"anythingExtra":0},"employment":{"payrollCycle":"String","employerId":"String","employerName":"String"},"vehicle":{"make":"String","model":"String","colour":"String","bodyShape":"String","licensePlate":"String","transmission":"String","manufactureYear":0},"leaseDetails":{"term":0,"startDate":null,"amountFinanced":0,"paymentAmount":0,"financeProvider":"String","residualValue":0,"yearlyKmsTravelled":0,"fringeBenefitTaxValue":0,"fringeBenefitTaxMethod":"String","fringeBenefitTaxBusinessUse":0,"preTaxDeduction":0,"postTaxDeduction":0,"gstOnPostTaxDeduction":0,"luxuryVehicleCharge":0,"onRoadCost":0,"leaseProviderBankAccount":{"bsbNumber":"String","accountNumber":"String"}},"budgetBalances":{"leaseAmount":0,"administrationFee":0,"fuel":0,"servicing":0,"tyres":0,"insurance":0,"carWash":0,"registration":0,"roadSideAssistance":0,"anythingExtra":0},"currentBalance":0,"forecastedSalarySacrifices":[{"amount":0,"matched":{"salarySacrificeBreakdown":{"leaseAmount":0,"administrationFee":0,"fuel":0,"servicing":0,"tyres":0,"insurance":0,"carWash":0,"registration":0,"roadSideAssistance":0,"anythingExtra":0},"preTaxDeduction":0,"postTaxDeduction":0,"contributionId":"String"}}],"forecastedOutgoingPayments":[{"amount":0,"budgetCategory":"String","matched":{"budgetCategory":"String","amount":0,"gst":0}}],"adjustments":[{"budgetCategory":"String","amount":0,"gst":0,"description":"String","id":"String"}],"transactions":[{"budgetCategory":"String","amount":0,"gst":0,"description":"String","type":"String"}],"id":"String"}}