Antel API

<back to all web services

GetUpliftSchedule

Requires Authentication
The following routes are available for this service:
GET/upliftscedule
import 'package:servicestack/servicestack.dart';

class ApiServiceRequest implements IServiceRequest, IHasApiKey, IHasDeviceInfo, IConvertible
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    String? apiKey;

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    double? latitude;

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    double? longitude;

    ApiServiceRequest({this.apiKey,this.latitude,this.longitude});
    ApiServiceRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        apiKey = json['apiKey'];
        latitude = JsonConverters.toDouble(json['latitude']);
        longitude = JsonConverters.toDouble(json['longitude']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'apiKey': apiKey,
        'latitude': latitude,
        'longitude': longitude
    };

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

class ApiServiceResponse implements IServiceResponse, IConvertible
{
    /**
    * Information about the response.
    */
    // @ApiMember(Description="Information about the response.", IsRequired=true)
    String? description;

    /**
    * Heading or summary of the response.
    */
    // @ApiMember(Description="Heading or summary of the response.", IsRequired=true)
    String? heading;

    /**
    * Did the intended operation for this response complete successfully?
    */
    // @ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true)
    bool? wasSuccessful;

    ResponseStatus? responseStatus;

    ApiServiceResponse({this.description,this.heading,this.wasSuccessful,this.responseStatus});
    ApiServiceResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

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

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

class UpliftScheduleStatus
{
    static const UpliftScheduleStatus Unconfirmed = const UpliftScheduleStatus._(0);
    static const UpliftScheduleStatus Confirmed = const UpliftScheduleStatus._(1);
    static const UpliftScheduleStatus PortalCancelled = const UpliftScheduleStatus._(4);
    static const UpliftScheduleStatus UserCancelled = const UpliftScheduleStatus._(5);
    static const UpliftScheduleStatus NoOperatorAssigned = const UpliftScheduleStatus._(6);

    final int _value;
    const UpliftScheduleStatus._(this._value);
    int get value => _value;
    static List<UpliftScheduleStatus> get values => const [Unconfirmed,Confirmed,PortalCancelled,UserCancelled,NoOperatorAssigned];
}

class ProductData implements IConvertible
{
    int? productId;
    int? principalId;
    String? name;
    String? category;
    String? productCode;
    String? unitBarcode;
    int? cartonQuantity;
    int? shrinkQuantity;
    int? unitQuantity;
    String? cartonMeasurement;
    String? shrinkMeasurement;
    String? unitMeasurement;
    double? cartonWeight;
    double? shrinkWeight;
    double? unitWeight;
    double? cartonPrice;
    double? shrinkPrice;
    double? unitPrice;
    int? maxQuantity;
    int? maxPrice;

    ProductData({this.productId,this.principalId,this.name,this.category,this.productCode,this.unitBarcode,this.cartonQuantity,this.shrinkQuantity,this.unitQuantity,this.cartonMeasurement,this.shrinkMeasurement,this.unitMeasurement,this.cartonWeight,this.shrinkWeight,this.unitWeight,this.cartonPrice,this.shrinkPrice,this.unitPrice,this.maxQuantity,this.maxPrice});
    ProductData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        productId = json['productId'];
        principalId = json['principalId'];
        name = json['name'];
        category = json['category'];
        productCode = json['productCode'];
        unitBarcode = json['unitBarcode'];
        cartonQuantity = json['cartonQuantity'];
        shrinkQuantity = json['shrinkQuantity'];
        unitQuantity = json['unitQuantity'];
        cartonMeasurement = json['cartonMeasurement'];
        shrinkMeasurement = json['shrinkMeasurement'];
        unitMeasurement = json['unitMeasurement'];
        cartonWeight = JsonConverters.toDouble(json['cartonWeight']);
        shrinkWeight = JsonConverters.toDouble(json['shrinkWeight']);
        unitWeight = JsonConverters.toDouble(json['unitWeight']);
        cartonPrice = JsonConverters.toDouble(json['cartonPrice']);
        shrinkPrice = JsonConverters.toDouble(json['shrinkPrice']);
        unitPrice = JsonConverters.toDouble(json['unitPrice']);
        maxQuantity = json['maxQuantity'];
        maxPrice = json['maxPrice'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'productId': productId,
        'principalId': principalId,
        'name': name,
        'category': category,
        'productCode': productCode,
        'unitBarcode': unitBarcode,
        'cartonQuantity': cartonQuantity,
        'shrinkQuantity': shrinkQuantity,
        'unitQuantity': unitQuantity,
        'cartonMeasurement': cartonMeasurement,
        'shrinkMeasurement': shrinkMeasurement,
        'unitMeasurement': unitMeasurement,
        'cartonWeight': cartonWeight,
        'shrinkWeight': shrinkWeight,
        'unitWeight': unitWeight,
        'cartonPrice': cartonPrice,
        'shrinkPrice': shrinkPrice,
        'unitPrice': unitPrice,
        'maxQuantity': maxQuantity,
        'maxPrice': maxPrice
    };

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

class ProductDataCategory implements IConvertible
{
    String? unitBarcode;
    List<ProductData>? products;

