## 🧭 How the Event Platform Works
Our system is inspired by **WordPress** concepts: `posts`, `post_types`, `categories`, and `metadata`.
This platform is flexible and extensible but follows some core conventions you'll need to understand to get started.
---
## 🧱 Post Types
The site is built around different **post types**, each serving a specific purpose:
- `event_template`: The master definition of an event (no time or price).
- `event_instance`: A specific occurrence of an event (with date/time, etc.).
- `venue`: Represents a location where events happen.
- `entity`: A person or organization (e.g. promoter).
- `blog`: General written content (optional use).
---
## 🗂 Categories (Scoped Per Post Type)
Categories are **limited to specific post types**. This helps organize content cleanly:
### `event_template` categories:
- `munch`, `party`, `market`
### `venue` categories:
- `pub`, `club`, `park`, `museum`, `private_house`
### `entity` categories:
- `promoter`, `professional`
---
## 🔗 Post Attachments (Relationships)
When creating a post (like an `event_instance`), you can **attach it to other posts** for richer context. For example:
- An `event_instance` can be attached to:
- An `event_template` (to inherit name/description)
- A `venue` (where it's happening)
- An `entity` (who’s running it)
> This lets you reuse key content across events without duplication.
---
## 🚀 Recommended Content Creation Flow
To manage events efficiently, follow this workflow:
### 1. **Create an Entity**
Represent yourself or your team as a **promoter**.
> Use post type `entity`, category `promoter`.
---
### 2. **Create a Venue**
Add any physical locations where your events will happen.
> Use post type `venue`, category like `pub`, `club`, etc.
---
### 3. **Create an Event Template**
Define your recurring event with a title, description, and image.
> Use post type `event_template`, category `munch`, `party`, etc.
---
### 4. **Create an Event Instance**
This is the actual event listing, shown on the calendar.
- Set date, time, and price.
- Attach it to:
- The related `event_template`
- The `venue`
- Your `entity`
---
### 5. **Repeat Easily**
For each new date of a recurring event:
- Just create another `event_instance`
- Attach it to the same `event_template`, `venue`, and `entity`
- Adjust only what's unique (e.g. time or price)
---
## 📝 Example
Say you host a monthly "Ealing Munch" party at a pub:
1. Create an `entity`: **"Ealing Social Club"**
2. Create a `venue`: **"The Red Lion Pub"**
3. Create an `event_template`: **"Ealing Munch"**
4. Create an `event_instance`: **"Ealing Munch – July 2025"**, set the date, attach it to all three above.
Now your event is live, categorized, and fully contextualized.
---
## 📘 Further Example
Let’s say **Ealing Social Club** wants to host a one-off event — a party in the park.
Because it's **not a recurring event**, there's **no need** to create an `event_template` (although they can if they choose).
Since the entity (promoter) already exists, you can reuse it.
### Here’s how you’d do it:
1. **Create a new venue**
*Example: "Lammas Park, Ealing W5"*
(Use post type `venue`, category `park`)
2. **Create an event_instance**
*Title: "Party in the Park Ealing"*
- Set the date, time, and price
- Attach it to the new **venue** and the existing **entity** "Ealing Social Club"
---
### 🧭 Result
Website visitors can now:
- View **all events** promoted by *Ealing Social Club*
- Browse **all events** happening at *Lammas Park*
- With recurring events (like *Ealing Munch*), explore the **full series** via the shared `event_template`
This structure makes it easy to present well-organized, reusable, and rich event data across the entire platform.
Our system is inspired by **WordPress** concepts: `posts`, `post_types`, `categories`, and `metadata`.
This platform is flexible and extensible but follows some core conventions you'll need to understand to get started.
---
## 🧱 Post Types
The site is built around different **post types**, each serving a specific purpose:
- `event_template`: The master definition of an event (no time or price).
- `event_instance`: A specific occurrence of an event (with date/time, etc.).
- `venue`: Represents a location where events happen.
- `entity`: A person or organization (e.g. promoter).
- `blog`: General written content (optional use).
---
## 🗂 Categories (Scoped Per Post Type)
Categories are **limited to specific post types**. This helps organize content cleanly:
### `event_template` categories:
- `munch`, `party`, `market`
### `venue` categories:
- `pub`, `club`, `park`, `museum`, `private_house`
### `entity` categories:
- `promoter`, `professional`
---
## 🔗 Post Attachments (Relationships)
When creating a post (like an `event_instance`), you can **attach it to other posts** for richer context. For example:
- An `event_instance` can be attached to:
- An `event_template` (to inherit name/description)
- A `venue` (where it's happening)
- An `entity` (who’s running it)
> This lets you reuse key content across events without duplication.
---
## 🚀 Recommended Content Creation Flow
To manage events efficiently, follow this workflow:
### 1. **Create an Entity**
Represent yourself or your team as a **promoter**.
> Use post type `entity`, category `promoter`.
---
### 2. **Create a Venue**
Add any physical locations where your events will happen.
> Use post type `venue`, category like `pub`, `club`, etc.
---
### 3. **Create an Event Template**
Define your recurring event with a title, description, and image.
> Use post type `event_template`, category `munch`, `party`, etc.
---
### 4. **Create an Event Instance**
This is the actual event listing, shown on the calendar.
- Set date, time, and price.
- Attach it to:
- The related `event_template`
- The `venue`
- Your `entity`
---
### 5. **Repeat Easily**
For each new date of a recurring event:
- Just create another `event_instance`
- Attach it to the same `event_template`, `venue`, and `entity`
- Adjust only what's unique (e.g. time or price)
---
## 📝 Example
Say you host a monthly "Ealing Munch" party at a pub:
1. Create an `entity`: **"Ealing Social Club"**
2. Create a `venue`: **"The Red Lion Pub"**
3. Create an `event_template`: **"Ealing Munch"**
4. Create an `event_instance`: **"Ealing Munch – July 2025"**, set the date, attach it to all three above.
Now your event is live, categorized, and fully contextualized.
---
## 📘 Further Example
Let’s say **Ealing Social Club** wants to host a one-off event — a party in the park.
Because it's **not a recurring event**, there's **no need** to create an `event_template` (although they can if they choose).
Since the entity (promoter) already exists, you can reuse it.
### Here’s how you’d do it:
1. **Create a new venue**
*Example: "Lammas Park, Ealing W5"*
(Use post type `venue`, category `park`)
2. **Create an event_instance**
*Title: "Party in the Park Ealing"*
- Set the date, time, and price
- Attach it to the new **venue** and the existing **entity** "Ealing Social Club"
---
### 🧭 Result
Website visitors can now:
- View **all events** promoted by *Ealing Social Club*
- Browse **all events** happening at *Lammas Park*
- With recurring events (like *Ealing Munch*), explore the **full series** via the shared `event_template`
This structure makes it easy to present well-organized, reusable, and rich event data across the entire platform.