Skip to content

App User

The AppUser entity extends ASP.NET Core Identity's IdentityUser<int> with marketplace-specific fields. Users can be players (buyers), makers (sellers), or both.

Properties

PropertyTypeDescription
IdintPrimary key
CreatedAtUtcDateTimeRegistration date
IsMakerboolWhether this user has completed maker onboarding
MakerFullNamestring?Legal name for invoicing
MakerBillingAddressstring?Billing address for invoicing
MakerEulaAcceptedAtUtcDateTime?When the maker EULA was accepted
PreferredUiCulturestring?UI language preference
PreferredLocalestring?Regional formatting preference
PreferredCurrencystringDisplay currency (default: EUR)
CreditBalanceintCurrent credit balance for platform services
VatIdstring?VAT identification number
BillingCompanyNamestring?Company name for VAT-exempt invoicing
BillingCountryCodestring?ISO country code
SuspendedAtUtcDateTime?When the user was suspended
SuspendedBystring?Who suspended the user
SuspensionMessagestring?Reason for suspension
AccountDeletionRequestedAtUtcDateTime?When deletion was requested
AccountDeletionScheduledAtUtcDateTime?When deletion will execute

Computed Properties

PropertyDescription
IsSuspendedtrue if SuspendedAtUtc is set
HasValidVattrue if VatId is present and non-empty

Roles

Ludilol doesn't use ASP.NET Core roles. Instead:

  • Player: Any registered user. Can browse, buy, review, and tag.
  • Maker: A user with IsMaker = true. Can create games, store pages, and receive payments.
  • Admin: Accesses the Backoffice app via Entra ID (separate auth flow).

Maker Onboarding

To become a maker, a user must:

  1. Navigate to /account/maker
  2. Accept the EULA
  3. Provide billing details (name, address)

Account Closure

Users can request account deletion, which is scheduled with a grace period. A background worker (AccountDeletionWorker) processes deletions.

Relationships

AppUser (1) ──── (N) Game
AppUser (1) ──── (N) StorePage
AppUser (1) ──── (N) PaymentDestination
AppUser (1) ──── (N) Order        (as buyer)
AppUser (1) ──── (N) Order        (as seller)
AppUser (1) ──── (N) GameReview
AppUser (1) ──── (N) GameFavorite
AppUser (1) ──── (N) GameTag
AppUser (1) ──── (N) Credit
AppUser (1) ──── (N) Invoice
AppUser (1) ──── (N) PersonalAccessToken

Sell indie games for Bitcoin.