    ProductDataCategory({this.unitBarcode,this.products});
    ProductDataCategory.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        unitBarcode = json['unitBarcode'];
        products = JsonConverters.fromJson(json['products'],'List<ProductData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'unitBarcode': unitBarcode,
        'products': JsonConverters.toJson(products,'List<ProductData>',context!)
    };

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

class ProductExceptionData implements IConvertible
{
    String? region;
    String? channel;
    int? productId;
    List<int>? stockStatusIds;

    ProductExceptionData({this.region,this.channel,this.productId,this.stockStatusIds});
    ProductExceptionData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        region = json['region'];
        channel = json['channel'];
        productId = json['productId'];
        stockStatusIds = JsonConverters.fromJson(json['stockStatusIds'],'List<int>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'region': region,
        'channel': channel,
        'productId': productId,
        'stockStatusIds': JsonConverters.toJson(stockStatusIds,'List<int>',context!)
    };

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

class PrincipalData implements IConvertible
{
    int? principalId;
    String? name;
    List<String>? authLetterFileUrl;
    String? logoImageUrl;
    List<ProductDataCategory>? products;
    String? upliftPrefix;
    String? contactName;
    String? contactNumber;
    String? contactEmail;
    bool? allowProductLookup;
    bool? hasLogo;
    bool? hasAuthLetter;
    bool? sealNetWeightMandatory;
    bool? allowBillableSeals;
    bool? captureSerialNumber;
    bool? batchCodesMandatory;
    bool? captureManufactureAndExpiryDate;
    List<ProductExceptionData>? productExceptions;
    bool? usesOwnSealNumbers;

