Miranda uses PHP 8.1+ backed enums for all status fields, type discriminators, and categorical values. All enums are string-backed and live in App\Enums.
Platform-level role assigned to each user.
| Value | Description |
|---|
owner | Foundation owner — full access, billing, and deletion rights |
admin | Full operational access, cannot manage billing or delete foundation |
member | Standard team member with role-based permissions |
readonly | View-only access to all data |
Defines the nature of a contact’s relationship with a foundation. A single contact can hold multiple relationship types simultaneously.
| Value | Description |
|---|
donor | Has made or intends to make financial contributions |
applicant | Has submitted a scholarship or grant application |
subscriber | Subscribed to communications (newsletter, updates) |
general | General contact without a specific relationship category |
Events recorded in a contact’s activity timeline.
| Value | Description |
|---|
donated | Made a donation |
email_sent | Received an email |
email_opened | Opened an email |
sms_sent | Received an SMS message |
application_submitted | Submitted a scholarship application |
scholarship_awarded | Was awarded a scholarship |
tag_added | Had a tag applied |
note_added | Had a note added to their record |
imported | Was imported from an external source |
| Value | Description |
|---|
one_time | Single donation |
recurring | Recurring donation on a schedule |
| Value | Description |
|---|
pending | Payment initiated but not yet confirmed |
succeeded | Payment completed successfully |
failed | Payment attempt failed |
refunded | Payment was refunded |
Schedule for recurring donations.
| Value | Description |
|---|
monthly | Charged every month |
quarterly | Charged every three months |
annual | Charged once per year |
| Value | Description |
|---|
draft | Page is being edited, not publicly accessible |
published | Page is live and accepting donations |
offline | Page is disabled but preserved |
Determines the purpose and configuration schema of a donation page. Each type has a label(), description(), icon(), and configSchema() method.
| Value | Label | Description |
|---|
general | General Fund | Unrestricted giving to support your mission |
scholarship | Scholarship Fund | Donations fund a specific scholarship |
campaign | Campaign | Time-bound campaign with a fundraising goal |
memorial | Memorial / Tribute | Giving in memory or honor of someone |
emergency | Emergency Fund | Urgent, time-sensitive need |
sustainer | Monthly Sustainer | Focused on building recurring monthly support |
Type-specific configuration fields:
- Scholarship:
scholarship_id (required select), show_scholarship_details (boolean)
- Campaign:
goal_amount (required currency), end_date (date), show_progress_bar (boolean), show_donor_count (boolean)
- Memorial:
honoree_name (required text), dedication_message (textarea), honoree_photo (image), notify_family_email (email), tribute_type (in_memory/in_honor)
- Emergency:
urgency_message (text), expiration_date (date), goal_amount (currency), show_share_prompt (boolean)
- Sustainer:
impact_per_month (textarea), recurring_only (boolean), suggested_monthly (amounts, default: 10/25/50/100)
| Value | Description |
|---|
email | Email delivery |
sms | SMS text message delivery |
| Value | Description |
|---|
draft | Campaign is being composed |
scheduled | Campaign is queued for future delivery |
sending | Campaign is actively being sent |
sent | Campaign delivery is complete |
| Value | Description |
|---|
outbound | Message sent from the foundation to a contact |
inbound | Message received from a contact |
Tracks delivery lifecycle of individual messages.
| Value | Description |
|---|
sent | Message handed off to delivery provider |
delivered | Confirmed delivered to recipient |
opened | Recipient opened the message |
clicked | Recipient clicked a link in the message |
bounced | Message bounced (invalid address or mailbox full) |
failed | Delivery failed permanently |
Events that automatically enroll a contact into a sequence.
| Value | Description |
|---|
donation_received | A donation was successfully processed |
application_submitted | A scholarship application was submitted |
subscriber_added | A new subscriber was added |
donation_failed | A donation attempt failed |
Lifecycle status of a scholarship program.
| Value | Description |
|---|
draft | Scholarship is being configured |
accepting | Accepting applications |
reviewing | Application period closed, under review |
awarded | Awards have been granted |
closed | Scholarship cycle is complete |
Review stage of an individual scholarship application.
| Value | Description |
|---|
new | Application received, not yet reviewed |
under_review | Application is being evaluated |
accepted | Application was approved for an award |
declined | Application was not selected |
How an application was submitted.
| Value | Description |
|---|
form | Submitted through the web form |
api | Submitted via the API |
webhook | Received via webhook from an external system |
Categorizes outgoing financial disbursements for reporting.
| Value | Description |
|---|
scholarship | Scholarship award payment |
grant | Grant disbursement |
operational | Operational expense |
program | Program-related expense |
admin | Administrative expense |