# `Accrue.Billing.SubscriptionItem`
[🔗](https://github.com/szTheory/accrue/blob/accrue-v1.5.1/lib/accrue/billing/subscription_item.ex#L1)

Ecto schema for the `accrue_subscription_items` table.

Represents a single line item within a subscription (e.g. a specific
price/plan and quantity). Maps to Stripe `si_xxx`. Phase 3 adds the
processor plan/product refs and per-item period bounds per D3-31.

# `t`

```elixir
@type t() :: %Accrue.Billing.SubscriptionItem{
  __meta__: term(),
  current_period_end: term(),
  current_period_start: term(),
  data: term(),
  id: term(),
  inserted_at: term(),
  last_stripe_event_id: term(),
  last_stripe_event_ts: term(),
  lock_version: term(),
  metadata: term(),
  price_id: term(),
  processor: term(),
  processor_id: term(),
  processor_plan_id: term(),
  processor_product_id: term(),
  quantity: term(),
  subscription: term(),
  subscription_id: term(),
  updated_at: term()
}
```

# `changeset`

```elixir
@spec changeset(
  %Accrue.Billing.SubscriptionItem{
    __meta__: term(),
    current_period_end: term(),
    current_period_start: term(),
    data: term(),
    id: term(),
    inserted_at: term(),
    last_stripe_event_id: term(),
    last_stripe_event_ts: term(),
    lock_version: term(),
    metadata: term(),
    price_id: term(),
    processor: term(),
    processor_id: term(),
    processor_plan_id: term(),
    processor_product_id: term(),
    quantity: term(),
    subscription: term(),
    subscription_id: term(),
    updated_at: term()
  }
  | Ecto.Changeset.t(),
  map()
) :: Ecto.Changeset.t()
```

Builds a changeset for creating or updating a SubscriptionItem.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
