@@ -176,6 +176,22 @@ func skuVntByMobileName(subID string) (string, error) {
176
176
case "bravevpn.yearly" :
177
177
return "brave-vpn-premium-year" , nil
178
178
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
+
179
195
// Legacy.
180
196
// Older iOS clients might still send this as subscription_id along with a receipt.
181
197
case "brave-firewall-vpn-premium" :
@@ -298,6 +314,36 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
298
314
// StripeMetadata depends on env.
299
315
}
300
316
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
+
301
347
switch env {
302
348
case "prod" , "production" :
303
349
leom .Location = "leo.brave.com"
@@ -324,6 +370,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
324
370
ItemID : "price_1L7lgCBSm1mtrN9nDlAz8WT2" ,
325
371
}
326
372
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
+
327
385
case "sandbox" , "staging" :
328
386
leom .Location = "leo.bravesoftware.com"
329
387
leom .StripeMetadata = & model.ItemStripeMetadata {
@@ -349,6 +407,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
349
407
ItemID : "price_1L8O6dBSm1mtrN9nOYyDqe0F" ,
350
408
}
351
409
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
+
352
422
case "dev" , "development" :
353
423
leom .Location = "leo.brave.software"
354
424
leom .StripeMetadata = & model.ItemStripeMetadata {
@@ -374,6 +444,18 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
374
444
ItemID : "price_1L7m0CHof20bphG6AYaCd9OU" ,
375
445
}
376
446
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
+
377
459
default :
378
460
// "local", "test", etc use the same settings as development.
379
461
leom .Location = "leo.brave.software"
@@ -399,13 +481,27 @@ func newOrderItemReqNewMobileSet(env string) map[string]model.OrderItemRequestNe
399
481
ProductID : "prod_K1c8W3oM4mUsGw" ,
400
482
ItemID : "price_1L7m0CHof20bphG6AYaCd9OU" ,
401
483
}
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
+ }
402
496
}
403
497
404
498
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 ,
409
505
}
410
506
411
507
return result
0 commit comments