250e85732d
new shop system more config options arena & hype per season stats battle pass better variant system complete vbuck & starter pack store fix bugs related to deleting account update launcher endpoints fixed gift loot not deleting
130 lines
3.4 KiB
Go
130 lines
3.4 KiB
Go
package shop
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/ectrc/snow/aid"
|
|
)
|
|
|
|
type StorefrontCatalogOfferMetaTypeBattlePass struct {
|
|
TileSize string
|
|
SectionID string
|
|
DisplayAssetPath string
|
|
NewDisplayAssetPath string
|
|
Priority int
|
|
OnlyOnce bool
|
|
}
|
|
|
|
type StorefrontCatalogOfferTypeBattlePass struct {
|
|
OfferID string
|
|
OfferType StorefrontCatalogOfferEnum
|
|
Rewards []*StorefrontCatalogOfferGrant
|
|
Price *StorefrontCatalogOfferPriceMtxCurrency
|
|
Diplay *OfferDisplay
|
|
Categories []string
|
|
Meta *StorefrontCatalogOfferMetaTypeBattlePass
|
|
}
|
|
|
|
func NewBattlePassCatalogOffer() *StorefrontCatalogOfferTypeBattlePass {
|
|
return &StorefrontCatalogOfferTypeBattlePass{
|
|
OfferID: aid.RandomString(32),
|
|
OfferType: StorefrontCatalogOfferEnumBattlePass,
|
|
Rewards: make([]*StorefrontCatalogOfferGrant, 0),
|
|
Price: &StorefrontCatalogOfferPriceMtxCurrency{},
|
|
Diplay: &OfferDisplay{},
|
|
Categories: make([]string, 0),
|
|
Meta: &StorefrontCatalogOfferMetaTypeBattlePass{},
|
|
}
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GetOffer() *StorefrontCatalogOfferTypeBattlePass {
|
|
return o
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GetOfferID() string {
|
|
return o.OfferID
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GetOfferType() StorefrontCatalogOfferEnum {
|
|
return o.OfferType
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GetOfferPrice() *StorefrontCatalogOfferPriceMtxCurrency {
|
|
return o.Price
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GetRewards() []*StorefrontCatalogOfferGrant {
|
|
return o.Rewards
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GenerateFortniteCatalogOfferResponse() aid.JSON {
|
|
return aid.JSON{
|
|
"offerId": o.OfferID,
|
|
"offerType": "StaticPrice",
|
|
"devName": fmt.Sprintf("[BOOK] %s", o.Diplay.ShortDescription),
|
|
"itemGrants": []string{},
|
|
"requirements": aid.Ternary[[]aid.JSON](o.Meta.OnlyOnce, []aid.JSON{{
|
|
"requirementType": "DenyOnFulfillment",
|
|
"requiredId": o.GetOfferID(),
|
|
"minQuantity": 1,
|
|
}}, []aid.JSON{}),
|
|
"fulfillmentIds": []string{o.OfferID},
|
|
"categories": o.Categories,
|
|
"metaInfo": []aid.JSON{
|
|
{
|
|
"Key": "TileSize",
|
|
"Value": o.Meta.TileSize,
|
|
},
|
|
{
|
|
"Key": "SectionId",
|
|
"Value": o.Meta.SectionID,
|
|
},
|
|
{
|
|
"Key": "NewDisplayAssetPath",
|
|
"Value": o.Meta.NewDisplayAssetPath,
|
|
},
|
|
{
|
|
"Key": "DisplayAssetPath",
|
|
"Value": o.Meta.DisplayAssetPath,
|
|
},
|
|
},
|
|
"meta": aid.JSON{
|
|
"TileSize": o.Meta.TileSize,
|
|
"SectionId": o.Meta.SectionID,
|
|
"DisplayAssetPath": o.Meta.DisplayAssetPath,
|
|
"NewDisplayAssetPath": o.Meta.NewDisplayAssetPath,
|
|
},
|
|
"giftInfo": aid.JSON{
|
|
"bIsEnabled": false,
|
|
"forcedGiftBoxTemplateId": "",
|
|
"purchaseRequirements": []string{},
|
|
"giftRecordIds": []string{},
|
|
},
|
|
"prices": []aid.JSON{{
|
|
"currencyType": "MtxCurrency",
|
|
"currencySubType": "Currency",
|
|
"regularPrice": o.Price.OriginalPrice,
|
|
"dynamicRegularPrice": -1,
|
|
"finalPrice": o.Price.FinalPrice,
|
|
"basePrice": o.Price.OriginalPrice,
|
|
"saleType": o.Price.SaleType,
|
|
"saleExpiration": "9999-12-31T23:59:59.999Z",
|
|
}},
|
|
"displayAssetPath": o.Meta.DisplayAssetPath,
|
|
"refundable": false,
|
|
"title": o.Diplay.Title,
|
|
"description": o.Diplay.Description,
|
|
"shortDescription": o.Diplay.ShortDescription,
|
|
"appStoreId": []string{},
|
|
"dailyLimit": -1,
|
|
"weeklyLimit": -1,
|
|
"monthlyLimit": -1,
|
|
"sortPriority": o.Meta.Priority,
|
|
"catalogGroupPriority": 0,
|
|
"filterWeight": 0,
|
|
}
|
|
}
|
|
|
|
func (o *StorefrontCatalogOfferTypeBattlePass) GenerateFortniteBulkOffersResponse() aid.JSON {
|
|
return aid.JSON{}
|
|
} |