> For the complete documentation index, see [llms.txt](https://docs.airdev.co/reviews-platform-template/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airdev.co/reviews-platform-template/general-information/data-structure.md).

# Data Structure

The database structure for the template

All objects and some selected fields in the template are explained below. Please refer to our [Bubble Best Practices](https://docs.airdev.co/bubble-development-guide/steps/plan/database-structure) document for guidance on how the Bubble database should be structured.

{% hint style="warning" %}
All data types and a few select fields are explained below. A good general rule to follow is that you shouldn't delete any fields that are included with the template and instead only add new ones.
{% endhint %}

## Block entry

This data type is used to store content that goes into each homepage block. Each homepage block (template) will have a maximum number of block entries:

* Testimonials section: Multiple entries
* Featured section: Up to 3 entries
* Process section: Up to 3 entries
* Slideshow section: Between 3 to 5 entries
* Capabilities section: Up to 9 entries
* Video section: 1 entry
* Press section: Between 3 to 5 entries
* About section: 1 entry
* Call-to-action section: 1 entry
* Contact section: 0 entries

## Dummy

This data type allows you to quickly preview your page layout by it as your data source.

## Feature backlog

This data type represents each feature that an Owner has added into the Backlog section of the Owner's Portal.

## Flag

This data type is created each time a user chooses to flag (i.e., report) a review. This may or may not include a message. Only admin accounts can view flags.

| Field name | Type     | Description                                                                                                                                                                       |
| ---------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Dismissed? | yes / no | Indicates whether or not this `Flag` has been reviewed by an admin. `Flags` with their `Dismissed?` field set to **yes** are not shown in the list of flags in the owner’s portal |
| Reason     | text     | The explanation for flagging the review. This is viewable only to admins in the owner’s portal. The `Reason` is included optionally                                               |
| Review     | Review   | The `Review` that the user has flagged                                                                                                                                            |

## Homepage block template

The data type is used for the homepage maker. App owners can add any number of homepage blocks / homepage sections straight from the owner's portal by starting from a homepage block template.

## Homepage block

App Owners can add an unlimited number of homepage blocks. They can control the content and settings from the Owner's Portal.

## Image

This data type represents a single image that is associated with a particular `Item`. This image may be a primary image or standard image for an item.

| Field name | Type   | Description                                               |
| ---------- | ------ | --------------------------------------------------------- |
| Image      | image  | The actual image for this `Image` instance                |
| Review     | Review | The `Review` that this image was added for and represents |

## Item

This data type represents a single item on the platform that users can search for, view, and create a review for. These are created, edited, and removed by app admins from the owner’s portal.

| Field name       | Type          | Description                                                                                                                                                                                                                                                                               |
| ---------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Description      | text          | The description for the `Item` which is shown on the search page and public item page. This is populated by an app admin from the owner’s portal                                                                                                                                          |
| Image main       | Image         | The primary image for the item. This is used as the image for items shown on the search page                                                                                                                                                                                              |
| Images           | Image (list)  | The secondary images for the item. These are shown only on the item details page and can be enlarged from that page. This list **does** include `Image main`                                                                                                                              |
| Last review date | date          | The date at which the most recent review was given for this item. This is updated each time a `Review` is created for this item or when one is deleted (in the case that the deleted `Review` was the most recent one for that item). This is used for sorting results on the search page |
| Name             | text          | The name of the item                                                                                                                                                                                                                                                                      |
| Overall rating   | number        | The numeric average of the ratings for every review given for this item. This is updated each time a `Review` is created for this item or deleted. This is used for sorting results on the search page                                                                                    |
| Review count     | number        | The total number of reviews given for this item. This is incremented each time a `Review` is created for this item and decremented each time one is removed. This is used for sorting results on the search page                                                                          |
| Reviews          | Review (list) | The list of `Reviews` associated with this item. This is equivalent to the amount of `Reviews` whose Item field is set to this item                                                                                                                                                       |
| Tags             | Tag (list)    | The list of `Tags` associated with this item. These are added and removed by app admins from the owner’s portal. These are used for filtering on the search page                                                                                                                          |

## Palette color

This data type is color palette list is referenced in the Air Color Picker plugin / element. Feel free to add more color entries for quick access when using the Air Color Picker element.

## Push token

This represents a unique token to be used with **OneSignal** for push notification integrations for wrapped mobile apps.

## Review

This data type represents a user-written review for an `Item`. The review consists of information about the review itself and should always be linked to an `Item`. Reviews can be modified or deleted by the original author and can be removed by app admins if the review has been flagged.

| Field name  | Type   | Description                                                                                                                                                                                     |
| ----------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Item        | Item   | The `Item` that this review is associated with. Every review is assigned an `Item` when it is created                                                                                           |
| Star rating | number | The numeric rating that is given for this review. This ranges from **0.5 to 5.0** and can be specified down to the half-star (step is **0.5**). This is shown publicly to users on the platform |
| Text        | text   | The primary (textual) content of the review                                                                                                                                                     |
| Title       | text   | The title of the review                                                                                                                                                                         |

## Tag

This data type represents a tag - or category - that can be linked to an `Item`. Tags are not unique per `Item` - they can be linked to any number of `Items`. Tags are created, edited, and removed by app admins from the owner’s portal.

| Field name | Type | Description                                                                |
| ---------- | ---- | -------------------------------------------------------------------------- |
| Name       | text | The title of the tag. All tags are displayed and identified with this name |

## User

The user data type represents each person who has an account in your application.

| Field name                            | Type     | Description                                                                              |
| ------------------------------------- | -------- | ---------------------------------------------------------------------------------------- |
| Date agreed to terms and privacy docs | date     | Date agreed to terms and privacy docs during sign up                                     |
| Inactive                              | yes / no | User is marked as inactive = yes when App owner deletes the user from the Owner's Portal |
| Last login                            | date     | Captures the last date that the user loaded any page in the app                          |
| Owner?                                | yes / no | If Owner is yes then they will have access to the Owner's Portal                         |
| Signup method                         | text     | E.g., E-mail, LinkedIn, Facebook, Twitter, or etc.                                       |

## Website

This data type includes fields for all app-wide settings. Most of the data fields are controlled by the App Owner from the Owner's portal. There should only be a single object of this data type.

| Field name       | Type                    | Description                                                                                                                                                                               |
| ---------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ask for cookies? | yes / no                | App Owner can control whether or not to ask users to accept cookies (if yes, a cookies banner will show on the homepage)                                                                  |
| Email            | text                    | Contact / support email that all emails in the application come from. Whenever a new email action is created in the application, it should refer to this field instead of being hardcoded |
| Email HTML       | text                    | Used in the [SendGrid API call for "send emails"](https://docs.airdev.co/canvas/quickstart-guide#step-2-setting-up-your-email) that generates a nicely-formatted HTML email               |
| List of blocks   | List of homepage blocks | Homepage blocks / sections                                                                                                                                                                |
| Name             | text                    | Name of your app / website. This is the field that should be referenced anywhere where the name is used (instead of hardcoded).                                                           |
| Primary color    | text                    | App and email template primary color                                                                                                                                                      |
| Usersnap off?    | yes / no                | This turns off the Usersnap tool, which AirDev uses with its clients to submit feedback and bug reports.                                                                                  |
