Skip to content

Commit cc2e00a

Browse files
authored
feat: add skus order items and mobile mappings for brave origin (#2886)
* feat: add android mapping sku vnt origin * feat: add origin monthly and annual to new order item mobile set * feat: add ios mobile mappings for brave origin monthly and annual
1 parent 5ebe48d commit cc2e00a

File tree

2 files changed

+332
-20
lines changed

2 files changed

+332
-20
lines changed

services/skus/skus.go

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,22 @@ func skuVntByMobileName(subID string) (string, error) {
176176
case "bravevpn.yearly":
177177
return "brave-vpn-premium-year", nil
178178

179+
// Android Origin Monthly.
180+
case "brave.origin.monthly", "beta.origin.monthly", "nightly.origin.monthly":
181+
return "brave-origin-premium", nil
182+
183+
// Android Origin Annual.
184+
case "brave.origin.yearly", "beta.origin.yearly", "nightly.origin.yearly":
185+
return "brave-origin-premium-year", nil
186+
187+
// iOS Origin Monthly.
188+
case "braveorigin.monthly", "beta.braveorigin.monthly", "nightly.braveorigin.monthly":
189+
return "brave-origin-premium", nil
190+
191+
// iOS Origin Annual.
192+
case "braveorigin.yearly", "beta.braveorigin.yearly", "nightly.braveorigin.yearly":
193+
return "brave-origin-premium-year", nil
194+
179195
// Legacy.
180196
// Older iOS clients might still send this as subscription_id along with a receipt.
181197
case "brave-firewall-vpn-premium":
@@ -298,6 +314,36 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
298314
// StripeMetadata depends on env.
299315
}
300316

317+
originm := model.OrderItemRequestNew{
318+
Quantity: 1,
319+
SKU: "brave-origin-premium",
320+
SKUVnt: "brave-origin-premium",
321+
// Location depends on env.
322+
Description: "brave-origin-premium",
323+
CredentialType: "time-limited-v2",
324+
CredentialValidDuration: "P1M",
325+
Price: decimal.RequireFromString("4.99"),
326+
IssuerTokenBuffer: ptrTo(3),
327+
IssuerTokenOverlap: ptrTo(0),
328+
CredentialValidDurationEach: ptrTo("P1M"),
329+
// StripeMetadata depends on env.
330+
}
331+
332+
origina := model.OrderItemRequestNew{
333+
Quantity: 1,
334+
SKU: "brave-origin-premium",
335+
SKUVnt: "brave-origin-premium-year",
336+
// Location depends on env.
337+
Description: "brave-origin-premium-year",
338+
CredentialType: "time-limited-v2",
339+
CredentialValidDuration: "P1M",
340+
Price: decimal.RequireFromString("49.99"),
341+
IssuerTokenBuffer: ptrTo(3),
342+
IssuerTokenOverlap: ptrTo(0),
343+
CredentialValidDurationEach: ptrTo("P1M"),
344+
// StripeMetadata depends on env.
345+
}
346+
301347
switch env {
302348
case "prod", "production":
303349
leom.Location = "leo.brave.com"
@@ -324,6 +370,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
324370
ItemID: "price_1L7lgCBSm1mtrN9nDlAz8WT2",
325371
}
326372

373+
originm.Location = "origin.brave.com"
374+
originm.StripeMetadata = &model.ItemStripeMetadata{
375+
ProductID: "prod_SgtPlrWPPAddlH",
376+
ItemID: "price_1RlVd7BSm1mtrN9nGrrjQXiN",
377+
}
378+
379+
origina.Location = "origin.brave.com"
380+
origina.StripeMetadata = &model.ItemStripeMetadata{
381+
ProductID: "prod_SgtPlrWPPAddlH",
382+
ItemID: "price_1RlVdwBSm1mtrN9njhstCyDf",
383+
}
384+
327385
case "sandbox", "staging":
328386
leom.Location = "leo.bravesoftware.com"
329387
leom.StripeMetadata = &model.ItemStripeMetadata{
@@ -349,6 +407,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
349407
ItemID: "price_1L8O6dBSm1mtrN9nOYyDqe0F",
350408
}
351409

410+
originm.Location = "origin.bravesoftware.com"
411+
originm.StripeMetadata = &model.ItemStripeMetadata{
412+
ProductID: "prod_SgrGEhIjFxoCkd",
413+
ItemID: "price_1RlTY0BSm1mtrN9nBICsSzCH",
414+
}
415+
416+
origina.Location = "origin.bravesoftware.com"
417+
origina.StripeMetadata = &model.ItemStripeMetadata{
418+
ProductID: "prod_SgrGEhIjFxoCkd",
419+
ItemID: "price_1RlTbFBSm1mtrN9nIG5T5uEZ",
420+
}
421+
352422
case "dev", "development":
353423
leom.Location = "leo.brave.software"
354424
leom.StripeMetadata = &model.ItemStripeMetadata{
@@ -374,6 +444,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
374444
ItemID: "price_1L7m0CHof20bphG6AYaCd9OU",
375445
}
376446

447+
originm.Location = "origin.brave.software"
448+
originm.StripeMetadata = &model.ItemStripeMetadata{
449+
ProductID: "prod_SgrUuNI96kVrue",
450+
ItemID: "price_1RlTllHof20bphG6EsmBsSzY",
451+
}
452+
453+
origina.Location = "origin.brave.software"
454+
origina.StripeMetadata = &model.ItemStripeMetadata{
455+
ProductID: "prod_SgrUuNI96kVrue",
456+
ItemID: "price_1RlTnUHof20bphG6SjoGpYLB",
457+
}
458+
377459
default:
378460
// "local", "test", etc use the same settings as development.
379461
leom.Location = "leo.brave.software"
@@ -399,13 +481,27 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
399481
ProductID: "prod_K1c8W3oM4mUsGw",
400482
ItemID: "price_1L7m0CHof20bphG6AYaCd9OU",
401483
}
484+
485+
originm.Location = "origin.brave.software"
486+
originm.StripeMetadata = &model.ItemStripeMetadata{
487+
ProductID: "prod_SgrUuNI96kVrue",
488+
ItemID: "price_1RlTllHof20bphG6EsmBsSzY",
489+
}
490+
491+
origina.Location = "origin.brave.software"
492+
origina.StripeMetadata = &model.ItemStripeMetadata{
493+
ProductID: "prod_SgrUuNI96kVrue",
494+
ItemID: "price_1RlTnUHof20bphG6SjoGpYLB",
495+
}
402496
}
403497

404498
result := map[string]model.OrderItemRequestNew{
405-
leom.SKUVnt: leom,
406-
leoa.SKUVnt: leoa,
407-
vpnm.SKUVnt: vpnm,
408-
vpna.SKUVnt: vpna,
499+
leom.SKUVnt: leom,
500+
leoa.SKUVnt: leoa,
501+
vpnm.SKUVnt: vpnm,
502+
vpna.SKUVnt: vpna,
503+
originm.SKUVnt: originm,
504+
origina.SKUVnt: origina,
409505
}
410506

411507
return result

0 commit comments

Comments
 (0)