    PrincipalData({this.principalId,this.name,this.authLetterFileUrl,this.logoImageUrl,this.products,this.upliftPrefix,this.contactName,this.contactNumber,this.contactEmail,this.allowProductLookup,this.hasLogo,this.hasAuthLetter,this.sealNetWeightMandatory,this.allowBillableSeals,this.captureSerialNumber,this.batchCodesMandatory,this.captureManufactureAndExpiryDate,this.productExceptions,this.usesOwnSealNumbers});
    PrincipalData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        principalId = json['principalId'];
        name = json['name'];
        authLetterFileUrl = JsonConverters.fromJson(json['authLetterFileUrl'],'List<String>',context!);
        logoImageUrl = json['logoImageUrl'];
        products = JsonConverters.fromJson(json['products'],'List<ProductDataCategory>',context!);
        upliftPrefix = json['upliftPrefix'];
        contactName = json['contactName'];
        contactNumber = json['contactNumber'];
        contactEmail = json['contactEmail'];
        allowProductLookup = json['allowProductLookup'];
        hasLogo = json['hasLogo'];
        hasAuthLetter = json['hasAuthLetter'];
        sealNetWeightMandatory = json['sealNetWeightMandatory'];
        allowBillableSeals = json['allowBillableSeals'];
        captureSerialNumber = json['captureSerialNumber'];
        batchCodesMandatory = json['batchCodesMandatory'];
        captureManufactureAndExpiryDate = json['captureManufactureAndExpiryDate'];
        productExceptions = JsonConverters.fromJson(json['productExceptions'],'List<ProductExceptionData>',context!);
        usesOwnSealNumbers = json['usesOwnSealNumbers'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'principalId': principalId,
        'name': name,
        'authLetterFileUrl': JsonConverters.toJson(authLetterFileUrl,'List<String>',context!),
        'logoImageUrl': logoImageUrl,
        'products': JsonConverters.toJson(products,'List<ProductDataCategory>',context!),
        'upliftPrefix': upliftPrefix,
        'contactName': contactName,
        'contactNumber': contactNumber,
        'contactEmail': contactEmail,
        'allowProductLookup': allowProductLookup,
        'hasLogo': hasLogo,
        'hasAuthLetter': hasAuthLetter,
        'sealNetWeightMandatory': sealNetWeightMandatory,
        'allowBillableSeals': allowBillableSeals,
        'captureSerialNumber': captureSerialNumber,
        'batchCodesMandatory': batchCodesMandatory,
        'captureManufactureAndExpiryDate': captureManufactureAndExpiryDate,
        'productExceptions': JsonConverters.toJson(productExceptions,'List<ProductExceptionData>',context!),
        'usesOwnSealNumbers': usesOwnSealNumbers
    };

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

class ActionOutsideMaxDistanceType
{
    static const ActionOutsideMaxDistanceType Warn = const ActionOutsideMaxDistanceType._(0);
    static const ActionOutsideMaxDistanceType Block = const ActionOutsideMaxDistanceType._(1);

    final int _value;
    const ActionOutsideMaxDistanceType._(this._value);
    int get value => _value;
    static List<ActionOutsideMaxDistanceType> get values => const [Warn,Block];
}

class TemplateProductData implements IConvertible
{
    String? name;
    String? productCode;
    String? barcode;
    Map<int,int?>? statusQty;
    double? returnValue;

    TemplateProductData({this.name,this.productCode,this.barcode,this.statusQty,this.returnValue});
    TemplateProductData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        productCode = json['productCode'];
        barcode = json['barcode'];
        statusQty = JsonConverters.fromJson(json['statusQty'],'Map<int,int?>',context!);
        returnValue = JsonConverters.toDouble(json['returnValue']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'productCode': productCode,
        'barcode': barcode,
        'statusQty': JsonConverters.toJson(statusQty,'Map<int,int?>',context!),
        'returnValue': returnValue
    };

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

class UpliftRequestSealData implements IConvertible
{
    String? number;
    double? weight;

    UpliftRequestSealData({this.number,this.weight});
    UpliftRequestSealData.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'number': number,
        'weight': weight
    };

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

class UpliftTemplateData implements IConvertible
{
    double? totalValue;
    List<TemplateProductData>? products;
    List<UpliftRequestSealData>? seals;

    UpliftTemplateData({this.totalValue,this.products,this.seals});
    UpliftTemplateData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        totalValue = JsonConverters.toDouble(json['totalValue']);
        products = JsonConverters.fromJson(json['products'],'List<TemplateProductData>',context!);
        seals = JsonConverters.fromJson(json['seals'],'List<UpliftRequestSealData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'totalValue': totalValue,
        'products': JsonConverters.toJson(products,'List<TemplateProductData>',context!),
        'seals': JsonConverters.toJson(seals,'List<UpliftRequestSealData>',context!)
    };

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

class StockStatusData implements IConvertible
{
    int? id;
    String? name;
    bool? photoRequired;
    String? color;

