From 11d85ac864f2e9f9c0bfecab37834105f620d622 Mon Sep 17 00:00:00 2001 From: Pavel Date: Tue, 9 Apr 2024 22:03:20 +0300 Subject: [PATCH] add ServiceKey --- docs/openapi.yaml | 3 +++ internal/models/bonus.go | 2 ++ internal/repository/promocode_repository.go | 3 +++ internal/services/promocode_service.go | 1 + 4 files changed, 9 insertions(+) diff --git a/docs/openapi.yaml b/docs/openapi.yaml index cfd2a32..b1a7323 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -491,6 +491,9 @@ components: amount: type: integer description: Количество привилегии + serviceKey: + type: string + description: Тип сервиса Discount: type: object diff --git a/internal/models/bonus.go b/internal/models/bonus.go index ccbdc7d..f05ac94 100644 --- a/internal/models/bonus.go +++ b/internal/models/bonus.go @@ -17,6 +17,7 @@ type PromoCode struct { Privilege struct { PrivilegeID string `json:"privilegeID" bson:"privilegeID"` // айдишник привилегии, которая будет выдаваться Amount uint64 `json:"amount" bson:"amount"` // количество + ServiceKey string `json:"serviceKey" bson:"serviceKey"` // тип сервиса } `json:"privilege" bson:"privilege"` Discount struct { Layer uint32 `json:"layer" bson:"layer"` // 1|2 @@ -47,6 +48,7 @@ type ReqEditPromoCode struct { Privilege *struct { PrivilegeID string `json:"privilegeID,omitempty" bson:"privilegeID"` Amount uint64 `json:"amount,omitempty" bson:"amount"` + ServiceKey string `json:"serviceKey,omitempty" bson:"serviceKey"` // тип сервиса } `json:"privilege,omitempty" bson:"privilege"` Discount *struct { diff --git a/internal/repository/promocode_repository.go b/internal/repository/promocode_repository.go index 27fa945..caf9682 100644 --- a/internal/repository/promocode_repository.go +++ b/internal/repository/promocode_repository.go @@ -110,6 +110,9 @@ func (r *PromoCodeRepository) EditPromoCode(ctx context.Context, req *models.Req if req.Bonus.Privilege.Amount != 0 { updateFields["bonus.privilege.amount"] = req.Bonus.Privilege.Amount } + if req.Bonus.Privilege.ServiceKey != "" { + updateFields["bonus.privilege.serviceKey"] = req.Bonus.Privilege.ServiceKey + } } if req.Bonus.Discount != nil { if req.Bonus.Discount.Layer != 0 { diff --git a/internal/services/promocode_service.go b/internal/services/promocode_service.go index 3a75698..33614fe 100644 --- a/internal/services/promocode_service.go +++ b/internal/services/promocode_service.go @@ -142,6 +142,7 @@ func (s *PromoCodeService) ActivatePromo(ctx context.Context, req *models.Activa privilege := models.Privilege{ PrivilegeID: promoCode.Bonus.Privilege.PrivilegeID, Amount: promoCode.Bonus.Privilege.Amount, + ServiceKey: promoCode.Bonus.Privilege.ServiceKey, } privileges = append(privileges, privilege)