Billiecart API

<back to all web services

SetEmploymentRequest

Requires Authentication
Requires the role:manager
The following routes are available for this service:
PUT/packages/{id}/employment
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 SetEmploymentResponse implements IConvertible
{
    ResponseStatus? responseStatus;
    SalaryPackage? salaryPackage;

    SetEmploymentResponse({this.responseStatus,this.salaryPackage});
    SetEmploymentResponse.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() => "SetEmploymentResponse";
    TypeContext? context = _ctx;
}

class SetEmploymentRequest extends PutOperationTenanted<SetEmploymentResponse> implements IConvertible
{
    String? id;
    String? employerId;
    String? payrollCycle;
    DateTime? firstPayDate;

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

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

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

    getTypeName() => "SetEmploymentRequest";
    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>[]),
    'SetEmploymentResponse': TypeInfo(TypeOf.Class, create:() => SetEmploymentResponse()),
    'SetEmploymentRequest': TypeInfo(TypeOf.Class, create:() => SetEmploymentRequest()),
});

Dart SetEmploymentRequest DTOs

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

HTTP + JSV

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

PUT /packages/{id}/employment HTTP/1.1 
Host: staging-api.billiecart.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	employerId: String,
	payrollCycle: String,
	organisationId: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
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: ,
			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
	}
}