Monetization: Polar chosen as billing provider
- Updated ai.md billing decision to reference Polar (polar.sh) - Updated code comments (PremiumUrl, IsPremium) to reference Polar - MONETIZATION.md updated locally (gitignored — confidential) 207 tests, 0 warnings.
This commit is contained in:
@@ -144,14 +144,14 @@ public class MainViewModel : ViewModelBase
|
||||
// integration test can assert they point at real destinations.
|
||||
public const string ChannelUrl = "https://youtube.com/@llamachileshop";
|
||||
public const string MastodonUrl = "https://mastodon.llamachile.tube/@gramps";
|
||||
// Tabled 2026-08-14: the billing provider is not chosen yet (Gumroad/Lemon Squeezy — TASK 23);
|
||||
// Tabled 2026-08-14: billing provider chosen (Polar — polar.sh);
|
||||
// the subscription page (premium unlock) lands here once set up. Coffee/thanks URL is live.
|
||||
public const string PremiumUrl = "";
|
||||
public const string CoffeeUrl = "https://buymeacoffee.com/llamachiley";
|
||||
public static string AppVersionLabel => $"Version {typeof(MainViewModel).Assembly.GetName().Version?.ToString(3)}";
|
||||
|
||||
/// <summary>The About hub's Unlock Premium button lights up only once the
|
||||
/// billing URL is set (tabled 2026-08-14 — provider undecided, TASK 23).</summary>
|
||||
/// billing URL is set (Polar — polar.sh, pending TASK 10 implementation).</summary>
|
||||
public bool IsPremiumAvailable => PremiumUrl.Length > 0;
|
||||
|
||||
/// <summary>Full in-app licensing/legal text, loaded on demand from the
|
||||
@@ -257,7 +257,7 @@ public class MainViewModel : ViewModelBase
|
||||
public SocialsConfig? Socials => _socials;
|
||||
|
||||
/// <summary>Freemium: 6 slots — YT + 1 other, the rest locked. Premium seam: all 6 open.</summary>
|
||||
private static bool IsPremium => false; // unlock deferred (TASK 23) — seam only
|
||||
private static bool IsPremium => false; // unlock deferred (TASK 10) — seam only
|
||||
|
||||
/// <summary>Canvas.Top for the social bar: 0 = top, 1040 = bottom (40px from the 1080 edge).</summary>
|
||||
public double SocialBarTop => _socials?.BarPosition == SocialBarPosition.Top ? 0 : 1040;
|
||||
|
||||
Reference in New Issue
Block a user