Profile response objects
Use the fields listed for the operation below. A user ID is distinct from a session ID; these profile results do not merge a new session into the user.
Profile user projections
All base fields, photos and conditional administrative fields use the full user definition. Resource-aware fields and membership/team objects use identity user definitions, with operation-specific additions:
| Operation | Projection |
|---|---|
| GET user, with resource | Resource-aware user plus subscriptions, teams, nested subscription history and assigned tickets. No last_action. |
| GET user, without resource | Base global user only; no added collections. |
| PUT user | Resource-aware user plus subscriptions, teams and assigned tickets. tags appears only when request tags is an array. No last_action/history addition. |
| PUT social / POST social/delete | Resource-aware user plus subscriptions only; no teams/history/last_action. Global Google/Facebook fields reflect stored IDs. |
| POST suspend / PUT subscriptions/id | Resource-aware user plus subscriptions and teams; no history/last_action. Suspension makes resource active false while global activation can remain true. |
| POST photo | Base global user, with photos. Resource context is not passed to the response projection; no added subscriptions/teams/history. |
subscriptions_history on GET user uses nested subscription history. It differs from the standalone endpoint’s profile history. tags contains resource/global tag slug strings; it does not expose full tag records. Collections can be empty. No profile fields grant content permission.
Assigned tickets
assigned_tickets is an array derived from the user’s assigned passes, filtered by parent event resource when a resource is supplied. Missing linked ticket records are skipped. Duplicate ticket projections can appear for multiple passes; no pagination, deduplication or ordering guarantee. These are ticket products, not full pass or attendance records.
| Field | Type / presence | Meaning |
|---|---|---|
id | stored integer ID | Ticket product ID. |
title, description | stored string / nullable | Ticket display text. |
price | stored numeric | Stored price; currency units unspecified. |
currency | stored string | Stored currency code. |
is_private | stored flag | Ticket visibility flag, without explicit scalar cast here. |
ti_event | base event | Parent event fields and photo collection; no ticket/pass expansion. |
Ticket fetch/save hooks decode extra, but extra is not selected in this projection. They do not establish boolean/numeric casts for selected fields.
Profile history
The standalone plans/history endpoint returns items, ordered by historical relationship_id descending, with no paginator. Query/projection exceptions can yield empty/partial items. Each item contains:
| Field | Type / presence | Meaning |
|---|---|---|
relationship_id | stored integer ID | Historical membership relationship ID used for ordering. |
plan_id, subscription_id | stored integer IDs / null | Joined references, with stored payload fallback when absent. |
plan_title, subscription_title | stored string / null | Joined display titles, falling back to historical payload. Not guaranteed current Pricing text. |
subscription_start_date, subscription_end_date | stored timestamp | Historical interval; timezone/end-boundary semantics unspecified. |
is_trial_subscription | stored flag | Historical trial state; no scalar cast here. |
is_attached_by_admin | boolean | true only when the fetched admin_id is a PHP integer; this is not a complete audit guarantee. |
admin_id | stored integer ID / null | Recorded admin reference. |
No created_at, payload, full plan/Pricing, team or replacement projection is returned by this endpoint. Historical rows do not prove current membership or payment/refund/cancellation completion.