    StockStatusData({this.id,this.name,this.photoRequired,this.color});
    StockStatusData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        photoRequired = json['photoRequired'];
        color = json['color'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'photoRequired': photoRequired,
        'color': color
    };

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

class SealTemplateProduct implements IConvertible
{
    int? productId;
    String? name;
    int? productStockStatusId;
    int? quantity;
    String? serialNumber;

    SealTemplateProduct({this.productId,this.name,this.productStockStatusId,this.quantity,this.serialNumber});
    SealTemplateProduct.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        productId = json['productId'];
        name = json['name'];
        productStockStatusId = json['productStockStatusId'];
        quantity = json['quantity'];
        serialNumber = json['serialNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'productId': productId,
        'name': name,
        'productStockStatusId': productStockStatusId,
        'quantity': quantity,
        'serialNumber': serialNumber
    };

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

class SealTemplateItemData implements IConvertible
{
    String? sealNumber;
    int? productStockStatus;
    List<SealTemplateProduct>? products;

    SealTemplateItemData({this.sealNumber,this.productStockStatus,this.products});
    SealTemplateItemData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        sealNumber = json['sealNumber'];
        productStockStatus = json['productStockStatus'];
        products = JsonConverters.fromJson(json['products'],'List<SealTemplateProduct>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'sealNumber': sealNumber,
        'productStockStatus': productStockStatus,
        'products': JsonConverters.toJson(products,'List<SealTemplateProduct>',context!)
    };

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

class SealTemplateData implements IConvertible
{
    List<SealTemplateItemData>? items;

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

