Subscriptions — core billing state per org
| Field | Type | Required | Description |
|---|
| orgId | string | Yes | Organization ID for multi-tenant isolation |
| stripeCustomerId | string | Yes | |
| stripeSubscriptionId | string | Yes | |
| planSlug | ”crucible” | “forge” | “foundry” | Yes | |
| status | ”trialing” | “active” | “past_due” | “canceled” | “unpaid” | “incomplete” | “paused” | Yes | |
| currentPeriodStart | number | Yes | |
| currentPeriodEnd | number | Yes | |
| cancelAtPeriodEnd | boolean | Yes | |
| trialEnd | number | No | |
| metadata | any | No | |
| Name | Fields |
|---|
| by_org | orgId |
| by_stripe_customer | stripeCustomerId |
| by_stripe_subscription | stripeSubscriptionId |