Plan
A Plan describes a set of features for an application, with a name and price. Plan features are based on a Casdoor Role (and its permissions), so you can describe the plan independently of naming and pricing—e.g. different prices by country or date.

Plan properties
| Property | Description |
|---|---|
| Organisation | Owning organization. |
| Name | Plan identifier. |
| CreatedTime | Creation time. |
| DisplayName | Display name. |
| Rolle | Role that defines the plan’s permissions. |
| PricePerMonth | Monthly price. |
| Währung | Currency code. |
| PaymentProviders | Providers through which users can pay. See Payment provider. |
| IsEnabled | Whether the plan is active. |
| IsExclusive | If enabled, a user may only hold one active subscription to this plan at a time. Attempting to subscribe again while an active, upcoming, or pending subscription exists will be rejected. |

Exclusive plans
When IsExclusive is enabled, Casdoor enforces that a user can hold at most one active subscription to the plan. The check runs at subscription creation time and blocks the request if the user already has a subscription in any of the Active, Upcoming, or Pending states. Expired or suspended subscriptions do not count against this limit, so a user can re-subscribe after their subscription lapses.
Creating a Plan in Casdoor automatically creates a related Product. Plan data is synced to that product. When users buy a Plan, they purchase its related Product.
