Store Page
A StorePage is a sellable listing that bundles one or more Games together at a Bitcoin price. It is the primary sales unit on Ludilol — buyers purchase from store pages, not directly from games.
Properties
| Property | Type | Description |
|---|---|---|
Id | int | Primary key |
SellerId | int | FK → the AppUser who owns this page |
Title | string | Display name |
Slug | string | URL path segment (/pages/{slug}) |
Description | string? | Short description |
GameSetKey | string | Deduplication key for the bundle of games |
PriceSats | long | Net price in satoshis |
SelectedPaymentDestinationId | int | FK → on-chain PaymentDestination |
State | StorePageState | Current state (see below) |
DeliveryMode | DeliveryMode | How games are delivered |
PreviewToken | string? | Secret token for previewing before opening |
OpensAtUtc | DateTime? | Scheduled open date |
ClosesAtUtc | DateTime? | Scheduled close date |
LogoBlobName | string? | 256×256 PNG logo blob key |
VatEnabled | bool | Whether VAT is added to the price |
VatPercentage | decimal? | VAT rate if enabled |
InvoiceEnabled | bool | Whether invoices are sent to buyers |
AllowAnonymousSales | bool | Whether anonymous purchases are allowed |
LightningEnabled | bool | Whether Lightning payments are accepted |
LightningPaymentDestinationId | int? | FK → Lightning PaymentDestination |
States
| Value | Name | Description |
|---|---|---|
| 1 | Closed | Not publicly visible or purchasable |
| 2 | Preview | Visible only via the preview token |
| 3 | Open | Publicly visible and purchasable |
Delivery Modes
| Value | Name | Description |
|---|---|---|
| 1 | Download | Buyers download the game zip |
| 2 | HtmlPlayable | Buyers play the game in-browser |
Pricing
PriceSatsis the net price (before VAT).CalculateVatAmountSats()computes VAT based onVatPercentage.CalculateGrossAmountSats()returns net + VAT.
Relationships
StorePage (1) ──── (1) AppUser (seller)
StorePage (1) ──── (1) PaymentDestination (on-chain)
StorePage (1) ──── (0..1) PaymentDestination (lightning)
StorePage (N) ──── StorePageGame ──── (N) Game
StorePage (1) ──── (N) Order