diff --git a/client_test.go b/client_test.go index 3d47d33..1b07ca9 100644 --- a/client_test.go +++ b/client_test.go @@ -4257,6 +4257,16 @@ func TestClient_DeliveryTypes(t *testing.T) { "name": "Доставка курьером", "code": "courier", "active": true, + "paymentTypes": ["cash"], + "isDynamicCostCalculation": true, + "isAutoCostCalculation": true, + "isAutoNetCostCalculation": true, + "isCostDependsOnRegionAndWeightAndSum": true, + "isCostDependsOnDateTime": true, + "currency": "RUB", + "defaultCost": 300, + "defaultNetCost": 250, + "description": "Курьерская доставка", "deliveryPaymentTypes": [ { "code": "cash", @@ -4266,7 +4276,15 @@ func TestClient_DeliveryTypes(t *testing.T) { "code": "bank-card", "cod": false } - ] + ], + "integrationCode": "delivery-integration", + "deliveryServices": ["service-1"], + "defaultForCrm": true, + "vatRate": "20", + "defaultTariffCode": "express", + "defaultTariffType": "courier", + "defaultTariffName": "Экспресс", + "sites": ["main"] } } }`) @@ -4287,10 +4305,28 @@ func TestClient_DeliveryTypes(t *testing.T) { assert.Equal(t, "Доставка курьером", data.DeliveryTypes["courier"].Name) assert.Equal(t, "courier", data.DeliveryTypes["courier"].Code) assert.True(t, data.DeliveryTypes["courier"].Active) + assert.Equal(t, []string{"cash"}, data.DeliveryTypes["courier"].PaymentTypes) + assert.True(t, data.DeliveryTypes["courier"].IsDynamicCostCalculation) + assert.True(t, data.DeliveryTypes["courier"].IsAutoCostCalculation) + assert.True(t, data.DeliveryTypes["courier"].IsAutoNetCostCalculation) + assert.True(t, data.DeliveryTypes["courier"].IsCostDependsOnRegionAndWeightAndSum) + assert.True(t, data.DeliveryTypes["courier"].IsCostDependsOnDateTime) + assert.Equal(t, "RUB", data.DeliveryTypes["courier"].Currency) + assert.Equal(t, float32(300), data.DeliveryTypes["courier"].DefaultCost) + assert.Equal(t, float32(250), data.DeliveryTypes["courier"].DefaultNetCost) + assert.Equal(t, "Курьерская доставка", data.DeliveryTypes["courier"].Description) assert.Equal(t, "cash", data.DeliveryTypes["courier"].DeliveryPaymentTypes[0].Code) assert.Equal(t, "bank-card", data.DeliveryTypes["courier"].DeliveryPaymentTypes[1].Code) assert.False(t, data.DeliveryTypes["courier"].DeliveryPaymentTypes[0].Cod) assert.False(t, data.DeliveryTypes["courier"].DeliveryPaymentTypes[1].Cod) + assert.Equal(t, "delivery-integration", data.DeliveryTypes["courier"].IntegrationCode) + assert.Equal(t, []string{"service-1"}, data.DeliveryTypes["courier"].DeliveryServices) + assert.True(t, data.DeliveryTypes["courier"].DefaultForCrm) + assert.Equal(t, "20", data.DeliveryTypes["courier"].VatRate) + assert.Equal(t, "express", data.DeliveryTypes["courier"].DefaultTariffCode) + assert.Equal(t, "courier", data.DeliveryTypes["courier"].DefaultTariffType) + assert.Equal(t, "Экспресс", data.DeliveryTypes["courier"].DefaultTariffName) + assert.Equal(t, []string{"main"}, data.DeliveryTypes["courier"].Sites) } func TestClient_LegalEntities(t *testing.T) { diff --git a/types.go b/types.go index f78eb8e..8a2aa37 100644 --- a/types.go +++ b/types.go @@ -1047,19 +1047,28 @@ type DeliveryService struct { // DeliveryType type. type DeliveryType struct { - Name string `json:"name,omitempty"` - Code string `json:"code,omitempty"` - Active bool `json:"active,omitempty"` - DefaultCost float32 `json:"defaultCost,omitempty"` - DefaultNetCost float32 `json:"defaultNetCost,omitempty"` - Description string `json:"description,omitempty"` - IntegrationCode string `json:"integrationCode,omitempty"` - VatRate string `json:"vatRate,omitempty"` - DefaultForCrm bool `json:"defaultForCrm,omitempty"` - DeliveryServices []string `json:"deliveryServices,omitempty"` - PaymentTypes []string `json:"paymentTypes,omitempty"` // Deprecated, use DeliveryPaymentTypes - DeliveryPaymentTypes []DeliveryPaymentType `json:"deliveryPaymentTypes,omitempty"` - Currency string `json:"currency,omitempty"` + Name string `json:"name,omitempty"` + Code string `json:"code,omitempty"` + Active bool `json:"active,omitempty"` + DefaultCost float32 `json:"defaultCost,omitempty"` + DefaultNetCost float32 `json:"defaultNetCost,omitempty"` + Description string `json:"description,omitempty"` + IntegrationCode string `json:"integrationCode,omitempty"` + VatRate string `json:"vatRate,omitempty"` + DefaultForCrm bool `json:"defaultForCrm,omitempty"` + DeliveryServices []string `json:"deliveryServices,omitempty"` + PaymentTypes []string `json:"paymentTypes,omitempty"` // Deprecated, use DeliveryPaymentTypes + DeliveryPaymentTypes []DeliveryPaymentType `json:"deliveryPaymentTypes,omitempty"` + IsDynamicCostCalculation bool `json:"isDynamicCostCalculation,omitempty"` + IsAutoCostCalculation bool `json:"isAutoCostCalculation,omitempty"` + IsAutoNetCostCalculation bool `json:"isAutoNetCostCalculation,omitempty"` + IsCostDependsOnRegionAndWeightAndSum bool `json:"isCostDependsOnRegionAndWeightAndSum,omitempty"` + IsCostDependsOnDateTime bool `json:"isCostDependsOnDateTime,omitempty"` + Currency string `json:"currency,omitempty"` + DefaultTariffCode string `json:"defaultTariffCode,omitempty"` + DefaultTariffType string `json:"defaultTariffType,omitempty"` + DefaultTariffName string `json:"defaultTariffName,omitempty"` + Sites []string `json:"sites,omitempty"` } type DeliveryPaymentType struct {