using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
///
///
///
public class MSKAPIBookingDto
{
///
/// 请求接口账户KEY
///
public string userKey { get; set; }
///
/// 请求接口账户密钥
///
public string userSecret { get; set; }
///
/// 运行环境(TEST, PRODUCTION)
///
public string operatingEnvironment { get; set; }
///
/// 马士基APPKey
///
public string mskAppKey { get; set; }
///
/// 马士基APP密钥
///
public string mskAppSecret { get; set; }
///
/// 订舱数据集
///
public MSKAPIBookingBodyDto bookingBody { get; set; }
}
///
///
///
public class MSKAPIBookingBodyDto
{
///
/// 订舱基本数据
///
public MSKAPIBookingReferenceDto references { get; set; }
///
/// 订舱人信息
///
public MSKAPIBookingMandatoryParties mandatoryParties { get; set; }
///
/// 港口信息
///
public MSKAPIBookingTransport transport { get; set; }
///
/// 货物信息
///
public MSKAPIBookingCargo cargo { get; set; }
///
/// 设备及运输信息
///
public List equipmentAndHaulage { get; set; }
}
///
/// 订舱基本数据
///
public class MSKAPIBookingReferenceDto
{
///
/// 合同唯一id
///
public string priceReference { get; set; }
///
/// 产品类型(MaerskSpot, SealandSpot, MaerskContract)
///
public string productCode { get; set; }
///
/// 请求类别, 目前只能传 BOOKAPI
///
public string sender { get; set; }
///
/// 对应的产品类型
///
public string deliveryAgreementType { get; set; }
///
/// Flag that indicates if the Spot Rate Product Offer is rollable. This flag is applicable to Spot bookings only
///
public Nullable isRollable { get; set; }
///
/// 是否接受接受即期条款和条件
///
public Nullable isSpotTermsAndConditionsAccepted { get; set; }
///
/// 预定地点名称
///
public string bookingOfficeName { get; set; }
///
/// 预定地点代码
///
public string bookingOfficeUNLocationCode { get; set; }
}
///
/// 订舱人信息
///
public class MSKAPIBookingMandatoryParties
{
///
/// 订舱公司名称
///
public string bookedByCompanyName { get; set; }
///
/// 订舱公司地址信息
///
public MSKAPIBookingMandatoryPartyAddress bookedByCompanyAddress { get; set; }
///
/// 订舱预定参考
///
public string bookedByPartyReference { get; set; }
///
/// 承运人id,用于识别预定方
///
public string bookedByMaerskPartyCode { get; set; }
///
/// 预定方联系信息
///
public MSKAPIBookingMandatoryPartyContact bookedByPartyContact { get; set; }
///
/// 价格所有者公司名称
///
public string priceOwnerCompanyName { get; set; }
///
/// 价格所有者公司地址信息
///
public MSKAPIBookingMandatoryPartyAddress priceOwnerCompanyAddress { get; set; }
///
/// 价格可选参考
///
public string priceOwnerPartyReference { get; set; }
///
/// 价格所有者id
///
public string priceOwnerMaerskPartyCode { get; set; }
///
/// 价格所有者联系人
///
public MSKAPIBookingMandatoryPartyContact priceOwnerPartyContact { get; set; }
///
///
///
public Nullable isPriceOwnerFromServiceContractAccepted { get; set; }
}
///
/// 地址信息
///
public class MSKAPIBookingMandatoryPartyAddress
{
///
/// 街道号及名称
///
public string streetAddress { get; set; }
///
/// 城市名
///
public string cityName { get; set; }
///
/// 邮政编码
///
public string postalCode { get; set; }
///
/// 马士基内部定义的地址id
///
public string maerskDepotOrTerminalGeoId { get; set; }
///
/// ISO国家代码
///
public string ISOcountryCode { get; set; }
///
/// 出口SD服务的客户设施代码
///
public string customerFacilityCode { get; set; }
}
///
/// 联系人信息
///
public class MSKAPIBookingMandatoryPartyContact
{
///
/// 联系人姓名
///
public string name { get; set; }
///
/// 邮箱
///
public string email { get; set; }
///
/// 电话号码
///
public string phoneNumber { get; set; }
}
///
/// 港口信息
///
public class MSKAPIBookingTransport
{
///
/// 承运人代码(MAEU, SEAU, SEJJ, MCPU, MAEI)
///
public string carrierCode { get; set; }
///
/// 最早起运日期, 不可小于当前日期
///
public string earliestDepartureDate { get; set; }
///
/// 出口服务类型(CY, SD, CFS)
///
public string exportServiceMode { get; set; }
///
/// 进口服务类型
///
public string importServiceMode { get; set; }
///
/// 路线信息
///
public MSKAPIBookingRouteDetails routeDetails { get; set; }
}
///
///
///
public class MSKAPIBookingRouteDetails
{
///
/// 收货地信息
///
public MSKAPIBookingRouteDetailsBase placeOfReceipt { get; set; }
///
/// 交货地
///
public MSKAPIBookingRouteDetailsBase placeOfDelivery { get; set; }
///
/// 首选装货港
///
public MSKAPIBookingRouteDetailsBase preferredLoadPort { get; set; }
///
/// 首选卸货港
///
public MSKAPIBookingRouteDetailsBase preferredDischargePort { get; set; }
public MSKAPIBookingRoute selectedRoute { get; set; }
}
///
///
///
public class MSKAPIBookingRouteDetailsBase
{
///
/// UN地点代码, 目前采用这种策略
///
public string UNLocationCode { get; set; }
///
/// 站点名称
///
public string siteName { get; set; }
///
/// 城市名称
///
public string cityName { get; set; }
///
/// 区域名
///
public string regionName { get; set; }
///
/// ISO国家代码
///
public string ISOcountryCode { get; set; }
///
/// 马士基城市id
///
public string maerskCityGeoId { get; set; }
///
/// 马士基站点id
///
public string maerskSiteGeoId { get; set; }
}
///
///
///
public class MSKAPIBookingRoute
{
///
/// 根据特定的出发地和目的地为航线计划分配ID
///
public string routeScheduleId { get; set; }
///
/// 日历周序号
///
public Nullable weekNumber { get; set; }
///
/// 路线id
///
public string routeId { get; set; }
///
/// 路线代码
///
public string routeCode { get; set; }
///
/// 贸易航线名称
///
public string tradeLaneName { get; set; }
///
/// ap Moller-Maersk A/S为专门为指定客户帐户创建的指定帐户海洋产品(NAP)分配的唯一ID
///
public string namedAccountProductReference { get; set; }
///
///
///
public MSKAPIBookingCardinalDirection cardinalDirection { get; set; }
///
///
///
public List bookingSchedules { get; set; }
///
/// 航行时间,分钟为单位
///
public string transitTime { get; set; }
}
///
///
///
public class MSKAPIBookingCardinalDirection
{
///
/// 方向代码(N, S, W, E)
///
public string directionCode { get; set; }
///
/// 方向名(NORTH, SOUTH, WEST, EAST)
///
public string directionName { get; set; }
}
///
///
///
public class MSKAPIBookingSchedules
{
///
/// 路线唯一id
///
public string routeLinkId { get; set; }
///
/// 出发时间, ISO时间格式
///
public string originDepartureDateTimeLocal { get; set; }
///
/// 到达时间, ISO时间格式
///
public string destinationArrivalDateTimeLocal { get; set; }
///
///
///
public MSKAPIBookingTransportMode transportMode { get; set; }
///
/// The time in minutes between the current route link and the next route link.
///
public Nullable layoverTime { get; set; }
///
/// Describes the type of route link(P, E, M, I, D, T )
///
public string routingType { get; set; }
///
/// 运营商分配的业务代码
///
public string serviceCode { get; set; }
///
/// 产品序列id
///
public string routingSequence { get; set; }
///
/// 出发地
///
public MSKAPIBookingRouteDetailsBase startLocation { get; set; }
///
/// 目的地
///
public MSKAPIBookingRouteDetailsBase endLocation { get; set; }
///
/// 承运人代码
///
public string inlandCarrierCode { get; set; }
///
/// 可选的定期航空公司名称
///
public string carrierName { get; set; }
///
/// 运输方式代码(BAR, BCO, DST, FEF, FEO, MVS, RCO, RR, SSH, TRK, VSF, VSL, VSM)
///
public string transportModeCode { get; set; }
///
/// 航行时间,分钟
///
public Nullable transitTime { get; set; }
///
/// 航行时间单位
///
public string transitTimeUnits { get; set; }
}
///
/// 交通工具(船舶)信息
///
public class MSKAPIBookingTransportMode
{
///
/// 船舶信息
///
public MSKAPIBookingTransportModeVessel vessel { get; set; }
///
/// 出口航次代码
///
public string exportVoyageNumber { get; set; }
///
/// 进口航次代码
///
public string importVoyageNumber { get; set; }
}
///
///
///
public class MSKAPIBookingTransportModeVessel
{
///
/// 运营商分配的唯一的3个字符的代码
///
public string maerskVesselCode { get; set; }
///
/// 船名
///
public string name { get; set; }
///
/// 船舶所属的国家代号
///
public string flagCode { get; set; }
///
/// 船舶所属的国家名称
///
public string flagName { get; set; }
///
/// 船舶IMO号
///
public string vesselIMONumber { get; set; }
///
/// 船舶的唯一字母数字标识
///
public string callSign { get; set; }
///
/// 船舶建造的年份
///
public string buildYear { get; set; }
}
///
///
///
public class MSKAPIBookingCargo
{
///
/// 货物代码
///
public string commodityCode { get; set; }
///
/// 货物代码类型, 目前只能传 MaerskCode
///
public string commodityCodeType { get; set; }
///
/// 货物类型, 箱型, 为REEFER 时, 需要上传reeferSettings参数中的温度,通风,湿度等(DRY, REEFER)
///
public string cargoType { get; set; }
///
/// 重量
///
public Nullable totalCargoWeight { get; set; }
///
/// 重量单位(KGS, LBS)
///
public string totalWeightMeasurementUnit { get; set; }
///
/// 货物总体积
///
public Nullable totalCargoVolume { get; set; }
///
/// 总体积单位(MTQ, FTQ)
///
public string totalVolumeMeasurementUnit { get; set; }
///
/// 冻柜相关配置
///
public MSKAPIBookingCargoReeferSettings reeferSettings { get; set; }
}
///
/// 货物信息
///
public class MSKAPIBookingCargoReeferSettings
{
///
/// 冷藏集装箱类型(STANDARD, MAGNUM, SUPER_FREEZER, STAR_CARE, STAR_FRESH)
///
public string reeferContainerConfiguration { get; set; }
///
/// 温度
///
public Nullable temperatureDetails { get; set; }
///
/// 温度类型(F, C)
///
public string temperatureMeasureUnit { get; set; }
///
/// 温度探头的数量
///
public Nullable noOfProbes { get; set; }
///
/// 通风
///
public Nullable ventilation { get; set; }
///
/// 湿度
///
public Nullable humidity { get; set; }
///
/// 是否需要冷处理
///
public Nullable isColdTreatmentRequired { get; set; }
///
/// 是否需要发电机组
///
public Nullable isGensetOriginRequired { get; set; }
///
/// 氧气百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型
///
public Nullable o2Percentage { get; set; }
///
/// 二氧化碳百分比,此字段仅适用于StarCare或StarFresh冷藏箱类型
///
public Nullable co2Percentage { get; set; }
}
///
///
///
public class MSKAPIBookingEquipmentAndHaulage
{
///
/// 设备详细信息
///
public MSKAPIBookingEquipmentAndHaulageItem equipmentDetails { get; set; }
///
/// 装箱细节信息
///
public List stuffingDetails { get; set; }
}
///
/// 设备详细信息
///
public class MSKAPIBookingEquipmentAndHaulageItem
{
///
/// ISO箱型代码
/// (20T3, 22G1, 22H0, 22P1, 22R1, 22T3, 22U1, 22U3, 22V2, 25G1, 2928, 2CG1, 2EG1, 42G1,
/// 42P0, 42P1, 42R1, 42T3, 42U1, 45G1, 45P3, 45R1, 45R9, 45U1, 4928, 49P0, 4CG1, 4EG1,
/// L5G1, L5R1, LEG1)
///
public string ISOEquipmentCode { get; set; }
///
/// 箱量
///
public Nullable equipmentQuantity { get; set; }
///
/// 集装箱标识号
///
public string shipperEquipmentReference { get; set; }
///
/// 是否是托运人所有
///
public Nullable isShipperOwned { get; set; }
///
/// 是否返场
///
public Nullable isImportReturned { get; set; }
}
///
///
///
public class MSKAPIBookingStuffingdetails
{
///
/// 箱计量单位(WEIGHT, VOLUME)
///
public string stuffingMeasurementType { get; set; }
///
/// 重量或者体积
///
public Nullable stuffingValue { get; set; }
///
/// 重量或者体积的计量单位(KGS, LBS, MTQ, FTQ)
///
public string stuffingMeasurementUnit { get; set; }
}
}