Clear billing logic, do some cleanup
This commit is contained in:
+4
-36
@@ -19,18 +19,13 @@ Activity is an audit log of all actions performed by a user or a worker process.
|
||||
- `created_at` - unix timestamp when the activity was created
|
||||
- `activity_type` is one of:
|
||||
- `create_tenant`
|
||||
- `update_tenant_billing_anchor`
|
||||
- `update_tenant_nwc_url`
|
||||
- `update_tenant`
|
||||
- `create_relay`
|
||||
- `update_relay`
|
||||
- `update_relay_plan`
|
||||
- `activate_relay`
|
||||
- `deactivate_relay`
|
||||
- `fail_relay_sync`
|
||||
- `create_invoice`
|
||||
- `mark_invoice_paid`
|
||||
- `mark_invoice_attempted`
|
||||
- `mark_invoice_sent`
|
||||
- `mark_invoice_closed`
|
||||
- `resource_type` is a string identifying the resource type being modified.
|
||||
- `resource_id` is a string identifying the resource id being modified.
|
||||
|
||||
@@ -58,7 +53,6 @@ Tenants are customers of the service, identified by a nostr `pubkey`. Public met
|
||||
- `pubkey` is the nostr public key identifying the tenant
|
||||
- `nwc_url` (private) a nostr wallet connect URL used for **paying** invoices generated by the system
|
||||
- `created_at` unix timestamp identifying tenant creation time
|
||||
- `billing_anchor` unix timestamp identifying billing cycle anchor. This gets reset when the tenant has no paid relays and adds (or reactivates) one.
|
||||
|
||||
# Relay
|
||||
|
||||
@@ -69,7 +63,8 @@ A relay is a nostr relay owned by a `tenant` and hosted by the attached zooid in
|
||||
- `schema` - the relay's db schema (read_only, calculated based on `subdomain` + `id`)
|
||||
- `subdomain` - the relay's subdomain
|
||||
- `plan` - the relay's plan
|
||||
- `status` - `new|active|inactive`. Only `active` relays count toward billing.
|
||||
- `status` - `active|inactive`. Only `active` relays count toward billing.
|
||||
- `synced` - whether the relay has been successfully synced to zooid at least once.
|
||||
- `sync_error` - a string indicating any errors encountered when synchronizing.
|
||||
- `info_name` - the relay's name
|
||||
- `info_icon` - the relay's icon image URL
|
||||
@@ -81,7 +76,6 @@ A relay is a nostr relay owned by a `tenant` and hosted by the attached zooid in
|
||||
- `blossom_enabled` - whether blossom file storage is enabled
|
||||
- `livekit_enabled` - whether livekit calls are enabled
|
||||
- `push_enabled` - whether relay push is enabled
|
||||
- `synced` (private) - whether the relay has been successfully synced to zooid at least once. Used by infra to decide POST vs PUT.
|
||||
|
||||
Some attributes persisted to zooid via API have special handling:
|
||||
|
||||
@@ -91,29 +85,3 @@ Some attributes persisted to zooid via API have special handling:
|
||||
- The relay's `livekit_*` configuration is inferred based on environment variables and `livekit_enabled`.
|
||||
- The relay's `roles` are hard-coded for now.
|
||||
|
||||
# Invoice
|
||||
|
||||
Invoices are generated at the end of a tenant's monthly billing period. The billing module is responsible for creating them, collecting them, and dunning them.
|
||||
|
||||
- `id` - random invoice ID
|
||||
- `tenant` - tenant pubkey
|
||||
- `status` - `pending|paid|closed`
|
||||
- `amount` is derived as the sum of associated invoice item `sats` values (not stored as a separate source of truth)
|
||||
- `created_at` - unix timestamp for when the invoice was created
|
||||
- `attempted_at` - nullable unix timestamp for when collection was last attempted
|
||||
- `error` - optional human-readable error from the last failed collection attempt
|
||||
- `closed_at` - nullable unix timestamp for when the invoice was closed
|
||||
- `sent_at` - nullable unix timestamp for when the invoice was sent via DM
|
||||
- `paid_at` - nullable unix timestamp for when the invoice was paid
|
||||
- `bolt11` - a BOLT 11 lightning invoice that can be used to pay the invoice
|
||||
- `period_start` - unix timestamp for period start
|
||||
- `period_end` - unix timestamp for period end
|
||||
|
||||
# Invoice Item
|
||||
|
||||
Invoice items are attached to an invoice and represent charges for a given relay.
|
||||
|
||||
- `id` - random invoice item ID
|
||||
- `invoice` - invoice ID
|
||||
- `relay` - relay ID
|
||||
- `sats` - amount in satoshis
|
||||
|
||||
Reference in New Issue
Block a user