    fromMap(Map<String, dynamic> json) {
        items = JsonConverters.fromJson(json['items'],'List<SealTemplateItemData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'items': JsonConverters.toJson(items,'List<SealTemplateItemData>',context!)
    };

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

class AppointmentPrincipleData implements IConvertible
{
    PrincipalData? principle;
    String? scheduledDate;
    int? upliftScheduleId;
    int? upliftSchedulePrincipleId;
    int? principleOutletId;
    String? verificationCode;
    bool? goodsToCollect;
    String? outletRegion;
    String? outletName;
    String? outletChannel;
    double? outletLatitude;
    double? outletLongitude;
    double? maxSubmissionDistance;
    ActionOutsideMaxDistanceType? actionOutsideMaxDistance;
    String? completedDate;
    bool? cancelled;
    bool? completed;
    UpliftTemplateData? upliftTemplate;
    bool? prePopulated;
    List<StockStatusData>? allowedProductStockStatuses;
    String? noteToOperator;
    SealTemplateData? sealTemplate;
    bool? prePopulatedWithSeals;
    bool? preAuthed;
    String? operatorName;
    int? systemUserId;
    List<ProductExceptionData>? productExceptions;
    String? storeConfirmationDocumentUrl;

    AppointmentPrincipleData({this.principle,this.scheduledDate,this.upliftScheduleId,this.upliftSchedulePrincipleId,this.principleOutletId,this.verificationCode,this.goodsToCollect,this.outletRegion,this.outletName,this.outletChannel,this.outletLatitude,this.outletLongitude,this.maxSubmissionDistance,this.actionOutsideMaxDistance,this.completedDate,this.cancelled,this.completed,this.upliftTemplate,this.prePopulated,this.allowedProductStockStatuses,this.noteToOperator,this.sealTemplate,this.prePopulatedWithSeals,this.preAuthed,this.operatorName,this.systemUserId,this.productExceptions,this.storeConfirmationDocumentUrl});
    AppointmentPrincipleData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        principle = JsonConverters.fromJson(json['principle'],'PrincipalData',context!);
        scheduledDate = json['scheduledDate'];
        upliftScheduleId = json['upliftScheduleId'];
        upliftSchedulePrincipleId = json['upliftSchedulePrincipleId'];
        principleOutletId = json['principleOutletId'];
        verificationCode = json['verificationCode'];
        goodsToCollect = json['goodsToCollect'];
        outletRegion = json['outletRegion'];
        outletName = json['outletName'];
        outletChannel = json['outletChannel'];
        outletLatitude = JsonConverters.toDouble(json['outletLatitude']);
        outletLongitude = JsonConverters.toDouble(json['outletLongitude']);
        maxSubmissionDistance = JsonConverters.toDouble(json['maxSubmissionDistance']);
        actionOutsideMaxDistance = JsonConverters.fromJson(json['actionOutsideMaxDistance'],'ActionOutsideMaxDistanceType',context!);
        completedDate = json['completedDate'];
        cancelled = json['cancelled'];
        completed = json['completed'];
        upliftTemplate = JsonConverters.fromJson(json['upliftTemplate'],'UpliftTemplateData',context!);
        prePopulated = json['prePopulated'];
        allowedProductStockStatuses = JsonConverters.fromJson(json['allowedProductStockStatuses'],'List<StockStatusData>',context!);
        noteToOperator = json['noteToOperator'];
        sealTemplate = JsonConverters.fromJson(json['sealTemplate'],'SealTemplateData',context!);
        prePopulatedWithSeals = json['prePopulatedWithSeals'];
        preAuthed = json['preAuthed'];
        operatorName = json['operatorName'];
        systemUserId = json['systemUserId'];
        productExceptions = JsonConverters.fromJson(json['productExceptions'],'List<ProductExceptionData>',context!);
        storeConfirmationDocumentUrl = json['storeConfirmationDocumentUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'principle': JsonConverters.toJson(principle,'PrincipalData',context!),
        'scheduledDate': scheduledDate,
        'upliftScheduleId': upliftScheduleId,
        'upliftSchedulePrincipleId': upliftSchedulePrincipleId,
        'principleOutletId': principleOutletId,
        'verificationCode': verificationCode,
        'goodsToCollect': goodsToCollect,
        'outletRegion': outletRegion,
        'outletName': outletName,
        'outletChannel': outletChannel,
        'outletLatitude': outletLatitude,
        'outletLongitude': outletLongitude,
        'maxSubmissionDistance': maxSubmissionDistance,
        'actionOutsideMaxDistance': JsonConverters.toJson(actionOutsideMaxDistance,'ActionOutsideMaxDistanceType',context!),
        'completedDate': completedDate,
        'cancelled': cancelled,
        'completed': completed,
        'upliftTemplate': JsonConverters.toJson(upliftTemplate,'UpliftTemplateData',context!),
        'prePopulated': prePopulated,
        'allowedProductStockStatuses': JsonConverters.toJson(allowedProductStockStatuses,'List<StockStatusData>',context!),
        'noteToOperator': noteToOperator,
        'sealTemplate': JsonConverters.toJson(sealTemplate,'SealTemplateData',context!),
        'prePopulatedWithSeals': prePopulatedWithSeals,
        'preAuthed': preAuthed,
        'operatorName': operatorName,
        'systemUserId': systemUserId,
        'productExceptions': JsonConverters.toJson(productExceptions,'List<ProductExceptionData>',context!),
        'storeConfirmationDocumentUrl': storeConfirmationDocumentUrl
    };

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

class AppointmentData implements IConvertible
{
    int? scheduleId;
    String? appointmentDate;
    String? outletName;
    String? outletChannel;
    UpliftScheduleStatus? upliftStatus;
    bool? isComplete;
    bool? inProgress;
    bool? isLate;
    bool? goodToCollectStatus;
    String? principlesWithGoodsToCollect;
    List<AppointmentPrincipleData>? principleAppointments;

    AppointmentData({this.scheduleId,this.appointmentDate,this.outletName,this.outletChannel,this.upliftStatus,this.isComplete,this.inProgress,this.isLate,this.goodToCollectStatus,this.principlesWithGoodsToCollect,this.principleAppointments});
    AppointmentData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        scheduleId = json['scheduleId'];
        appointmentDate = json['appointmentDate'];
        outletName = json['outletName'];
        outletChannel = json['outletChannel'];
        upliftStatus = JsonConverters.fromJson(json['upliftStatus'],'UpliftScheduleStatus',context!);
        isComplete = json['isComplete'];
        inProgress = json['inProgress'];
        isLate = json['isLate'];
        goodToCollectStatus = json['goodToCollectStatus'];
        principlesWithGoodsToCollect = json['principlesWithGoodsToCollect'];
        principleAppointments = JsonConverters.fromJson(json['principleAppointments'],'List<AppointmentPrincipleData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'scheduleId': scheduleId,
        'appointmentDate': appointmentDate,
        'outletName': outletName,
        'outletChannel': outletChannel,
        'upliftStatus': JsonConverters.toJson(upliftStatus,'UpliftScheduleStatus',context!),
        'isComplete': isComplete,
        'inProgress': inProgress,
        'isLate': isLate,
        'goodToCollectStatus': goodToCollectStatus,
        'principlesWithGoodsToCollect': principlesWithGoodsToCollect,
        'principleAppointments': JsonConverters.toJson(principleAppointments,'List<AppointmentPrincipleData>',context!)
    };

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

class GetUpliftScheduleResponse extends ApiServiceResponse implements IConvertible
{
    List<AppointmentData>? appointments;

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

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        appointments = JsonConverters.fromJson(json['appointments'],'List<AppointmentData>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'appointments': JsonConverters.toJson(appointments,'List<AppointmentData>',context!)
    });

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

class GetUpliftSchedule extends ApiServiceRequest implements IConvertible
{
    GetUpliftSchedule();
    GetUpliftSchedule.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "GetUpliftSchedule";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'antel.api.dev.86degrees.com', types: <String, TypeInfo> {
    'ApiServiceRequest': TypeInfo(TypeOf.Class, create:() => ApiServiceRequest()),
    'ApiServiceResponse': TypeInfo(TypeOf.Class, create:() => ApiServiceResponse()),
    'UpliftScheduleStatus': TypeInfo(TypeOf.Enum, enumValues:UpliftScheduleStatus.values),
    'ProductData': TypeInfo(TypeOf.Class, create:() => ProductData()),
    'ProductDataCategory': TypeInfo(TypeOf.Class, create:() => ProductDataCategory()),
    'List<ProductData>': TypeInfo(TypeOf.Class, create:() => <ProductData>[]),
    'ProductExceptionData': TypeInfo(TypeOf.Class, create:() => ProductExceptionData()),
    'PrincipalData': TypeInfo(TypeOf.Class, create:() => PrincipalData()),
    'List<ProductDataCategory>': TypeInfo(TypeOf.Class, create:() => <ProductDataCategory>[]),
    'List<ProductExceptionData>': TypeInfo(TypeOf.Class, create:() => <ProductExceptionData>[]),
    'ActionOutsideMaxDistanceType': TypeInfo(TypeOf.Enum, enumValues:ActionOutsideMaxDistanceType.values),
    'TemplateProductData': TypeInfo(TypeOf.Class, create:() => TemplateProductData()),
    'Map<int,int?>': TypeInfo(TypeOf.Class, create:() => Map<int,int?>()),
    'UpliftRequestSealData': TypeInfo(TypeOf.Class, create:() => UpliftRequestSealData()),
    'UpliftTemplateData': TypeInfo(TypeOf.Class, create:() => UpliftTemplateData()),
    'List<TemplateProductData>': TypeInfo(TypeOf.Class, create:() => <TemplateProductData>[]),
    'List<UpliftRequestSealData>': TypeInfo(TypeOf.Class, create:() => <UpliftRequestSealData>[]),
    'StockStatusData': TypeInfo(TypeOf.Class, create:() => StockStatusData()),
    'SealTemplateProduct': TypeInfo(TypeOf.Class, create:() => SealTemplateProduct()),
    'SealTemplateItemData': TypeInfo(TypeOf.Class, create:() => SealTemplateItemData()),
    'List<SealTemplateProduct>': TypeInfo(TypeOf.Class, create:() => <SealTemplateProduct>[]),
    'SealTemplateData': TypeInfo(TypeOf.Class, create:() => SealTemplateData()),
    'List<SealTemplateItemData>': TypeInfo(TypeOf.Class, create:() => <SealTemplateItemData>[]),
    'AppointmentPrincipleData': TypeInfo(TypeOf.Class, create:() => AppointmentPrincipleData()),
    'List<StockStatusData>': TypeInfo(TypeOf.Class, create:() => <StockStatusData>[]),
    'AppointmentData': TypeInfo(TypeOf.Class, create:() => AppointmentData()),
    'List<AppointmentPrincipleData>': TypeInfo(TypeOf.Class, create:() => <AppointmentPrincipleData>[]),
    'GetUpliftScheduleResponse': TypeInfo(TypeOf.Class, create:() => GetUpliftScheduleResponse()),
    'List<AppointmentData>': TypeInfo(TypeOf.Class, create:() => <AppointmentData>[]),
    'GetUpliftSchedule': TypeInfo(TypeOf.Class, create:() => GetUpliftSchedule()),
});

Dart GetUpliftSchedule DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

GET /upliftscedule HTTP/1.1 
Host: antel.api.dev.86degrees.com 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"appointments":[{"scheduleId":0,"appointmentDate":"String","outletName":"String","outletChannel":"String","upliftStatus":0,"isComplete":false,"inProgress":false,"isLate":false,"goodToCollectStatus":false,"principlesWithGoodsToCollect":"","principleAppointments":[{"principle":{"principalId":0,"name":"String","authLetterFileUrl":["String"],"logoImageUrl":"String","products":[{"unitBarcode":"String","products":[{"productId":0,"principalId":0,"name":"String","category":"String","productCode":"String","unitBarcode":"String","cartonQuantity":0,"shrinkQuantity":0,"unitQuantity":0,"cartonMeasurement":"String","shrinkMeasurement":"String","unitMeasurement":"String","cartonWeight":0,"shrinkWeight":0,"unitWeight":0,"cartonPrice":0,"shrinkPrice":0,"unitPrice":0,"maxQuantity":0,"maxPrice":0}]}],"upliftPrefix":"String","contactName":"String","contactNumber":"String","contactEmail":"String","allowProductLookup":false,"hasLogo":false,"hasAuthLetter":false,"sealNetWeightMandatory":false,"allowBillableSeals":false,"captureSerialNumber":false,"batchCodesMandatory":false,"captureManufactureAndExpiryDate":false,"productExceptions":[{"region":"String","channel":"String","productId":0,"stockStatusIds":[0]}],"usesOwnSealNumbers":false},"scheduledDate":"String","upliftScheduleId":0,"upliftSchedulePrincipleId":0,"principleOutletId":0,"verificationCode":"String","goodsToCollect":false,"outletRegion":"String","outletName":"String","outletChannel":"String","outletLatitude":0,"outletLongitude":0,"maxSubmissionDistance":0,"actionOutsideMaxDistance":0,"completedDate":"String","cancelled":false,"completed":false,"upliftTemplate":{"totalValue":0,"products":[{"name":"String","productCode":"String","barcode":"String","statusQty":{"0":0},"returnValue":0}],"seals":[{"number":"String","weight":0}]},"prePopulated":false,"allowedProductStockStatuses":[{"id":0,"name":"String","photoRequired":false,"color":"String"}],"noteToOperator":"String","sealTemplate":{"items":[{"sealNumber":"String","productStockStatus":0,"products":[{"productId":0,"name":"String","productStockStatusId":0,"quantity":0,"serialNumber":"String"}]}]},"prePopulatedWithSeals":false,"preAuthed":false,"operatorName":"String","systemUserId":0,"productExceptions":[{"region":"String","channel":"String","productId":0,"stockStatusIds":[0]}],"storeConfirmationDocumentUrl":"String"}]}],"description":"String","heading":"String","wasSuccessful":false,"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}