# Builderly API reference

Base URL: http://watch-collection.max-media.io
Generated from the running server on 2026-11-05T11:41:53.436Z. Every mounted route is listed with the access it needs, the parameters its handler reads and the data models it uses.

## Authentication

Send `Authorization: Bearer <token>` where a route needs a token. Add `?ionic=true` to get JSON from routes that also render pages.

- **Admin token** (`admin`): Bearer token of a site admin (Authorization: Bearer <token>).
- **User token** (`user`): Bearer token of a signed-in user of the site.
- **Optional user** (`optional-user`): Works without a token; a user token personalises the answer.
- **User with access** (`user-priv`): A signed-in user whose plan grants access to the item.
- **Page access** (`page-priv`): Pages limited to some users check the token when one is sent.
- **Webhook signature** (`webhook`): Called by a provider; verified by its signature.
- **reCAPTCHA** (`recaptcha`): Needs a reCAPTCHA token from the site form.
- **System** (`system`): Internal - called by the platform itself.

### For AI assistants: getting a token

Public endpoints (Access: Public) need no token. Everything else - changing the site, or reading its orders, bookings, customers and other private data - needs the site owner's API token.

You cannot create a token yourself, and you must not ask for the owner's password. Ask the user for a token instead - you can send them this message as it is:

> To work with your site through its API, I need an API token from you:
> 1. Sign in to your Builderly admin: https://admin.max-media.io
> 2. Open Developers > API reference (or go straight to https://admin.max-media.io/tabs/site-builder/api-docs).
> 3. Press "Generate token", copy the token and paste it here.
> The token acts as you, so only share it in this chat. You can cancel it at any time by signing out of all devices.

Then send it with every request as `Authorization: Bearer <token>`, and add `?ionic=true` to get JSON. Calls go to the site's own address (its domain), not to the reference's.

The token acts as the user: say what you will change and wait for their yes before any request that creates, changes or deletes something, never repeat the token back, and never put it in a link or a file you share.

## Status codes

| Code | Name | Meaning |
| --- | --- | --- |
| 200 | OK | It worked. The answer is the object or list asked for. |
| 201 | Created | The object was created. Some endpoints send it back; others send an empty body. |
| 202 | Accepted | The work was started and finishes in the background - for example a video being processed ({ "status": "processing" }). Check back on the object. |
| 204 | No Content | It worked, and there is nothing to send back - for example after removing a staff member. |
| 301 | Moved Permanently | The address changed; follow the Location header. |
| 400 | Bad Request | The request was refused as sent: a required field is missing, a value has the wrong type or fails validation. The body says what - often as plain text. |
| 401 | Unauthorized | No token, or one that is invalid or signed out. Without ?ionic=true, some endpoints answer this with the HTML login page instead of JSON. |
| 402 | Payment Required | The content needs a subscription: the user has no price plan that unlocks it. |
| 403 | Forbidden | The token is valid but may not do this - the record belongs to someone else, or the user is not an admin. AI builder endpoints also answer 403 when the account is out of credits. |
| 404 | Not Found | No object with that ID or URL slug, or no such endpoint. |
| 409 | Conflict | It clashes with the current state: the item is already being processed, a version is already applied, or an AI plan or preview is no longer available. |
| 410 | Gone | It existed but is no longer there - for example a comment already deleted on the social network. |
| 412 | Precondition Failed | A rule the request must meet is not met - for example push notifications of the same type at least 48 hours apart. |
| 418 | I'm a teapot | An account confirmation or password reset link was used with an email that does not match it. |
| 421 | Misdirected Request | The domain is not a Builderly site. Call the site's own address. |
| 422 | Unprocessable Content | The request was understood but could not be done - for example the AI could not read the website it was asked to clone. The message says what to try instead. |
| 429 | Too Many Requests | Slow down: the site's request limit was reached, an AI chat already has a request running, or the hourly limit of AI search answers is used up. Wait and retry. |
| 500 | Internal Server Error | Something failed on the server. Retrying later may work; if it keeps failing, the request may be one the endpoint does not handle. |
| 502 | Bad Gateway | A service the request depends on failed - for example the address a redirect forwards to. |
| 503 | Service Unavailable | Used by the lead form when an order is below its minimum value, not only for outages: read the message. |

Errors do not share one shape: depending on the endpoint the body is plain text, { "error": "..." }, { "message": "..." } or empty. Rely on the status code, and show the body to the user as the reason.

## Endpoints

### Donations

Donations are fundraising campaigns: a story, an optional target amount, predefined amounts to give and add-on options such as a gift.

#### Donation

##### List all donations
`GET /donations`
Returns the site's donations, newest first unless a sort is given.
- Access: User with access, Optional user
- Query:
  - `published` (string): Only donations with this published.
  - `completed` (string): Only donations with this completed.
  - `sortBy` (string): The order of the results.
  - `collection` (string): Only results in this collection.
  - `skip` (string): How many results to skip - for paging.
  - `where` (string): Only donations with this where.
- Returns: a list of Donation objects.
- Status codes: 200, 401, 402, 404, 500
- Models: Theme, MyContact, SocialModeSettings, Collection, Donation, AboutPage, Order

##### Create a donation
`POST /donations`
Creates a donation from the fields sent.
- Access: Admin token
- Body:
  - `title` (string): Name of the campaign, required.
- Returns: the Donation object.
- Status codes: 201, 400, 401, 500
- Models: Donation

##### Update a donation
`PATCH /donations/:id`
Changes the fields sent; the others stay as they are.
- Access: Admin token
- Path:
  - `id` (string): The ID of the donation.
- Returns: the Donation object.
- Status codes: 200, 400, 401, 404, 500
- Models: Donation

##### Delete a donation
`DELETE /donations/:id`
Deletes the donation. This cannot be undone.
- Access: Admin token
- Path:
  - `id` (string): The ID of the donation.
- Returns: an empty answer on success.
- Status codes: 200, 401, 404, 500
- Models: Donation

##### Retrieve a donation
`GET /donations/:url`
Returns one donation, found by its URL slug.
- Access: Page access, Optional user
- Path:
  - `url` (string): The donation's URL slug, as in its address on the site.
- Query:
  - `sessionId` (string): Only donations with this session id.
- Returns: the Donation object.
- Status codes: 200, 401, 402, 404, 500
- Models: Donation, MyContact, SocialModeSettings, PaymentMethod, Order, Comment, RatingSettings, Rating, Cart

#### AI builder

##### Create a donation with AI
`POST /create-new-donation`
Create a donation from a prompt, written by the AI builder.
- Access: User token
- Body:
  - `prompt` (string): What the AI should do with the donation, in plain words - any language.
  - `chatId` (string): The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
  - `aiVersion` (string): Which version of the AI builder to use; leave it out for the current one.
  - `item_id` (string): The ID of the donation to change.
- Status codes: 200, 401, 500
- Models: ChatMessage

##### Generate a donation with AI
`POST /generate-donation`
Use it to create a new donation or fundraising campaign from scratch or a prompt.
- Access: User token
- Body:
  - `prompt` (string): What the AI should do with the donation, in plain words - any language.
  - `chatId` (string): The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
- Status codes: 200, 401, 500

##### Modify a donation with AI
`POST /modify-donation`
Use it to edit or update an existing donation campaign.
- Access: User token
- Body:
  - `prompt` (string): What the AI should do with the donation, in plain words - any language.
  - `item_data` (string): The current donation, as JSON - the AI changes it and returns the result.
  - `chatId` (string): The AI chat this request belongs to; its history and language carry over. Leave it out to start a new chat.
  - `item_id` (string): The ID of the donation to change.
  - `item_ids` (string): The donation's item ids.
- Status codes: 200, 401, 500

## Objects

### AboutPage

A page built in the editor or by the AI builder. Its content is in containers: each container is a full-width section with columns, and each column has components, laid out on a 12-column grid by their size.

- `requiresLogin`: Boolean, default false - Only signed-in users can see the page.
- `requiresSubscription`: Boolean, default false - Only subscribers of one of price_plan_ids can see the page.
- `price_plan_ids`: String[] - The price plans whose subscribers can see the page, with requiresSubscription.
- `title`: String, required - The page's title, shown in the browser tab and in the admin.
- `url`: String, required - The page's address on the site: /<url>. Unique.
- `redirectUrl`: String - When set, visitors who open the page are sent to this address instead.
- `legal_kind`: String - For legal pages: which document it is, in English (Privacy Policy, Terms of Service...).
- `isPartial`: Boolean, default false - A part of other pages (a banner, a block inside a product page), not a page of its own.
- `showTo`: String, default "0" - Who sees the page: "0" everyone, "1" signed-in users only, "2" visitors who are not signed in.
- `showHeader`: Boolean, default true - Show the site's header on the page.
- `showFooter`: Boolean, default true - Show the site's footer on the page.
- `ai_context_v2`: Mixed
- `ai_surfaces_v2`: Mixed
- `ai_overview`: String - A short summary of the page the AI builder keeps for its own use.
- `ai_generation_metadata`: Mixed
- `containers`: Object[] - The page's content: sections, each with columns of components.
  - `isFluid`: Boolean, default false
  - `parallaxEnabled`: Boolean
  - `parallaxAmount`: Number
  - `parallaxZoom`: Number
  - `continuousEnabled`: Boolean, default false
  - `continuousEffect`: String, default "none"
  - `continuousDuration`: Number, default 2400
  - `continuousIntensity`: Number, default 4
  - `backgroundImage`: String
  - `backgroundSize`: String
  - `backgroundPosition`: String
  - `backgroundRepeat`: String
  - `backgroundVideo`: String
  - `backgroundColor`: String
  - `backgroundGradient.enabled`: Boolean, default false
  - `backgroundGradient.type`: String
  - `backgroundGradient.degrees`: Number
  - `backgroundGradient.radialShape`: String
  - `backgroundGradient.radialPosition`: String
  - `backgroundGradient.colors`: Object[]
    - `color`: String
    - `percentage`: Number
    - `_id`: ObjectId
  - `backgroundGradient.css`: String
  - `backgroundParallax`: Boolean, default false
  - `minHeight`: Number
  - `minHeightMobile`: Number
  - `padding_top.value`: String, default ""
  - `padding_top.unit`: String, default "px"
  - `padding_top.mobile_value`: String, default ""
  - `padding_top.mobile_unit`: String, default "px"
  - `padding_right.value`: String, default ""
  - `padding_right.unit`: String, default "px"
  - `padding_right.mobile_value`: String, default ""
  - `padding_right.mobile_unit`: String, default "px"
  - `padding_bottom.value`: String, default ""
  - `padding_bottom.unit`: String, default "px"
  - `padding_bottom.mobile_value`: String, default ""
  - `padding_bottom.mobile_unit`: String, default "px"
  - `padding_left.value`: String, default ""
  - `padding_left.unit`: String, default "px"
  - `padding_left.mobile_value`: String, default ""
  - `padding_left.mobile_unit`: String, default "px"
  - `allowOffset`: Boolean, default false
  - `offsetX`: Number, default 0
  - `offsetY`: Number, default 0
  - `offsetMobileX`: Number, default 0
  - `offsetMobileY`: Number, default 0
  - `zIndex`: Number, default 0
  - `wrap_reverse`: Boolean, default false
  - `borderRadius`: Number, default 0
  - `marginX`: Number, default 0
  - `editorName`: String
  - `horizontalScroll`: Boolean, default false
  - `horizontalScrollWidth`: Number, default 100
  - `overflowX`: String, default "hidden"
  - `columns`: Object[]
    - `size`: String
    - `hoverGroup`: Boolean
    - `parallaxEnabled`: Boolean
    - `parallaxAmount`: Number
    - `parallaxZoom`: Number
    - `continuousEnabled`: Boolean, default false
    - `continuousEffect`: String, default "none"
    - `continuousDuration`: Number, default 2400
    - `continuousIntensity`: Number, default 4
    - `sticky`: Boolean, default false
    - `justify`: String
    - `align`: String
    - `onHoverActions`: Boolean, default false
    - `onHoverTransition`: Number, default 0.3
    - `backgroundColor`: String
    - `backgroundGradient.enabled`: Boolean, default false
    - `backgroundGradient.type`: String
    - `backgroundGradient.degrees`: Number
    - `backgroundGradient.radialShape`: String
    - `backgroundGradient.radialPosition`: String
    - `backgroundGradient.colors`: Object[]
      - `color`: String
      - `percentage`: Number
      - `_id`: ObjectId
    - `backgroundGradient.css`: String
    - `backgroundColorOnHover`: String
    - `innerBackgroundColor`: String
    - `innerBackgroundGradient.enabled`: Boolean, default false
    - `innerBackgroundGradient.type`: String
    - `innerBackgroundGradient.degrees`: Number
    - `innerBackgroundGradient.radialShape`: String
    - `innerBackgroundGradient.radialPosition`: String
    - `innerBackgroundGradient.colors`: Object[]
      - `color`: String
      - `percentage`: Number
      - `_id`: ObjectId
    - `innerBackgroundGradient.css`: String
    - `innerBackgroundColorOnHover`: String
    - `backgroundImage`: String
    - `backgroundSize`: String
    - `backgroundPosition`: String
    - `backgroundRepeat`: String
    - `backgroundVideo`: String
    - `paddingX`: Number, default 0
    - `paddingXOnHover`: Number, default 0
    - `paddingY`: Number, default 0
    - `paddingYOnHover`: Number, default 0
    - `innerPaddingX`: Number, default 0
    - `innerPaddingXOnHover`: Number, default 0
    - `innerPaddingY`: Number, default 0
    - `allowOffset`: Boolean, default false
    - `offsetX`: Number, default 0
    - `offsetY`: Number, default 0
    - `offsetMobileX`: Number, default 0
    - `offsetMobileY`: Number, default 0
    - `zIndex`: Number, default 0
    - `innerPaddingYOnHover`: Number, default 0
    - `paddingOptions`: String
    - `paddingOptionsOnHover`: String
    - `innerPaddingOptions`: String
    - `borderOptions`: String
    - `borderOptionsOnHover`: String
    - `card`: Boolean, default false
    - `borderRadius`: Number, default 0
    - `borderRadiusOnHover`: Number, default 0
    - `borderType`: String, default "none"
    - `borderTypeOnHover`: String, default "none"
    - `borderWidth`: Number, default 0
    - `borderWidthOnHover`: Number, default 0
    - `borderColor`: String, default ""
    - `borderColorOnHover`: String, default ""
    - `components`: Object[]
      - `type`: String
      - `size`: String, default "12"
      - `sticky`: Boolean, default false
      - `paddingX`: Number, default 0
      - `paddingY`: Number, default 0
      - `allowOffset`: Boolean, default false
      - `offsetX`: Number, default 0
      - `offsetY`: Number, default 0
      - `offsetMobileX`: Number, default 0
      - `offsetMobileY`: Number, default 0
      - `zIndex`: Number, default 0
      - `position`: String, one of static | relative | absolute | fixed | sticky, default "static"
      - `top.value`: String, default "0"
      - `top.unit`: String, default "px"
      - `top.mobile_value`: String, default ""
      - `top.mobile_unit`: String, default "px"
      - `left.value`: String, default "0"
      - `left.unit`: String, default "px"
      - `left.mobile_value`: String, default ""
      - `left.mobile_unit`: String, default "px"
      - `right.value`: String, default "0"
      - `right.unit`: String, default "px"
      - `right.mobile_value`: String, default ""
      - `right.mobile_unit`: String, default "px"
      - `bottom.value`: String, default "0"
      - `bottom.unit`: String, default "px"
      - `bottom.mobile_value`: String, default ""
      - `bottom.mobile_unit`: String, default "px"
      - `custom_measurements`: Boolean, default false
      - `edit_type`: String, default "simple"
      - `custom_width.value`: Mixed
      - `custom_width.unit`: String, default "px"
      - `custom_width.mobile_value`: Mixed
      - `custom_width.mobile_unit`: String, default "px"
      - `custom_min_width.value`: Mixed
      - `custom_min_width.unit`: String, default "px"
      - `custom_min_width.mobile_value`: Mixed
      - `custom_min_width.mobile_unit`: String, default "px"
      - `custom_max_width.value`: Mixed
      - `custom_max_width.unit`: String, default "px"
      - `custom_max_width.mobile_value`: Mixed
      - `custom_max_width.mobile_unit`: String, default "px"
      - `custom_height.value`: Mixed
      - `custom_height.unit`: String, default "px"
      - `custom_height.mobile_value`: Mixed
      - `custom_height.mobile_unit`: String, default "px"
      - `custom_min_height.value`: Mixed
      - `custom_min_height.unit`: String, default "px"
      - `custom_min_height.mobile_value`: Mixed
      - `custom_min_height.mobile_unit`: String, default "px"
      - `custom_max_height.value`: Mixed
      - `custom_max_height.unit`: String, default "px"
      - `custom_max_height.mobile_value`: Mixed
      - `custom_max_height.mobile_unit`: String, default "px"
      - `object_fit`: String, default "none"
      - `aspect_ratio.custom`: Boolean, default false
      - `aspect_ratio.ratio`: String, default ""
      - `min_height`: Number, default 0
      - `margin_left.value`: Mixed
      - `margin_left.unit`: String, default "px"
      - `margin_left.mobile_value`: Mixed
      - `margin_left.mobile_unit`: String, default "px"
      - `margin_right.value`: Mixed
      - `margin_right.unit`: String, default "px"
      - `margin_right.mobile_value`: Mixed
      - `margin_right.mobile_unit`: String, default "px"
      - `margin_top.value`: Mixed
      - `margin_top.unit`: String, default "px"
      - `margin_top.mobile_value`: Mixed
      - `margin_top.mobile_unit`: String, default "px"
      - `margin_bottom.value`: Mixed
      - `margin_bottom.unit`: String, default "px"
      - `margin_bottom.mobile_value`: Mixed
      - `margin_bottom.mobile_unit`: String, default "px"
      - `padding_left.value`: Mixed
      - `padding_left.unit`: String, default "px"
      - `padding_left.mobile_value`: Mixed
      - `padding_left.mobile_unit`: String, default "px"
      - `padding_right.value`: Mixed
      - `padding_right.unit`: String, default "px"
      - `padding_right.mobile_value`: Mixed
      - `padding_right.mobile_unit`: String, default "px"
      - `padding_top.value`: Mixed
      - `padding_top.unit`: String, default "px"
      - `padding_top.mobile_value`: Mixed
      - `padding_top.mobile_unit`: String, default "px"
      - `padding_bottom.value`: Mixed
      - `padding_bottom.unit`: String, default "px"
      - `padding_bottom.mobile_value`: Mixed
      - `padding_bottom.mobile_unit`: String, default "px"
      - `border_left.color`: String
      - `border_left.width.value`: Mixed
      - `border_left.width.unit`: String, default "px"
      - `border_left.style`: String
      - `border_right.color`: String
      - `border_right.width.value`: Mixed
      - `border_right.width.unit`: String, default "px"
      - `border_right.style`: String
      - `border_top.color`: String
      - `border_top.width.value`: Mixed
      - `border_top.width.unit`: String, default "px"
      - `border_top.style`: String
      - `border_bottom.color`: String
      - `border_bottom.width.value`: Mixed
      - `border_bottom.width.unit`: String, default "px"
      - `border_bottom.style`: String
      - `border_top_left_radius.value`: Mixed
      - `border_top_left_radius.unit`: String, default "px"
      - `border_top_right_radius.value`: Mixed
      - `border_top_right_radius.unit`: String, default "px"
      - `border_bottom_left_radius.value`: Mixed
      - `border_bottom_left_radius.unit`: String, default "px"
      - `border_bottom_right_radius.value`: Mixed
      - `border_bottom_right_radius.unit`: String, default "px"
      - `custom_border_radius.value`: Number
      - `custom_border_radius.unit`: String, default "px"
      - `specific_border_radius`: Boolean, default false
      - `box_shadows`: Object[]
      - `mix_blend_mode`: String, one of normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity, default "normal"
      - `paddingOptions`: String
      - `backgroundColor`: String
      - `backgroundGradient.enabled`: Boolean, default false
      - `backgroundGradient.type`: String
      - `backgroundGradient.degrees`: Number
      - `backgroundGradient.radialShape`: String
      - `backgroundGradient.radialPosition`: String
      - `backgroundGradient.colors`: Object[]
      - `backgroundGradient.css`: String
      - `card`: Boolean, default false
      - `borderRadius`: Number, default 0
      - `borderType`: String, default "none"
      - `borderWidth`: Number, default 0
      - `borderColor`: String, default ""
      - `borderOptions`: String
      - `showOnMobile`: Boolean, default true
      - `showOnDesktop`: Boolean, default true
      - `icon`: String
      - `iconSettings.size`: Number, default 40
      - `iconSettings.color`: String, default "var(--ion-color-primary)"
      - `heading`: String
      - `subHeading`: String
      - `heading_alignment`: String
      - `innerHTML`: String
      - `innerCSS`: String
      - `innerJS`: String
      - `lineHeight`: String, default "normal"
      - `medias`: Object[]
      - `products`: ObjectId[], → Product
      - `product_gallery.design_layout`: String, default ""
      - `product_gallery.mode`: String, default "card"
      - `product_gallery.columns`: Number, default 3
      - `product_gallery.placeholderItems`: Object[]
      - `product_gallery.placeholderPlateColor`: String, default ""
      - `product_gallery.showName`: Boolean, default true
      - `product_gallery.showPrice`: Boolean, default true
      - `product_gallery.showDescription`: Boolean, default false
      - `product_gallery.showBrand`: Boolean, default false
      - `product_gallery.showRibbon`: Boolean, default false
      - `product_gallery.showRating`: Boolean, default false
      - `product_gallery.showCart`: Boolean, default false
      - `product_gallery.showLink`: Boolean, default false
      - `product_gallery.linkLabel`: String, default "View product"
      - `product_gallery.imageAspectRatio`: String, default "1/1"
      - `product_gallery.imageHeight`: Number, default 260
      - `product_gallery.imageRadius`: Number, default 20
      - `product_gallery.imageObjectFit`: String, default "cover"
      - `product_gallery.cardBackgroundColor`: String, default "var(--ion-card-background, #ffffff)"
      - `product_gallery.cardBorderRadius`: Number, default 28
      - `product_gallery.cardBorderWidth`: Number, default 0
      - `product_gallery.cardBorderColor`: String, default "transparent"
      - `product_gallery.cardPaddingX`: Number, default 20
      - `product_gallery.cardPaddingY`: Number, default 20
      - `product_gallery.gap`: Number, default 24
      - `product_gallery.boxShadowColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.22)"
      - `product_gallery.boxShadowOffsetY`: Number, default 20
      - `product_gallery.boxShadowBlurRadius`: Number, default 40
      - `product_gallery.boxShadowSpreadRadius`: Number, default -22
      - `product_gallery.fieldBackground`: String, default "transparent"
      - `product_gallery.hairlineColor`: String, default "transparent"
      - `product_gallery.hairlineWidth`: Number, default 0
      - `product_gallery.maxWidth`: Number, default 0
      - `product_gallery.scrimGradient`: String, default ""
      - `product_gallery.align`: String, default "left"
      - `product_gallery.accentColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `product_gallery.nameColor`: String, default "var(--ion-text-color, #1e293b)"
      - `product_gallery.nameFontSize`: String, default "1em"
      - `product_gallery.nameFontWeight`: String, default "700"
      - `product_gallery.nameFontFamily`: String, default ""
      - `product_gallery.nameTransform`: String, default "none"
      - `product_gallery.priceColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `product_gallery.priceFontSize`: String, default "0.94em"
      - `product_gallery.priceFontWeight`: String, default "600"
      - `product_gallery.priceFontFamily`: String, default ""
      - `product_gallery.priceFontStyle`: String, default "normal"
      - `product_gallery.metaColor`: String, default "rgba(var(--ion-text-color-rgb, 30,41,59), 0.66)"
      - `product_gallery.titlePosition`: String, default "bottom"
      - `product_gallery.imageSide`: String, default "left"
      - `product_gallery.imagePadding`: Number, default 0
      - `product_gallery.boxShadowOffsetX`: Number, default 0
      - `product_gallery.descFontSize`: String, default "13px"
      - `product_gallery.descFontWeight`: String, default "400"
      - `product_gallery.animation`: String, default "none"
      - `product_gallery.animationDuration`: Number, default 0
      - `product_gallery.animationDelay`: Number, default 0
      - `product_gallery.showCustomFields`: Boolean, default false
      - `product_gallery.cardDesign`: String, default ""
      - `product_gallery.carouselLoop`: Boolean, default false
      - `product_gallery.carouselControls`: Boolean, default false
      - `product_gallery.customCss`: String, default ""
      - `services`: ObjectId[], → Service
      - `service_gallery.design_layout`: String, default ""
      - `service_gallery.mode`: String, default "card"
      - `service_gallery.columns`: Number, default 3
      - `service_gallery.placeholderItems`: Object[]
      - `service_gallery.placeholderPlateColor`: String, default ""
      - `service_gallery.showTitle`: Boolean, default true
      - `service_gallery.showPrice`: Boolean, default true
      - `service_gallery.showDescription`: Boolean, default false
      - `service_gallery.showDuration`: Boolean, default false
      - `service_gallery.durationLabel`: String, default "min"
      - `service_gallery.showImage`: Boolean, default true
      - `service_gallery.showLink`: Boolean, default false
      - `service_gallery.linkLabel`: String, default "View service"
      - `service_gallery.imageAspectRatio`: String, default "1/1"
      - `service_gallery.imageHeight`: Number, default 260
      - `service_gallery.imageRadius`: Number, default 20
      - `service_gallery.imageObjectFit`: String, default "cover"
      - `service_gallery.cardBackgroundColor`: String, default "var(--ion-card-background, #ffffff)"
      - `service_gallery.cardBorderRadius`: Number, default 28
      - `service_gallery.cardBorderWidth`: Number, default 0
      - `service_gallery.cardBorderColor`: String, default "transparent"
      - `service_gallery.cardPaddingX`: Number, default 20
      - `service_gallery.cardPaddingY`: Number, default 20
      - `service_gallery.gap`: Number, default 24
      - `service_gallery.boxShadowColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.22)"
      - `service_gallery.boxShadowOffsetY`: Number, default 20
      - `service_gallery.boxShadowBlurRadius`: Number, default 40
      - `service_gallery.boxShadowSpreadRadius`: Number, default -22
      - `service_gallery.fieldBackground`: String, default "transparent"
      - `service_gallery.hairlineColor`: String, default "transparent"
      - `service_gallery.hairlineWidth`: Number, default 0
      - `service_gallery.rowRuleColor`: String, default "transparent"
      - `service_gallery.rowRuleWidth`: Number, default 0
      - `service_gallery.maxWidth`: Number, default 0
      - `service_gallery.scrimGradient`: String, default ""
      - `service_gallery.align`: String, default "left"
      - `service_gallery.accentColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `service_gallery.titleColor`: String, default "var(--ion-text-color, #1e293b)"
      - `service_gallery.titleFontSize`: String, default "1em"
      - `service_gallery.titleFontWeight`: String, default "700"
      - `service_gallery.titleFontFamily`: String, default ""
      - `service_gallery.titleTransform`: String, default "none"
      - `service_gallery.priceColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `service_gallery.priceFontSize`: String, default "0.94em"
      - `service_gallery.priceFontWeight`: String, default "600"
      - `service_gallery.priceFontFamily`: String, default ""
      - `service_gallery.priceFontStyle`: String, default "normal"
      - `service_gallery.metaColor`: String, default "rgba(var(--ion-text-color-rgb, 30,41,59), 0.66)"
      - `service_gallery.titlePosition`: String, default "bottom"
      - `service_gallery.imageSide`: String, default "left"
      - `service_gallery.imagePadding`: Number, default 0
      - `service_gallery.boxShadowOffsetX`: Number, default 0
      - `service_gallery.descFontSize`: String, default "13px"
      - `service_gallery.descFontWeight`: String, default "400"
      - `service_gallery.animation`: String, default "none"
      - `service_gallery.animationDuration`: Number, default 0
      - `service_gallery.animationDelay`: Number, default 0
      - `service_gallery.showCustomFields`: Boolean, default false
      - `service_gallery.cardDesign`: String, default ""
      - `service_gallery.carouselLoop`: Boolean, default false
      - `service_gallery.carouselControls`: Boolean, default false
      - `service_gallery.customCss`: String, default ""
      - `blog_gallery.design_layout`: String, default ""
      - `blog_gallery.mode`: String, default "card"
      - `blog_gallery.columns`: Number, default 3
      - `blog_gallery.leadLayout`: String, default "beside"
      - `blog_gallery.leadWidth`: Number, default 58
      - `blog_gallery.placeholderItems`: Object[]
      - `blog_gallery.placeholderPlateColor`: String, default ""
      - `blog_gallery.showTitle`: Boolean, default true
      - `blog_gallery.showExcerpt`: Boolean, default false
      - `blog_gallery.showDate`: Boolean, default true
      - `blog_gallery.showImage`: Boolean, default true
      - `blog_gallery.showLink`: Boolean, default false
      - `blog_gallery.linkLabel`: String, default "Read more"
      - `blog_gallery.showCustomFields`: Boolean, default false
      - `blog_gallery.imageAspectRatio`: String, default "1/1"
      - `blog_gallery.imageHeight`: Number, default 260
      - `blog_gallery.imageRadius`: Number, default 20
      - `blog_gallery.imageObjectFit`: String, default "cover"
      - `blog_gallery.imagePadding`: Number, default 0
      - `blog_gallery.imageSide`: String, default "left"
      - `blog_gallery.cardBackgroundColor`: String, default "var(--ion-card-background, #ffffff)"
      - `blog_gallery.cardBorderRadius`: Number, default 28
      - `blog_gallery.cardBorderWidth`: Number, default 0
      - `blog_gallery.cardBorderColor`: String, default "transparent"
      - `blog_gallery.cardPaddingX`: Number, default 20
      - `blog_gallery.cardPaddingY`: Number, default 20
      - `blog_gallery.gap`: Number, default 24
      - `blog_gallery.boxShadowColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.22)"
      - `blog_gallery.boxShadowOffsetX`: Number, default 0
      - `blog_gallery.boxShadowOffsetY`: Number, default 20
      - `blog_gallery.boxShadowBlurRadius`: Number, default 40
      - `blog_gallery.boxShadowSpreadRadius`: Number, default -22
      - `blog_gallery.fieldBackground`: String, default "transparent"
      - `blog_gallery.hairlineColor`: String, default "transparent"
      - `blog_gallery.hairlineWidth`: Number, default 0
      - `blog_gallery.rowRuleColor`: String, default "transparent"
      - `blog_gallery.rowRuleWidth`: Number, default 0
      - `blog_gallery.maxWidth`: Number, default 0
      - `blog_gallery.scrimGradient`: String, default ""
      - `blog_gallery.align`: String, default "left"
      - `blog_gallery.accentColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `blog_gallery.titleColor`: String, default "var(--ion-text-color, #1e293b)"
      - `blog_gallery.titleFontSize`: String, default "1em"
      - `blog_gallery.titleFontWeight`: String, default "700"
      - `blog_gallery.titleFontFamily`: String, default ""
      - `blog_gallery.titleTransform`: String, default "none"
      - `blog_gallery.dateColor`: String, default "var(--ion-color-primary, #3880ff)"
      - `blog_gallery.dateFontSize`: String, default "0.81em"
      - `blog_gallery.dateFontWeight`: String, default "600"
      - `blog_gallery.dateFontFamily`: String, default ""
      - `blog_gallery.dateFontStyle`: String, default "normal"
      - `blog_gallery.metaColor`: String, default "rgba(var(--ion-text-color-rgb, 30,41,59), 0.66)"
      - `blog_gallery.excerptFontSize`: String, default "0.88em"
      - `blog_gallery.excerptFontWeight`: String, default "400"
      - `blog_gallery.excerptFontFamily`: String, default ""
      - `blog_gallery.titlePosition`: String, default "bottom"
      - `blog_gallery.animation`: String, default "none"
      - `blog_gallery.animationDuration`: Number, default 0
      - `blog_gallery.animationDelay`: Number, default 0
      - `blog_gallery.cardDesign`: String, default ""
      - `blog_gallery.customCss`: String, default ""
      - `multi_booking.layout`: String, default "chips"
      - `multi_booking.columns`: Number, default 3
      - `multi_booking.pickerBackground`: String, default "transparent"
      - `multi_booking.gap`: Number, default 10
      - `multi_booking.align`: String, default "left"
      - `multi_booking.showPrice`: Boolean, default false
      - `multi_booking.showDuration`: Boolean, default false
      - `multi_booking.showDescription`: Boolean, default false
      - `multi_booking.showImage`: Boolean, default false
      - `multi_booking.itemPaddingX`: Number, default 18
      - `multi_booking.itemPaddingY`: Number, default 10
      - `multi_booking.itemRadius`: Number, default 100
      - `multi_booking.itemBorderWidth`: Number, default 0
      - `multi_booking.itemBorderColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.12)"
      - `multi_booking.itemBackground`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.10)"
      - `multi_booking.itemTextColor`: String, default "var(--ion-text-color, inherit)"
      - `multi_booking.itemSubTextColor`: String, default "var(--ion-color-medium, rgba(0,0,0,0.55))"
      - `multi_booking.selectedBackground`: String, default "var(--ion-color-primary)"
      - `multi_booking.selectedTextColor`: String, default "var(--ion-color-primary-contrast, #ffffff)"
      - `multi_booking.selectedSubTextColor`: String, default "rgba(var(--ion-color-primary-contrast-rgb, 255,255,255), 0.75)"
      - `multi_booking.selectedBorderColor`: String, default "var(--ion-color-primary)"
      - `multi_booking.hoverBackground`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.18)"
      - `multi_booking.titleFontSize`: Number, default 14
      - `multi_booking.titleFontWeight`: String, default "500"
      - `multi_booking.subFontSize`: Number, default 13
      - `multi_booking.dividerColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.12)"
      - `multi_booking.dividerWidth`: Number, default 1
      - `multi_booking.autoScroll`: Boolean, default true
      - `multi_booking.cardBackground`: String, default "var(--ion-card-color, #ffffff)"
      - `multi_booking.cardRadius`: Number, default 28
      - `multi_booking.cardBorderWidth`: Number, default 0
      - `multi_booking.cardBorderColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.12)"
      - `multi_booking.cardMaxWidth`: Number, default 820
      - `multi_booking.cardLayout`: String, default "stack"
      - `multi_booking.splitWidth`: Number, default 340
      - `multi_booking.shadowColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.18)"
      - `multi_booking.shadowOffsetY`: Number, default 20
      - `multi_booking.shadowBlur`: Number, default 40
      - `multi_booking.shadowSpread`: Number, default -22
      - `multi_booking.sectionPaddingX`: Number, default 40
      - `multi_booking.sectionPaddingY`: Number, default 32
      - `multi_booking.sectionDividerColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.12)"
      - `multi_booking.sectionDividerWidth`: Number, default 1
      - `multi_booking.showStepLabels`: Boolean, default true
      - `multi_booking.serviceStepLabel`: String, default "Step 1 — Service"
      - `multi_booking.dayStepLabel`: String, default "Step 2 — Day"
      - `multi_booking.staffStepLabel`: String, default "Step 3 — Staff member"
      - `multi_booking.timeStepLabel`: String, default "Step 4 — Time"
      - `multi_booking.stepLabelColor`: String, default "var(--ion-color-medium, rgba(0,0,0,0.55))"
      - `multi_booking.stepLabelSize`: Number, default 13
      - `multi_booking.stepLabelWeight`: String, default "700"
      - `multi_booking.stepLabelSpacing`: Number, default 0.04
      - `multi_booking.stepLabelUppercase`: Boolean, default true
      - `multi_booking.dayCount`: Number, default 6
      - `multi_booking.dayLayout`: String, default "strip"
      - `multi_booking.dayBorderColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.15)"
      - `multi_booking.dayShape`: String, default "circle"
      - `multi_booking.daySize`: Number, default 64
      - `multi_booking.dayGap`: Number, default 10
      - `multi_booking.dayShowWeekday`: Boolean, default false
      - `multi_booking.dayBackground`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.10)"
      - `multi_booking.dayTextColor`: String, default "var(--ion-text-color, inherit)"
      - `multi_booking.daySelectedBackground`: String, default "var(--ion-color-primary)"
      - `multi_booking.daySelectedTextColor`: String, default "var(--ion-color-primary-contrast, #ffffff)"
      - `multi_booking.dayDisabledOpacity`: Number, default 0.35
      - `multi_booking.timeGap`: Number, default 10
      - `multi_booking.timeRadius`: Number, default 100
      - `multi_booking.timeBorderWidth`: Number, default 0
      - `multi_booking.timeBorderColor`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.15)"
      - `multi_booking.timeSelectedBorderColor`: String, default "var(--ion-color-primary)"
      - `multi_booking.timePaddingX`: Number, default 18
      - `multi_booking.timePaddingY`: Number, default 10
      - `multi_booking.timeBackground`: String, default "rgba(var(--ion-color-primary-rgb, 56,128,255), 0.10)"
      - `multi_booking.timeTextColor`: String, default "var(--ion-text-color, inherit)"
      - `multi_booking.timeSelectedBackground`: String, default "var(--ion-color-primary)"
      - `multi_booking.timeSelectedTextColor`: String, default "var(--ion-color-primary-contrast, #ffffff)"
      - `multi_booking.buttonText`: String, default "Confirm my booking"
      - `multi_booking.buttonBackground`: String, default "var(--ion-color-primary)"
      - `multi_booking.buttonTextColor`: String, default "var(--ion-color-primary-contrast, #ffffff)"
      - `multi_booking.buttonRadius`: Number, default 100
      - `multi_booking.buttonPaddingY`: Number, default 16
      - `multi_booking.buttonFontSize`: Number, default 15
      - `multi_booking.buttonFontWeight`: String, default "700"
      - `multi_booking.buttonFullWidth`: Boolean, default true
      - `blogposts`: ObjectId[], → BlogPost
      - `videos`: ObjectId[], → Video
      - `price_plans`: ObjectId[], → PricePlan
      - `href`: String, default "#"
      - `router_link`: String
      - `buttonOptions.fill`: String
      - `buttonOptions.expand`: String
      - `buttonOptions.size`: String
      - `buttonOptions.color`: String
      - `buttonOptions.class`: String
      - `buttonOptions.customColor`: String
      - `buttonOptions.customColorContrast`: String
      - `buttonOptions.customColorHover`: String
      - `buttonOptions.hoverRoll`: Boolean
      - `buttonOptions.fontWeight`: Number
      - `buttonOptions.letterSpacing`: Number
      - `buttonOptions.fontSize`: Number, default 14
      - `buttonOptions.borderRadius`: Number, default 6
      - `buttonOptions.customColorA`: String
      - `buttonOptions.customColorB`: String
      - `buttonOptions.customColorC`: String
      - `buttonOptions.custom_measurements`: Boolean, default false
      - `buttonOptions.height.value`: String
      - `buttonOptions.height.unit`: String
      - `buttonOptions.width.value`: String
      - `buttonOptions.width.unit`: String
      - `carousel.showArrows`: Boolean, default true
      - `carousel.showIndicators`: Boolean, default true
      - `carousel.height`: Number, default 90
      - `carousel.automaticHeight`: Boolean, default true
      - `carousel.carouselMedias`: Object[]
      - `map`: String
      - `contactForm.name`: String
      - `contactForm.email`: String
      - `contactForm.subject`: String
      - `contactForm.body`: String
      - `contactForm.button`: String
      - `contactForm.hideNewsletter`: Boolean
      - `contactForm.placeholders.name`: String
      - `contactForm.placeholders.email`: String
      - `contactForm.placeholders.subject`: String
      - `contactForm.placeholders.body`: String
      - `contactForm.style.backgroundColor`: String
      - `contactForm.style.textColor`: String
      - `contactForm.style.accentColor`: String
      - `contactForm.style.border.color`: String
      - `contactForm.style.border.width.value`: Mixed
      - `contactForm.style.border.width.unit`: String
      - `contactForm.style.border.style`: String
      - `contactForm.style.borderRadius.value`: Mixed
      - `contactForm.style.borderRadius.unit`: String
      - `contactForm.style.padding.value`: Mixed
      - `contactForm.style.padding.unit`: String
      - `contactForm.style.labelFontSize.value`: Mixed
      - `contactForm.style.labelFontSize.unit`: String
      - `contactForm.style.consentFontSize.value`: Mixed
      - `contactForm.style.consentFontSize.unit`: String
      - `contactForm.style.inputBackgroundColor`: String
      - `contactForm.style.inputTextColor`: String
      - `contactForm.style.placeholderColor`: String
      - `contactForm.style.inputFocusColor`: String
      - `contactForm.style.inputFontSize.value`: Mixed
      - `contactForm.style.inputFontSize.unit`: String
      - `contactForm.style.inputPadding.value`: Mixed
      - `contactForm.style.inputPadding.unit`: String
      - `contactForm.style.textareaMinHeight.value`: Mixed
      - `contactForm.style.textareaMinHeight.unit`: String
      - `contactForm.style.inputMargin.value`: Mixed
      - `contactForm.style.inputMargin.unit`: String
      - `contactForm.style.inputBorder.color`: String
      - `contactForm.style.inputBorder.width.value`: Mixed
      - `contactForm.style.inputBorder.width.unit`: String
      - `contactForm.style.inputBorder.style`: String
      - `contactForm.style.inputBorderRadius.value`: Mixed
      - `contactForm.style.inputBorderRadius.unit`: String
      - `contactForm.style.buttonBackgroundColor`: String
      - `contactForm.style.buttonTextColor`: String
      - `contactForm.style.buttonAlign`: String
      - `contactForm.style.buttonFontSize.value`: Mixed
      - `contactForm.style.buttonFontSize.unit`: String
      - `contactForm.style.buttonBorder.color`: String
      - `contactForm.style.buttonBorder.width.value`: Mixed
      - `contactForm.style.buttonBorder.width.unit`: String
      - `contactForm.style.buttonBorder.style`: String
      - `contactForm.style.buttonBorderRadius.value`: Mixed
      - `contactForm.style.buttonBorderRadius.unit`: String
      - `contactForm.style.buttonWidth.value`: Mixed
      - `contactForm.style.buttonWidth.unit`: String
      - `contactForm.additional`: Object[]
      - `instagram.columns`: Number
      - `instagram.first`: Number
      - `instagram.skip`: Number
      - `instagram.showInfo`: Boolean
      - `instagram.gridType`: Number
      - `instagram.profile`: String
      - `facebook.url`: String
      - `facebook.width`: String
      - `facebook.height`: String
      - `animation`: String, default "none"
      - `animationDuration`: Number, default 0
      - `animationStrength`: Number
      - `parallaxEnabled`: Boolean
      - `parallaxAmount`: Number
      - `parallaxZoom`: Number
      - `textReveal`: String
      - `animationDelay`: Number, default 0
      - `animationReplay`: String, default "once"
      - `animationEasing`: String, default "power3.out"
      - `animationBreakpoint`: String, default "all"
      - `scrollScrubEnabled`: Boolean, default false
      - `scrollScrubAxis`: String, default "y"
      - `scrollScrubDistance`: Number, default 80
      - `motionOrigin`: String, default "center center"
      - `hoverEnabled`: Boolean, default false
      - `hoverEffect`: String, default "none"
      - `hoverDuration`: Number, default 240
      - `hoverIntensity`: Number, default 4
      - `continuousEnabled`: Boolean, default false
      - `continuousEffect`: String, default "none"
      - `continuousDuration`: Number, default 2400
      - `continuousIntensity`: Number, default 4
      - `statefulEnabled`: Boolean, default false
      - `statefulEffect`: String, default "none"
      - `statefulDuration`: Number, default 260
      - `statefulStagger`: Number, default 60
      - `transform.enabled`: Boolean, default false
      - `transform.translateX.value`: Number, default 0
      - `transform.translateX.unit`: String, default "px"
      - `transform.translateY.value`: Number, default 0
      - `transform.translateY.unit`: String, default "px"
      - `transform.scaleX`: Number, default 1
      - `transform.scaleY`: Number, default 1
      - `transform.rotate`: Number, default 0
      - `transform.rotateX`: Number, default 0
      - `transform.rotateY`: Number, default 0
      - `transform.skewX`: Number, default 0
      - `transform.skewY`: Number, default 0
      - `transform.perspective`: Number, default 0
      - `transform.originX`: String, default "center"
      - `transform.originY`: String, default "center"
      - `opacity`: Mixed
      - `transitionDuration`: Mixed
      - `transitionEasing`: String
      - `states`: Mixed
      - `useIframe`: Boolean, default false
      - `popup.text`: String
      - `popup.backgroundColor`: String
      - `popup.fullScreen`: Boolean, default false
      - `popup.about_page`: ObjectId, → AboutPage
      - `custom_component.html`: String
      - `custom_component.compiled_html`: String
      - `custom_component.css`: String
      - `custom_component.compiled_css`: String
      - `custom_component.js`: String
      - `custom_component.iframe`: Boolean, default false
      - `custom_component.variables`: Object[]
      - `hoverable_media.before_hover_media.media`: ObjectId, → Media
      - `hoverable_media.before_hover_media.gcs_url`: String
      - `hoverable_media.before_hover_media.vimeo_uri`: String
      - `hoverable_media.before_hover_media.vimeo_picture`: String
      - `hoverable_media.before_hover_media.youtube_url`: String
      - `hoverable_media.before_hover_media.vimeo_url`: String
      - `hoverable_media.before_hover_media.href`: String
      - `hoverable_media.before_hover_media.router_link`: String
      - `hoverable_media.before_hover_media.thumbnail`: String
      - `hoverable_media.before_hover_media.autoplay`: Boolean, default false
      - `hoverable_media.before_hover_media.loop`: Boolean, default false
      - `hoverable_media.before_hover_media.show_controls`: Boolean, default true
      - `hoverable_media.after_hover_media.media`: ObjectId, → Media
      - `hoverable_media.after_hover_media.gcs_url`: String
      - `hoverable_media.after_hover_media.vimeo_uri`: String
      - `hoverable_media.after_hover_media.vimeo_picture`: String
      - `hoverable_media.after_hover_media.youtube_url`: String
      - `hoverable_media.after_hover_media.vimeo_url`: String
      - `hoverable_media.after_hover_media.href`: String
      - `hoverable_media.after_hover_media.router_link`: String
      - `hoverable_media.after_hover_media.thumbnail`: String
      - `hoverable_media.after_hover_media.autoplay`: Boolean, default false
      - `hoverable_media.after_hover_media.loop`: Boolean, default false
      - `hoverable_media.after_hover_media.show_controls`: Boolean, default true
      - `collapsible_container`: Object[]
      - `collapsible_container_settings.enable_customization`: Boolean, default false
      - `collapsible_container_settings.title_color`: String
      - `collapsible_container_settings.title_color_checked`: String
      - `collapsible_container_settings.title_background`: String
      - `collapsible_container_settings.title_background_checked`: String
      - `collapsible_container_settings.title_font_size`: String
      - `collapsible_container_settings.title_border_radius`: String
      - `collapsible_container_settings.title_border_color`: String
      - `collapsible_container_settings.title_border_width`: String
      - `collapsible_container_settings.body_color`: String
      - `collapsible_container_settings.body_background`: String
      - `collapsible_container_settings.body_border_radius`: String
      - `collapsible_container_settings.body_border_color`: String
      - `collapsible_container_settings.body_border_width`: String
      - `collapsible_container_settings.body_font_size`: String
      - `collapsible_container_settings.icon_color`: String
      - `collapsible_container_settings.icon_glyph_color`: String
      - `collapsible_container_settings.icon_background_color`: String
      - `quiz.title`: String
      - `quiz.header`: String
      - `quiz.questions`: Object[]
      - `quiz.score_results`: Object[]
      - `quiz.show_right_answers`: Boolean, default false
      - `quiz.mutliple_choice`: Boolean, default false
      - `partners.defaultCollection`: String, default ""
      - `partners.defaultView`: String, default "locations"
      - `scroll_sequence.media`: ObjectId, → Media
      - `scroll_sequence.scroll_length`: Number, default 3
      - `scroll_sequence.fit`: String, one of cover | contain, default "cover"
      - `scroll_sequence.background_color`: String, default "#000000"
      - `scroll_sequence.overlay_color`: String, default ""
      - `scroll_sequence.overlay_opacity`: Number, default 0
      - `scroll_sequence.rows_over`: Boolean, default true
      - `scroll_sequence.rows_effect`: String, one of slide | pop, default "slide"
      - `scroll_sequence.snap_points`: Number[]
      - `scroll_sequence.snap_scroll_speed`: Number, default 1.5
      - `scroll_sequence.snap_down`: Boolean, default true
      - `scroll_sequence.snap_up`: Boolean, default false
      - `scroll_sequence.stop_momentum`: Boolean, default false
      - `smart_search.placeholder`: String, default ""
      - `smart_search.kinds`: String[]
      - `smart_search.collections`: String[]
      - `smart_search.items`: Object[]
      - `smart_search.showKindFilter`: Boolean, default true
      - `smart_search.showPriceFilter`: Boolean, default false
      - `smart_search.showDateFilter`: Boolean, default false
      - `smart_search.showSort`: Boolean, default true
      - `smart_search.dateMode`: String, one of created | updated | availability, default "created"
      - `smart_search.layout`: String, one of grid | list, default "grid"
      - `smart_search.columns`: Number, default 3
      - `smart_search.perPage`: Number, default 12
      - `smart_search.instant`: Boolean, default true
      - `smart_search.showImages`: Boolean, default true
      - `smart_search.showPrices`: Boolean, default true
      - `smart_search.showInitial`: Boolean, default false
      - `smart_search.showAnswer`: Boolean, default false
      - `countdown.targetDate`: String, default ""
      - `countdown.expiredText`: String, default "Offer has ended"
      - `countdown.hideOnExpire`: Boolean, default false
      - `countdown.textColor`: String, default ""
      - `countdown.boxColor`: String, default ""
      - `countdown.align`: String, one of  | left | center | right, default ""
      - `swiper.slides`: Object[]
      - `swiper.autoplay`: Boolean, default false
      - `swiper.loop`: Boolean, default false
      - `swiper.show_controls`: Boolean, default true
      - `swiper.dynamic_bullets`: Boolean, default false
      - `swiper.pagination`: Boolean, default true
      - `dynamicField`: String
      - `useDynamicField`: Boolean, default false
      - `text_auto_slider.speed`: Number
      - `text_auto_slider.aspect_ratio`: String
      - `text_auto_slider.text_color`: String
      - `text_auto_slider.background_color`: String
      - `text_auto_slider.delimiter_color`: String
      - `text_auto_slider.direction`: String
      - `text_auto_slider.width`: Number
      - `text_auto_slider.font_size`: Number
      - `text_auto_slider.text_transform`: String, one of none | uppercase, default "none"
      - `text_auto_slider.texts`: Object[]
      - `image_auto_slider.speed`: Number
      - `image_auto_slider.aspect_ratio`: String
      - `image_auto_slider.direction`: String
      - `image_auto_slider.width`: Number
      - `image_auto_slider.medias`: Object[]
      - `image_dragger.aspect_ratio`: String
      - `image_dragger.media_1.media`: ObjectId, → Media
      - `image_dragger.media_1.gcs_url`: String
      - `image_dragger.media_1.vimeo_uri`: String
      - `image_dragger.media_1.vimeo_picture`: String
      - `image_dragger.media_1.vimeo_url`: String
      - `image_dragger.media_1.youtube_url`: String
      - `image_dragger.media_2.media`: ObjectId, → Media
      - `image_dragger.media_2.gcs_url`: String
      - `image_dragger.media_2.vimeo_uri`: String
      - `image_dragger.media_2.vimeo_picture`: String
      - `image_dragger.media_2.vimeo_url`: String
      - `image_dragger.media_2.youtube_url`: String
      - `image_dragger.media_2.title`: String
      - `image_dragger.media_2.body`: String
      - `image_dragger.media_2.textColor`: String
      - `image_dragger.media_2.href`: String
      - `image_dragger.media_2.router_link`: String
      - `_id`: ObjectId
    - `sections`: Object[]
      - `position`: String, one of static | relative | absolute | fixed | sticky, default "static"
      - `overflow`: String, one of visible | hidden | scroll | auto, default "visible"
      - `editorName`: String
      - `top.value`: String, default "0"
      - `top.unit`: String, default "px"
      - `top.mobile_value`: String, default ""
      - `top.mobile_unit`: String, default "px"
      - `left.value`: String, default "0"
      - `left.unit`: String, default "px"
      - `left.mobile_value`: String, default ""
      - `left.mobile_unit`: String, default "px"
      - `right.value`: String, default "0"
      - `right.unit`: String, default "px"
      - `right.mobile_value`: String, default ""
      - `right.mobile_unit`: String, default "px"
      - `bottom.value`: String, default "0"
      - `bottom.unit`: String, default "px"
      - `bottom.mobile_value`: String, default ""
      - `bottom.mobile_unit`: String, default "px"
      - `display`: String, one of block | inline | flex, default "block"
      - `flex_direction`: String, one of row | row-reverse | column | column-reverse, default "row"
      - `flex_direction_mobile`: String, default ""
      - `backdropFilter`: String, default ""
      - `justify`: String, one of start | end | center | space-between | space-around | stretch, default "start"
      - `justify_mobile`: String, default ""
      - `align`: String, one of start | end | center | space-between | space-around | stretch, default "start"
      - `align_mobile`: String, default ""
      - `animation`: String, default "none"
      - `animationDuration`: Number, default 0
      - `animationStrength`: Number
      - `parallaxEnabled`: Boolean
      - `parallaxAmount`: Number
      - `parallaxZoom`: Number
      - `animationDelay`: Number, default 0
      - `animationReplay`: String, default "once"
      - `animationEasing`: String, default "power3.out"
      - `animationBreakpoint`: String, default "all"
      - `scrollScrubEnabled`: Boolean, default false
      - `scrollScrubAxis`: String, default "y"
      - `scrollScrubDistance`: Number, default 80
      - `motionOrigin`: String, default "center center"
      - `hoverEnabled`: Boolean, default false
      - `hoverEffect`: String, default "none"
      - `hoverDuration`: Number, default 240
      - `hoverIntensity`: Number, default 4
      - `continuousEnabled`: Boolean, default false
      - `continuousEffect`: String, default "none"
      - `continuousDuration`: Number, default 2400
      - `continuousIntensity`: Number, default 4
      - `statefulEnabled`: Boolean, default false
      - `statefulEffect`: String, default "none"
      - `statefulDuration`: Number, default 260
      - `statefulStagger`: Number, default 60
      - `transform.enabled`: Boolean, default false
      - `transform.translateX.value`: Number, default 0
      - `transform.translateX.unit`: String, default "px"
      - `transform.translateY.value`: Number, default 0
      - `transform.translateY.unit`: String, default "px"
      - `transform.scaleX`: Number, default 1
      - `transform.scaleY`: Number, default 1
      - `transform.rotate`: Number, default 0
      - `transform.rotateX`: Number, default 0
      - `transform.rotateY`: Number, default 0
      - `transform.skewX`: Number, default 0
      - `transform.skewY`: Number, default 0
      - `transform.perspective`: Number, default 0
      - `transform.originX`: String, default "center"
      - `transform.originY`: String, default "center"
      - `opacity`: Mixed
      - `transitionDuration`: Mixed
      - `transitionEasing`: String
      - `states`: Mixed
      - `hoverGroup`: Boolean
      - `flex_wrap`: String, one of nowrap | wrap | wrap-reverse, default "wrap"
      - `flex_wrap_mobile`: String, default ""
      - `width.value`: String, default ""
      - `width.unit`: String, default "px"
      - `width.mobile_value`: String, default ""
      - `width.mobile_unit`: String, default "px"
      - `min_width.value`: String, default ""
      - `min_width.unit`: String, default "px"
      - `min_width.mobile_value`: String, default ""
      - `min_width.mobile_unit`: String, default "px"
      - `max_width.value`: String, default ""
      - `max_width.unit`: String, default "px"
      - `max_width.mobile_value`: String, default ""
      - `max_width.mobile_unit`: String, default "px"
      - `height.value`: String, default ""
      - `height.unit`: String, default "px"
      - `height.mobile_value`: String, default ""
      - `height.mobile_unit`: String, default "px"
      - `min_height.value`: String, default ""
      - `min_height.unit`: String, default "px"
      - `min_height.mobile_value`: String, default ""
      - `min_height.mobile_unit`: String, default "px"
      - `max_height.value`: String, default ""
      - `max_height.unit`: String, default "px"
      - `max_height.mobile_value`: String, default ""
      - `max_height.mobile_unit`: String, default "px"
      - `object_fit`: String
      - `aspect_ratio.custom`: Boolean, default false
      - `aspect_ratio.ratio`: String, default ""
      - `margin_left.value`: String, default "0"
      - `margin_left.unit`: String, default "px"
      - `margin_left.mobile_value`: String, default ""
      - `margin_left.mobile_unit`: String, default "px"
      - `margin_right.value`: String, default "0"
      - `margin_right.unit`: String, default "px"
      - `margin_right.mobile_value`: String, default ""
      - `margin_right.mobile_unit`: String, default "px"
      - `margin_top.value`: String, default "0"
      - `margin_top.unit`: String, default "px"
      - `margin_top.mobile_value`: String, default ""
      - `margin_top.mobile_unit`: String, default "px"
      - `margin_bottom.value`: String, default "0"
      - `margin_bottom.unit`: String, default "px"
      - `margin_bottom.mobile_value`: String, default ""
      - `margin_bottom.mobile_unit`: String, default "px"
      - `padding_left.value`: String, default "0"
      - `padding_left.unit`: String, default "px"
      - `padding_left.mobile_value`: String, default ""
      - `padding_left.mobile_unit`: String, default "px"
      - `padding_right.value`: String, default "0"
      - `padding_right.unit`: String, default "px"
      - `padding_right.mobile_value`: String, default ""
      - `padding_right.mobile_unit`: String, default "px"
      - `padding_top.value`: String, default "0"
      - `padding_top.unit`: String, default "px"
      - `padding_top.mobile_value`: String, default ""
      - `padding_top.mobile_unit`: String, default "px"
      - `padding_bottom.value`: String, default "0"
      - `padding_bottom.unit`: String, default "px"
      - `padding_bottom.mobile_value`: String, default ""
      - `padding_bottom.mobile_unit`: String, default "px"
      - `border_left.style`: String, default "none"
      - `border_left.color`: String
      - `border_left.width.value`: String, default "0"
      - `border_left.width.unit`: String, default "px"
      - `border_right.style`: String, default "none"
      - `border_right.color`: String
      - `border_right.width.value`: String, default "0"
      - `border_right.width.unit`: String, default "px"
      - `border_top.style`: String, default "none"
      - `border_top.color`: String
      - `border_top.width.value`: String, default "0"
      - `border_top.width.unit`: String, default "px"
      - `border_bottom.style`: String, default "none"
      - `border_bottom.color`: String
      - `border_bottom.width.value`: String, default "0"
      - `border_bottom.width.unit`: String, default "px"
      - `border_top_left_radius.value`: String, default "0"
      - `border_top_left_radius.unit`: String, default "px"
      - `border_top_right_radius.value`: String, default "0"
      - `border_top_right_radius.unit`: String, default "px"
      - `border_bottom_left_radius.value`: String, default "0"
      - `border_bottom_left_radius.unit`: String, default "px"
      - `border_bottom_right_radius.value`: String, default "0"
      - `border_bottom_right_radius.unit`: String, default "px"
      - `border_radius.value`: String, default "0"
      - `border_radius.unit`: String, default "px"
      - `specific_border_radius`: Boolean, default false
      - `box_shadows`: Object[]
      - `backgroundColor`: String
      - `backgroundGradient.enabled`: Boolean, default false
      - `backgroundGradient.type`: String
      - `backgroundGradient.degrees`: Number
      - `backgroundGradient.radialShape`: String
      - `backgroundGradient.radialPosition`: String
      - `backgroundGradient.colors`: Object[]
      - `backgroundGradient.css`: String
      - `backgroundVideo`: String
      - `backgroundImage`: String
      - `backgroundSize`: String
      - `backgroundPosition`: String
      - `backgroundRepeat`: String
      - `showOnMobile`: Boolean, default true
      - `showOnDesktop`: Boolean, default true
      - `components`: Object[]
      - `sections`: Object[]
      - `_id`: ObjectId
    - `_id`: ObjectId
  - `ai_meta`: Mixed
  - `_id`: ObjectId
- `suitability_price_plans`: ObjectId[], → PricePlan
- `isSuitable`: Boolean
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### Cart

- `session`: String, required
- `items`: Object[]
  - `item`: ObjectId, → Products
  - `options`: String
  - `_id`: ObjectId
- `coupon`: ObjectId
- `discount_value`: Number, default 0
- `ip_guessed.country`: String
- `ip_guessed.country_code`: String
- `ip_guessed.city`: String
- `ip_guessed.state`: String
- `ip_guessed.zip_code`: String
- `ip_guessed.dialing_code`: String
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### ChatMessage

- `chat_id`: ObjectId, required, → ChatHistory
- `role`: String, one of user | model
- `text`: String
- `target_url`: String
- `action`: String, one of RESPONSE | REDIRECT | OBJECT_RESPONSE | ERROR | CLARIFY | PROPOSED_ACTION
- `options`: String[]
- `data.object`: Mixed
- `data.object_type`: String
- `data.edit_summary`: Mixed
- `data.edit_diff`: Mixed
- `data.undo_record`: Mixed
- `data.hero_animation_offer`: Mixed
- `data.preview_state`: String
- `data.pending_credit_cost`: Number
- `data.target_restore`: Mixed
- `data.media_request`: Mixed
- `data.item_request`: Mixed
- `data.reference_request`: Mixed
- `data.section_options`: Mixed
- `data.section_blueprint`: Mixed
- `data.section_style_options`: Mixed
- `data.section_style_blueprint`: Mixed
- `data.section_role_picker`: Mixed
- `data.small_section_regeneration_options`: Mixed
- `data.small_section_regeneration_target`: Mixed
- `data.small_section_regeneration_prompt`: String
- `data.selected_small_section_action`: Mixed
- `data.component_regeneration_input`: Mixed
- `data.selected_section_role`: Mixed
- `data.selected_section_option`: Mixed
- `data.selected_section_style`: Mixed
- `data.section_options_target`: Mixed
- `data.section_options_prompt`: String
- `data.style_options_target`: Mixed
- `data.style_options_prompt`: String
- `data.previous_container`: Mixed
- `data.preserved_custom_components`: Mixed[]
- `data.selection_request`: Mixed
- `data.proposed_action`: Mixed
- `data.plan_result`: Mixed
- `data.parsed_intent`: Mixed
- `data.parsed_intent_version`: Number
- `data.parsed_intent_at`: Date
- `data.item_id`: ObjectId
- `data.design_archetype`: String
- `data.design_palette`: Mixed
- `data.out_of_credits`: Boolean
- `data.site_wide_edit`: Mixed
- `data.redesign`: Mixed
- `medias`: Object[]
  - `media`: ObjectId, → Media
  - `gcs_url`: String
  - `gemini_uri`: String
  - `gemini_interaction_id`: String
  - `_id`: ObjectId
- `products`: ObjectId[], → Product
- `services`: ObjectId[], → Service
- `blogposts`: ObjectId[], → BlogPost
- `programs`: ObjectId[], → Program
- `suggestions`: Object[]
  - `text`: String
  - `route`: String
  - `item_id`: ObjectId
  - `medias`: Mixed[]
  - `picture`: ObjectId
  - `_id`: ObjectId
- `is_system`: Boolean, default false
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### Collection

A group or filter of items; the prefix of its name is its kind (product/, grouping/, service/, blogpost/...).

- `name`: String, required - Name of the collection, should be unique, required.
- `parent_collection`: ObjectId, → Collection - Reference to Collection.
- `picture`: ObjectId, → Media - Reference to Media.
- `about_page`: ObjectId, → AboutPage - Reference to AboutPage.
- `match_to_option`: Boolean, default false - Matches all products which have an option with match_to_collection true.
- `is_color`: Boolean, default false - Used for products with color options.
- `color`: String - Used to visually show the color on the page when is_color is true.
- `position`: Number
- `items`: ObjectId[]
- `thumbnail`: ObjectId, → Media
- `_id`: ObjectId

### Comment

- `user`: ObjectId, required, → User
- `connected_account_user`: ObjectId, → User
- `commented_on`: ObjectId, required
- `comment`: String, required
- `likes`: ObjectId[], → User
- `replies`: Object[]
  - `comment`: String, required
  - `user`: ObjectId, required, → User
  - `likes`: ObjectId[], → User
  - `createdAt`: Date
  - `isHidden`: Boolean, default false
  - `_id`: ObjectId
- `mentions`: ObjectId[], → User
- `isHidden`: Boolean, default false
- `medias`: Object[]
  - `media`: ObjectId, → Media
  - `_id`: ObjectId
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### Donation

A fundraising campaign.

- `enabled`: Boolean, default false
- `has_shippable_items`: Boolean, default false
- `medias`: Object[]
  - `media`: ObjectId, → Media
  - `gcs_url`: String
  - `gcs_480_30_url`: String
  - `gcs_720_30_url`: String
  - `gcs_1080_30_url`: String
  - `duration`: Number
  - `vimeo_uri`: String
  - `vimeo_picture`: String
  - `vimeo_url`: String
  - `youtube_url`: String
  - `youtube_picture`: String
  - `thumbnail`: String
  - `_id`: ObjectId
- `url`: String, required
- `static_url`: String
- `title`: String, required - Name of the campaign, required.
- `description`: String, required - Full body text describing the campaign and its goals, in HTML format, required.
- `about_page`: ObjectId, → AboutPage
- `target_amount.enabled`: Boolean, default false
- `target_amount.amount`: Number
- `predefined_amounts.enabled`: Boolean, default false
- `predefined_amounts.amounts`: Object[]
  - `title`: String, required
  - `description`: String
  - `amount`: Number, required
  - `_id`: ObjectId
- `collection_id`: ObjectId, → Collection - Reference to a Collection with name starting with 'donation-category/', optional.
- `topics`: Object[]
  - `collection_id`: ObjectId, → Collection
  - `_id`: ObjectId
- `owner_id`: ObjectId, → User
- `options`: Object[] - Purchasable add-on option groups for the donation (e.g. "Include a gift", "Select a reward tier").
  - `name`: String, required
  - `options`: Object[]
    - `option`: String, required
    - `match_to_collection`: ObjectId, → Collection
    - `quantity`: Number
    - `badge`: String
    - `option_specific_media`: ObjectId, → Media
    - `_id`: ObjectId
  - `_id`: ObjectId
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### MyContact

The site's name and contact details.

- `zip_code`: String, required - Postal/ZIP code.
- `city`: String, required - The city where the business is located.
- `address`: String, required - The street address.
- `contact`: String
- `email`: String, required - The public contact email address.
- `google_app`: String
- `workhours`: String
- `logo`: ObjectId
- `site_name`: String, required - The business/site name shown publicly.
- `domain`: String, required
- `stock_domain`: String
- `isMarket`: Boolean, required, default false
- `forbidden_collections`: Object[]
  - `collection_id`: ObjectId, → Collection
  - `_id`: ObjectId
- `isInit`: Boolean, default false
- `template`: String, default "0000"
- `lang`: String - 2-letter language code (e.g. "en", "fr", "de").
- `allowedComponents.services`: Boolean, default true
- `allowedComponents.products`: Boolean, default true
- `allowedComponents.blogposts`: Boolean, default true
- `allowedComponents.programs`: Boolean, default true
- `favicon`: ObjectId
- `cacheEnabled`: Boolean
- `has_completed_startup_prompt`: Boolean, default true
- `gmb_location`: String
- `ga_property`: String
- `site_generated_at`: Date
- `admin_first_opened_at`: Date
- `admin_last_opened_at`: Date
- `admin_in_app_browser`: Boolean
- `domain_suggestions`: Mixed
- `_id`: ObjectId

### Order

A completed purchase.

- `organization_name`: String
- `firstname`: String, required
- `lastname`: String, required
- `email`: String, required
- `phone_number`: String, required
- `address`: String, required
- `city`: String, required
- `state`: String
- `country`: String, required
- `zip_code`: String, required
- `tax_identification_number`: String
- `notes`: String
- `products`: String[]
- `products_obj`: Object[]
  - `product_id`: ObjectId, → Product
  - `name`: String
  - `options`: String
  - `price`: Number
  - `quantity`: Number
  - `_id`: ObjectId
- `programs`: String[]
- `programs_obj`: Object[]
  - `program_id`: ObjectId, → Program
  - `title`: String
  - `price`: Number
  - `_id`: ObjectId
- `tickets`: ObjectId[], → Ticket
- `donations`: ObjectId[], → Donation
- `donations_obj`: Object[]
  - `donation_id`: ObjectId, → Donation
  - `name`: String
  - `options`: String
  - `price`: Number
  - `quantity`: Number
  - `_id`: ObjectId
- `value`: Number
- `finalized`: Boolean, default false
- `fulfilled`: Boolean, default false
- `paid`: Boolean, default false
- `delivery_method`: String
- `payment_method`: String
- `shipping_cost`: Number
- `coupon_code`: String
- `owner_id`: ObjectId, → User
- `reference_id`: String
- `rating_mail_sent`: Boolean, default false
- `shipping_label`: String
- `shipping_option`: String, one of address | office, default "address"
- `shipping_message`: String
- `shipping_office`: String
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### PaymentMethod

- `has_cash`: Boolean, default false
- `cash_locale`: String, default "Pay by cash"
- `cash_instructions`: String
- `cash_increase`: Number, default 0
- `has_card`: Boolean, default false
- `card_locale`: String, default "Pay with credit card"
- `email`: String
- `country`: String
- `has_invoicing`: Boolean, default false
- `invoice_locale`: String, default "Pay via invoice"
- `invoicing_instructions`: String
- `currency`: String, required
- `agreedToTerms`: Boolean, default false
- `agreedToTermsAt`: String
- `merchant_id`: String
- `has_paypal`: Boolean, default false
- `paypal_increase`: Number, default 0
- `paypal_id`: String
- `lock_currency`: Boolean, default false
- `commission_percentage`: Number, default 4.4
- `two_currencies`: Boolean, default false
- `second_currency`: String
- `calculate_rate`: Boolean, default false
- `currency_rate`: Number
- `_id`: ObjectId

### Rating

- `email`: String, required
- `text`: String
- `medias`: Object[]
  - `media`: ObjectId, → Media
  - `_id`: ObjectId
- `stars`: Number, required
- `product`: ObjectId, → Product
- `service`: ObjectId, → Service
- `program`: ObjectId, → Program
- `price_plan`: ObjectId, → PricePlan
- `name`: String
- `miniapp`: ObjectId, → MiniApp
- `staff_member`: ObjectId, → User
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### RatingSettings

- `type`: String, required
- `send`: Boolean, default false
- `days`: Number, required
- `title`: String, required
- `text1`: String, required
- `text2`: String
- `useCustomLink`: Boolean, default false
- `customLinkUrl`: String
- `linkText`: String
- `startDate`: Date, required
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### SocialModeSettings

- `social_mode`: Boolean, default false
- `allow_products`: Boolean, default false
- `allow_services`: Boolean, default false
- `allow_services_stp`: Boolean, default false
- `allow_blogposts`: Boolean, default false
- `allow_programs`: Boolean, default false
- `allow_programs_stp`: Boolean, default false
- `allow_posts`: Boolean, default false
- `allow_ai`: Boolean, default false
- `allow_bites`: Boolean, default false
- `allow_long_videos`: Boolean, default false
- `allow_explore`: Boolean, default false
- `allow_online_payments`: Boolean, default false
- `allow_price_plans`: Boolean, default false
- `allow_boosting_posts`: Boolean, default false
- `allow_single_ai`: Boolean, default false
- `merchant_agreement`: ObjectId, → AboutPage
- `verification_popup`: ObjectId, → AboutPage
- `commission`: Number
- `home_page`: String, default "home"
- `navigation_pages.bites`: Boolean, default true
- `navigation_pages.long_videos`: Boolean, default true
- `navigation_pages.vouchers`: Boolean, default true
- `navigation_pages.store`: Boolean, default true
- `navigation_pages.programs`: Boolean, default true
- `navigation_pages.services`: Boolean, default true
- `navigation_pages.blogposts`: Boolean, default true
- `navigation_pages.subscription`: Boolean, default true
- `navigation_pages.playlists`: Boolean, default true
- `navigation_pages.partners`: Boolean, default true
- `navigation_pages.contacts`: Boolean, default true
- `navigation_pages.tracker`: Boolean, default true
- `navigation_pages.more`: Boolean, default true
- `navigation_pages.claims`: Boolean, default true
- `navigation_pages.miniapps`: Boolean, default false
- `navigation_pages.events`: Boolean, default false
- `navigation_pages.professional_pages`: Boolean, default false
- `allow_google_login`: Boolean, default true
- `use_cdn_for_medias`: Boolean, default false
- `cdn_for_medias`: String
- `use_cdn_for_microservices`: Boolean, default false
- `cdn_for_microservices`: String
- `cdn_for_sockets`: String
- `paywall.store.has_paywall`: Boolean, default false
- `paywall.store.priceplans`: ObjectId[], → PricePlan
- `paywall.programs.has_paywall`: Boolean, default false
- `paywall.programs.priceplans`: ObjectId[], → PricePlan
- `paywall.services.has_paywall`: Boolean, default false
- `paywall.services.priceplans`: ObjectId[], → PricePlan
- `paywall.blogposts.has_paywall`: Boolean, default false
- `paywall.blogposts.priceplans`: ObjectId[], → PricePlan
- `paywall.subscription.has_paywall`: Boolean, default false
- `paywall.subscription.priceplans`: ObjectId[], → PricePlan
- `paywall.post.has_paywall`: Boolean, default false
- `paywall.post.priceplans`: ObjectId[], → PricePlan
- `paywall.groups.has_paywall`: Boolean, default false
- `paywall.groups.priceplans`: ObjectId[], → PricePlan
- `paywall.professional_pages.has_paywall`: Boolean, default false
- `paywall.professional_pages.priceplans`: ObjectId[], → PricePlan
- `allow_chat`: Boolean, default true
- `allow_in_app_notifications`: Boolean, default true
- `dashboard_pages.following`: Boolean, default true
- `dashboard_pages.recent`: Boolean, default true
- `dashboard_pages.threads`: Boolean, default true
- `dashboard_pages.long_videos`: Boolean, default true
- `dashboard_pages.groups`: Boolean, default true
- `dashboard_pages.about_pages`: Boolean, default true
- `dashboard_pages.mini_apps`: Boolean, default true
- `dashboard_pages.blogposts`: Boolean, default true
- `dashboard_pages.products`: Boolean, default true
- `dashboard_pages.services`: Boolean, default true
- `dashboard_pages.price_plans`: Boolean, default true
- `dashboard_pages.programs`: Boolean, default true
- `dashboard_pages.claims`: Boolean, default true
- `dashboard_pages.bites`: Boolean, default true
- `dashboard_pages.playlists`: Boolean, default true
- `dashboard_pages.partners`: Boolean, default true
- `dashboard_pages.contacts`: Boolean, default true
- `dashboard_pages.tracker`: Boolean, default true
- `dashboard_pages.vouchers`: Boolean, default true
- `dashboard_pages.explore`: Boolean, default true
- `feed_menus`: String, default "grid"
- `allow_miniapps`: Boolean, default false
- `about_pages.groups`: ObjectId, → AboutPage
- `user_groups`: Boolean, default true
- `allow_professional_pages`: Boolean, default false
- `allow_professional_account_registration`: Boolean, default false
- `locations_map.enabled`: Boolean, default false
- `use_companion_bookings`: Boolean, default false
- `confirm_bookings_call`: Boolean, default false
- `require_professional_account.services`: Boolean, default false
- `require_professional_account.products`: Boolean, default false
- `require_professional_account.programs`: Boolean, default false
- `require_professional_account.blogposts`: Boolean, default false
- `require_professional_account.subscriptions`: Boolean, default false
- `hide_feed_menus`: Boolean, default false
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date

### Theme

The site's colours, fonts and app tabs.

- `primary`: String, default "#3880ff" - Used for buttons, links, highlights.
- `primary_darkmode`: String, default "#3880ff"
- `secondary`: String, default "#0cd1e8" - Used for buttons, links, highlights.
- `tertiary`: String, default "#7044ff" - Used for buttons, links, highlights.
- `success`: String, default "#10dc60" - Used for buttons, links, highlights.
- `warning`: String, default "#ffce00" - Used for buttons, links, highlights.
- `danger`: String, default "#f04141" - Used for buttons, links, highlights.
- `dark`: String, default "#222428" - Used for text.
- `dark_darkmode`: String, default "#222428"
- `medium`: String, default "#989aa2" - Used for borders.
- `light`: String, default "#f4f5f8" - Used for backgrounds.
- `light_darkmode`: String, default "#f4f5f8"
- `lightContrast`: String, default "#000000"
- `lightContrast_darkmode`: String, default "#f4f5f8"
- `headerA`: String, default "#f4f5f8"
- `headerB`: String, default "#f4f5f8"
- `headerA_darkmode`: String, default "#f4f5f8"
- `headerB_darkmode`: String, default "#f4f5f8"
- `headerText`: String
- `headerText_darkmode`: String
- `headerGradientDeg`: Number, default 0
- `footerA`: String, default "#222428"
- `footerB`: String, default "#222428"
- `footerA_darkmode`: String, default "#222428"
- `footerB_darkmode`: String, default "#222428"
- `footerGradientDeg`: Number, default 0
- `footerText`: String
- `footerText_darkmode`: String
- `headingFontFamily`: String, default "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif"
- `headingFontLink`: String, default ""
- `headingFontWeight`: String, default "400"
- `headingFontStyle`: String, default "normal"
- `bodyFontFamily`: String, default "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif"
- `bodyFontStyle`: String, default "normal"
- `bodyFontLink`: String, default ""
- `primary_contrast`: String, default "#3880ff" - Used for text on primary color backgrounds, like buttons, highlights, links.
- `primary_contrast_darkmode`: String, default "#3880ff"
- `headerMinHeight`: String, default "5rem"
- `product.title`: String, default "right"
- `product.gallery`: String, default "left"
- `product.galleryType`: String, default "gallery"
- `product.options`: String, default "right"
- `product.infos`: String, default "right"
- `product.infosShow`: Boolean, default false
- `product.description`: String, default "left"
- `product.cartBtn`: String, default "default"
- `product.comments`: Boolean, default true
- `product.sku`: Boolean, default true
- `product.brand`: Boolean, default false
- `product.cardDesign`: String, default "item-card-design-1"
- `product.likes`: Boolean, default true
- `product.rating`: Boolean, default false
- `product.titleColor`: String
- `product.priceColor`: String
- `product.descriptionColor`: String
- `product.borderRadius`: String
- `product.titleFontSize`: String
- `product.descriptionFontSize`: String
- `product.priceFontSize`: String
- `product.titleFontWeight`: String
- `product.descriptionFontWeight`: String
- `product.priceFontWeight`: String
- `product.cardBorderRadius`: String
- `product.cardBorderWidth`: String
- `product.cardBorderColor`: String
- `product.cardBackgroundColor`: String
- `product.imageAspectRatio`: String
- `product.ratingList`: Boolean, default false
- `product.customCss`: String
- `product.scroll_next`: Boolean, default false
- `product.ratingBackgroundColor`: String
- `product.quantity_counter`: Object[]
  - `enabled`: Boolean, default false
  - `max_value`: Number
  - `min_value`: Number
  - `linked_inventory`: Boolean
  - `current_value`: Number
  - `product`: ObjectId, → Product
  - `last_updated`: Date
  - `_id`: ObjectId
- `product.view_counter`: Boolean, default false
- `product.contactInfo`: Boolean, default true
- `product.cartBanner`: Boolean, default false
- `product.navigation`: Boolean, default true
- `product.price`: String, default "top"
- `product.optionsColor`: String
- `product.optionsBackground`: String
- `product.optionsFontSize`: String
- `product.optionsFontWeight`: String
- `product.optionsColorSelected`: String
- `product.optionsBackgroundSelected`: String
- `product.viewMultiplier`: Number, default 1
- `product.cartColor`: String
- `product.cartBackground`: String
- `product.cartFontSize`: String
- `product.cartFontWeight`: String
- `product.ctaColor`: String
- `product.ctaBorderColor`: String
- `product.ctaFontSize`: String
- `product.ctaFontWeight`: String
- `product.selectOption`: Boolean, default false
- `product.skin`: String
- `product.mode`: String
- `product.accentColor`: String
- `product.fieldBackground`: String
- `product.imageRadius`: Number
- `product.titleFontFamily`: String
- `product.titleTransform`: String
- `product.priceFontFamily`: String
- `product.priceFontStyle`: String
- `product.buttonRadius`: Number
- `product.hairlineWidth`: Number
- `product.hairlineColor`: String
- `product.boxShadowColor`: String
- `product.boxShadowOffsetX`: Number
- `product.boxShadowOffsetY`: Number
- `product.boxShadowBlurRadius`: Number
- `product.boxShadowSpreadRadius`: Number
- `product.chipBackground`: String
- `product.chipBorderColor`: String
- `product.chipTextColor`: String
- `service.title`: String, default "left"
- `service.gallery`: String, default "left"
- `service.galleryType`: String, default "gallery"
- `service.options`: String, default "right"
- `service.infos`: String, default "right"
- `service.description`: String, default "left"
- `service.comments`: Boolean, default true
- `service.cardDesign`: String, default "item-card-design-1"
- `service.likes`: Boolean, default true
- `service.rating`: Boolean, default false
- `service.titleColor`: String
- `service.priceColor`: String
- `service.descriptionColor`: String
- `service.borderRadius`: String
- `service.titleFontSize`: String
- `service.descriptionFontSize`: String
- `service.priceFontSize`: String
- `service.titleFontWeight`: String
- `service.descriptionFontWeight`: String
- `service.priceFontWeight`: String
- `service.cardBorderRadius`: String
- `service.cardBorderWidth`: String
- `service.cardBorderColor`: String
- `service.cardBackgroundColor`: String
- `service.imageAspectRatio`: String
- `service.ratingList`: Boolean, default false
- `service.customCss`: String
- `service.calendarColor`: String
- `service.dateBackground`: String
- `service.dateTextColor`: String
- `service.skin`: String
- `service.mode`: String
- `service.accentColor`: String
- `service.fieldBackground`: String
- `service.imageRadius`: Number
- `service.buttonRadius`: Number
- `service.titleFontFamily`: String
- `service.titleTransform`: String
- `service.priceFontFamily`: String
- `service.priceFontStyle`: String
- `service.hairlineWidth`: Number
- `service.hairlineColor`: String
- `service.boxShadowColor`: String
- `service.boxShadowOffsetX`: Number
- `service.boxShadowOffsetY`: Number
- `service.boxShadowBlurRadius`: Number
- `service.boxShadowSpreadRadius`: Number
- `service.chipBackground`: String
- `service.chipBorderColor`: String
- `service.chipTextColor`: String
- `service.hideContactInfo`: Boolean
- `blogpost.title`: String, default "right"
- `blogpost.gallery`: String, default "left"
- `blogpost.galleryType`: String, default "gallery"
- `blogpost.description`: String, default "right"
- `blogpost.comments`: Boolean, default true
- `blogpost.cardDesign`: String, default "item-card-design-1"
- `blogpost.likes`: Boolean, default true
- `blogpost.titleColor`: String
- `blogpost.descriptionColor`: String
- `blogpost.borderRadius`: String
- `blogpost.titleFontSize`: String
- `blogpost.descriptionFontSize`: String
- `blogpost.titleFontWeight`: String
- `blogpost.descriptionFontWeight`: String
- `blogpost.cardBorderRadius`: String
- `blogpost.cardBorderWidth`: String
- `blogpost.cardBorderColor`: String
- `blogpost.cardBackgroundColor`: String
- `blogpost.imageAspectRatio`: String
- `blogpost.customCss`: String
- `blogpost.scroll_next`: Boolean, default false
- `blogpost.galleryPosition`: String, default "bottom"
- `blogpost.contactInfo`: Boolean, default true
- `blogpost.bodyFontSize`: String
- `blogpost.bodyFontWeight`: String
- `blogpost.bodyColor`: String
- `blogpost.skin`: String
- `blogpost.mode`: String
- `blogpost.accentColor`: String
- `blogpost.fieldBackground`: String
- `blogpost.imageRadius`: Number
- `blogpost.buttonRadius`: Number
- `blogpost.titleFontFamily`: String
- `blogpost.titleTransform`: String
- `blogpost.hairlineWidth`: Number
- `blogpost.hairlineColor`: String
- `blogpost.boxShadowColor`: String
- `blogpost.boxShadowOffsetX`: Number
- `blogpost.boxShadowOffsetY`: Number
- `blogpost.boxShadowBlurRadius`: Number
- `blogpost.boxShadowSpreadRadius`: Number
- `blogpost.chipBackground`: String
- `blogpost.chipBorderColor`: String
- `blogpost.chipTextColor`: String
- `blogpost.showDate`: Boolean, default false
- `blogpost.dateColor`: String
- `blogpost.dateFontSize`: Number
- `blogpost.dateFontWeight`: String
- `blogpost.dateFontFamily`: String
- `blogpost.dateFontStyle`: String
- `products.gridStyle`: String, default "column"
- `products.align`: String, default "left"
- `products.title`: String, default "bottom"
- `products.image`: String, default "right"
- `products.filters`: String, default "left"
- `products.description`: Boolean, default false
- `products.transparent`: Boolean, default false
- `products.price`: Boolean, default true
- `products.showFilters`: Boolean, default true
- `products.showBanner`: Boolean, default true
- `products.animation`: String, default "none"
- `products.animationDuration`: Number, default 0
- `products.animationDelay`: Number, default 0
- `products.titleColor`: String
- `products.priceColor`: String
- `products.descriptionColor`: String
- `products.borderRadius`: String
- `products.titleFontSize`: String
- `products.descriptionFontSize`: String
- `products.priceFontSize`: String
- `products.titleFontWeight`: String
- `products.descriptionFontWeight`: String
- `products.priceFontWeight`: String
- `products.cardBorderRadius`: String
- `products.cardBorderWidth`: String
- `products.cardBorderColor`: String
- `products.cardBackgroundColor`: String
- `products.imageAspectRatio`: String
- `products.customCss`: String
- `products.filtersBackgroundColor`: String
- `products.filtersTextColor`: String
- `products.filtersBorderRadius`: String
- `products.filtersCardDesign`: String, default "default"
- `products.boxShadowColor`: String
- `products.boxShadowOffsetX`: Number, default 0
- `products.boxShadowOffsetY`: Number, default 0
- `products.boxShadowBlurRadius`: String
- `products.boxShadowSpreadRadius`: String
- `products.hideOriginAddress`: Boolean, default false
- `products.categories.layout`: String, one of list | columns, default "list"
- `products.categories.showHeading`: Boolean, default true
- `products.categories.showSubtitle`: Boolean, default true
- `products.categories.showImage`: Boolean, default false
- `products.categories.imageSize`: String, default "50px"
- `products.categories.imageRadius`: String
- `products.categories.imageAspectRatio`: String, default "1/1"
- `products.categories.imageFit`: String, one of cover | contain, default "cover"
- `products.categories.imagePadding`: Number, default 0
- `products.categories.fallback`: String, one of initial | color | none, default "initial"
- `products.categories.showChevron`: Boolean, default true
- `products.categories.titleColor`: String
- `products.categories.titleFontSize`: String
- `products.categories.titleFontWeight`: String
- `products.categories.cardBackgroundColor`: String
- `products.categories.cardBorderRadius`: String
- `products.categories.cardBorderWidth`: String
- `products.categories.cardBorderColor`: String
- `products.categories.customCss`: String
- `products.categories.site.showImage`: Boolean, default true
- `products.categories.site.imageSize`: String
- `products.categories.site.imageAspectRatio`: String
- `products.categories.site.titleColor`: String
- `products.categories.site.titleFontSize`: String
- `products.categories.site.titleFontWeight`: String
- `products.categories.site.cardBackgroundColor`: String
- `products.categories.site.cardBorderRadius`: String
- `products.categories.site.cardBorderWidth`: String
- `products.categories.site.cardBorderColor`: String
- `products.categories.site.cardPadding`: String
- `products.categories.site.gap`: String
- `products.categories.site.align`: String, one of left | center | right
- `products.categories.site.titleTransform`: String, one of uppercase | lowercase | capitalize
- `products.hideRibbon`: Boolean, default false
- `products.hideCustomFields`: Boolean, default false
- `products.showLink`: Boolean, default false
- `products.linkLabel`: String
- `products.imageObjectFit`: String
- `products.imageRadius`: Number
- `products.cardPaddingX`: Number
- `products.cardPaddingY`: Number
- `products.titleTransform`: String
- `products.priceFontStyle`: String
- `products.fieldBackground`: String
- `products.showRating`: Boolean
- `products.gap`: Number
- `products.titleFontFamily`: String
- `products.priceFontFamily`: String
- `products.mode`: String
- `products.hairlineWidth`: Number
- `products.hairlineColor`: String
- `products.scrimGradient`: String
- `products.skin`: String
- `products.columns`: Number
- `products.columnsMobile`: Number
- `products.accentColor`: String
- `products.filtersSkin`: String
- `products.filtersAccentColor`: String
- `products.filtersHeadingFontFamily`: String
- `products.filtersHeadingTransform`: String
- `products.filtersBorderWidth`: Number
- `products.filtersBorderColor`: String
- `products.filtersPanelBackground`: String
- `products.filtersBoxShadowColor`: String
- `products.filtersBoxShadowOffsetX`: Number
- `products.filtersBoxShadowOffsetY`: Number
- `products.filtersBoxShadowBlurRadius`: Number
- `products.filtersBoxShadowSpreadRadius`: Number
- `services.gridStyle`: String, default "column"
- `services.align`: String, default "left"
- `services.title`: String, default "bottom"
- `services.image`: String, default "right"
- `services.filters`: String, default "left"
- `services.description`: Boolean, default false
- `services.transparent`: Boolean, default false
- `services.price`: Boolean, default true
- `services.showFilters`: Boolean, default true
- `services.showCategoryFilters`: Boolean, default true
- `services.showBanner`: Boolean, default true
- `services.animation`: String, default "none"
- `services.animationDuration`: Number, default 0
- `services.animationDelay`: Number, default 0
- `services.rating`: Boolean, default false
- `services.titleColor`: String
- `services.priceColor`: String
- `services.descriptionColor`: String
- `services.borderRadius`: String
- `services.titleFontSize`: String
- `services.descriptionFontSize`: String
- `services.priceFontSize`: String
- `services.titleFontWeight`: String
- `services.descriptionFontWeight`: String
- `services.priceFontWeight`: String
- `services.cardBorderRadius`: String
- `services.cardBorderWidth`: String
- `services.cardBorderColor`: String
- `services.cardBackgroundColor`: String
- `services.imageAspectRatio`: String
- `services.customCss`: String
- `services.filtersBackgroundColor`: String
- `services.filtersTextColor`: String
- `services.filtersBorderRadius`: String
- `services.boxShadowColor`: String
- `services.boxShadowOffsetX`: Number, default 0
- `services.boxShadowOffsetY`: Number, default 0
- `services.boxShadowBlurRadius`: String
- `services.boxShadowSpreadRadius`: String
- `services.showBreadCrumbs`: Boolean, default true
- `services.imagePadding`: Number, default 0
- `services.categories.layout`: String, one of list | columns, default "list"
- `services.categories.showHeading`: Boolean, default true
- `services.categories.showSubtitle`: Boolean, default true
- `services.categories.showImage`: Boolean, default false
- `services.categories.imageSize`: String, default "50px"
- `services.categories.imageRadius`: String
- `services.categories.imageAspectRatio`: String, default "1/1"
- `services.categories.imageFit`: String, one of cover | contain, default "cover"
- `services.categories.imagePadding`: Number, default 0
- `services.categories.fallback`: String, one of initial | color | none, default "initial"
- `services.categories.showChevron`: Boolean, default true
- `services.categories.titleColor`: String
- `services.categories.titleFontSize`: String
- `services.categories.titleFontWeight`: String
- `services.categories.cardBackgroundColor`: String
- `services.categories.cardBorderRadius`: String
- `services.categories.cardBorderWidth`: String
- `services.categories.cardBorderColor`: String
- `services.categories.customCss`: String
- `services.categories.site.showImage`: Boolean, default true
- `services.categories.site.imageSize`: String
- `services.categories.site.imageAspectRatio`: String
- `services.categories.site.titleColor`: String
- `services.categories.site.titleFontSize`: String
- `services.categories.site.titleFontWeight`: String
- `services.categories.site.cardBackgroundColor`: String
- `services.categories.site.cardBorderRadius`: String
- `services.categories.site.cardBorderWidth`: String
- `services.categories.site.cardBorderColor`: String
- `services.categories.site.cardPadding`: String
- `services.categories.site.gap`: String
- `services.categories.site.align`: String, one of left | center | right
- `services.categories.site.titleTransform`: String, one of uppercase | lowercase | capitalize
- `services.titleTransform`: String
- `services.priceFontStyle`: String
- `services.cardPaddingX`: Number
- `services.cardPaddingY`: Number
- `services.fieldBackground`: String
- `services.imageObjectFit`: String
- `services.imageRadius`: Number
- `services.accentColor`: String
- `services.gap`: Number
- `services.hideCustomFields`: Boolean, default false
- `services.showDuration`: Boolean, default false
- `services.durationLabel`: String
- `services.showLink`: Boolean, default false
- `services.linkLabel`: String
- `services.titleFontFamily`: String
- `services.priceFontFamily`: String
- `services.columns`: Number
- `services.columnsMobile`: Number
- `services.skin`: String
- `services.mode`: String
- `services.hairlineWidth`: Number
- `services.hairlineColor`: String
- `services.scrimGradient`: String
- `services.filtersSkin`: String
- `services.filtersAccentColor`: String
- `services.filtersHeadingFontFamily`: String
- `services.filtersHeadingTransform`: String
- `services.filtersBorderWidth`: Number
- `services.filtersBorderColor`: String
- `services.filtersPanelBackground`: String
- `services.filtersBoxShadowColor`: String
- `services.filtersBoxShadowOffsetX`: Number
- `services.filtersBoxShadowOffsetY`: Number
- `services.filtersBoxShadowBlurRadius`: Number
- `services.filtersBoxShadowSpreadRadius`: Number
- `services.hideCalendarDuration`: Boolean, default false
- `services.calendar`: Boolean
- `services.rowRuleWidth`: Number
- `services.rowRuleColor`: String
- `services.maxWidth`: Number
- `blogposts.gridStyle`: String, default "row"
- `blogposts.align`: String, default "left"
- `blogposts.title`: String, default "bottom"
- `blogposts.image`: String, default "right"
- `blogposts.filters`: String, default "left"
- `blogposts.description`: Boolean, default false
- `blogposts.showFilters`: Boolean, default true
- `blogposts.header`: Boolean, default true
- `blogposts.showBanner`: Boolean, default true
- `blogposts.animation`: String, default "none"
- `blogposts.animationDuration`: Number, default 0
- `blogposts.animationDelay`: Number, default 0
- `blogposts.titleColor`: String
- `blogposts.descriptionColor`: String
- `blogposts.borderRadius`: String
- `blogposts.titleFontSize`: String
- `blogposts.descriptionFontSize`: String
- `blogposts.titleFontWeight`: String
- `blogposts.descriptionFontWeight`: String
- `blogposts.cardBorderRadius`: String
- `blogposts.cardBorderWidth`: String
- `blogposts.cardBorderColor`: String
- `blogposts.cardBackgroundColor`: String
- `blogposts.imageAspectRatio`: String
- `blogposts.customCss`: String
- `blogposts.sort`: Number, default -1
- `blogposts.showBreadCrumbs`: Boolean, default true
- `blogposts.filtersBackgroundColor`: String
- `blogposts.filtersTextColor`: String
- `blogposts.filtersBorderRadius`: String
- `blogposts.boxShadowColor`: String
- `blogposts.boxShadowOffsetX`: Number, default 0
- `blogposts.boxShadowOffsetY`: Number, default 0
- `blogposts.boxShadowBlurRadius`: String
- `blogposts.boxShadowSpreadRadius`: String
- `blogposts.imagePadding`: Number, default 0
- `blogposts.categories.layout`: String, one of list | columns, default "list"
- `blogposts.categories.showHeading`: Boolean, default true
- `blogposts.categories.showSubtitle`: Boolean, default true
- `blogposts.categories.showImage`: Boolean, default false
- `blogposts.categories.imageSize`: String, default "50px"
- `blogposts.categories.imageRadius`: String
- `blogposts.categories.imageAspectRatio`: String, default "1/1"
- `blogposts.categories.imageFit`: String, one of cover | contain, default "cover"
- `blogposts.categories.imagePadding`: Number, default 0
- `blogposts.categories.fallback`: String, one of initial | color | none, default "initial"
- `blogposts.categories.showChevron`: Boolean, default true
- `blogposts.categories.titleColor`: String
- `blogposts.categories.titleFontSize`: String
- `blogposts.categories.titleFontWeight`: String
- `blogposts.categories.cardBackgroundColor`: String
- `blogposts.categories.cardBorderRadius`: String
- `blogposts.categories.cardBorderWidth`: String
- `blogposts.categories.cardBorderColor`: String
- `blogposts.categories.customCss`: String
- `blogposts.categories.site.showImage`: Boolean, default true
- `blogposts.categories.site.imageSize`: String
- `blogposts.categories.site.imageAspectRatio`: String
- `blogposts.categories.site.titleColor`: String
- `blogposts.categories.site.titleFontSize`: String
- `blogposts.categories.site.titleFontWeight`: String
- `blogposts.categories.site.cardBackgroundColor`: String
- `blogposts.categories.site.cardBorderRadius`: String
- `blogposts.categories.site.cardBorderWidth`: String
- `blogposts.categories.site.cardBorderColor`: String
- `blogposts.categories.site.cardPadding`: String
- `blogposts.categories.site.gap`: String
- `blogposts.categories.site.align`: String, one of left | center | right
- `blogposts.categories.site.titleTransform`: String, one of uppercase | lowercase | capitalize
- `blogposts.titleTransform`: String
- `blogposts.cardPaddingX`: Number
- `blogposts.cardPaddingY`: Number
- `blogposts.fieldBackground`: String
- `blogposts.imageObjectFit`: String
- `blogposts.imageRadius`: Number
- `blogposts.accentColor`: String
- `blogposts.gap`: Number
- `blogposts.hideCustomFields`: Boolean, default false
- `blogposts.hideImage`: Boolean, default false
- `blogposts.showDate`: Boolean, default false
- `blogposts.dateColor`: String
- `blogposts.dateFontSize`: String
- `blogposts.dateFontWeight`: String
- `blogposts.dateFontFamily`: String
- `blogposts.dateFontStyle`: String
- `blogposts.hideLink`: Boolean, default false
- `blogposts.linkLabel`: String
- `blogposts.titleFontFamily`: String
- `blogposts.columns`: Number
- `blogposts.columnsMobile`: Number
- `blogposts.skin`: String
- `blogposts.mode`: String
- `blogposts.hairlineWidth`: Number
- `blogposts.hairlineColor`: String
- `blogposts.scrimGradient`: String
- `blogposts.filtersSkin`: String
- `blogposts.filtersAccentColor`: String
- `blogposts.filtersHeadingFontFamily`: String
- `blogposts.filtersHeadingTransform`: String
- `blogposts.filtersBorderWidth`: Number
- `blogposts.filtersBorderColor`: String
- `blogposts.filtersPanelBackground`: String
- `blogposts.filtersBoxShadowColor`: String
- `blogposts.filtersBoxShadowOffsetX`: Number
- `blogposts.filtersBoxShadowOffsetY`: Number
- `blogposts.filtersBoxShadowBlurRadius`: Number
- `blogposts.filtersBoxShadowSpreadRadius`: Number
- `blogposts.rowRuleWidth`: Number
- `blogposts.rowRuleColor`: String
- `blogposts.maxWidth`: Number
- `blogposts.hideCategory`: Boolean, default false
- `videos.gridStyle`: String, default "column"
- `videos.align`: String, default "center"
- `videos.title`: String, default "bottom"
- `videos.video`: String, default "right"
- `videos.filters`: String, default "left"
- `videos.showTitle`: Boolean, default true
- `videos.showFilters`: Boolean, default true
- `videos.showBanner`: Boolean, default true
- `videos.animation`: String, default "none"
- `videos.animationDuration`: Number, default 0
- `videos.animationDelay`: Number, default 0
- `videos.showBreadCrumbs`: Boolean, default true
- `program.cardDesign`: String, default "item-card-design-1"
- `program.comments`: Boolean, default true
- `program.likes`: Boolean, default true
- `program.rating`: Boolean, default false
- `program.titleColor`: String
- `program.descriptionColor`: String
- `program.borderRadius`: String
- `program.titleFontSize`: String
- `program.descriptionFontSize`: String
- `program.titleFontWeight`: String
- `program.descriptionFontWeight`: String
- `program.cardBorderRadius`: String
- `program.cardBorderWidth`: String
- `program.cardBorderColor`: String
- `program.cardBackgroundColor`: String
- `program.imageAspectRatio`: String
- `program.ratingList`: Boolean, default false
- `program.customCss`: String
- `program.showBreadCrumbs`: Boolean, default true
- `professional_account.cardDesign`: String, default "professional-account-design-1"
- `professional_account.likes`: Boolean, default true
- `professional_account.titleColor`: String
- `professional_account.priceColor`: String
- `professional_account.descriptionColor`: String
- `professional_account.borderRadius`: String
- `professional_account.titleFontSize`: String
- `professional_account.descriptionFontSize`: String
- `professional_account.priceFontSize`: String
- `professional_account.titleFontWeight`: String
- `professional_account.descriptionFontWeight`: String
- `professional_account.priceFontWeight`: String
- `professional_account.cardBorderRadius`: String
- `professional_account.cardBorderWidth`: String
- `professional_account.cardBorderColor`: String
- `professional_account.cardBackgroundColor`: String
- `professional_account.imageAspectRatio`: String
- `professional_account.ratingList`: Boolean, default false
- `professional_account.customCss`: String
- `personal_account.cardDesign`: String, default "account-design-1"
- `footer.columns`: Object[]
  - `type`: String, default "contacts"
  - `title`: String, default "Give us a call"
  - `title_href`: String, default "contacts"
  - `custom_text`: String, default "<p><a href=\"tel: +359 123321321\">tel: +359 123321321</a></p>"
  - `social_medias`: Mixed[]
  - `medias`: Object[]
    - `media`: String
    - `vimeo_uri`: String
    - `vimeo_picture`: String
    - `vimeo_url`: String
    - `youtube_url`: String
    - `_id`: ObjectId
  - `_id`: ObjectId
- `footer.about_page`: ObjectId, → AboutPage
- `footer.customCss`: String
- `header.twoRows`: Boolean, default false
- `header.sidenav`: Boolean, default false
- `header.sticky`: Boolean, default true
- `header.justifyLinks`: String, default "end"
- `header.justifyLinksMobile`: String
- `header.linkFontSize`: String, default "1.0rem"
- `header.linkFontWeight`: String, default "400"
- `header.linkFontFamily`: String
- `header.linkTextTransform`: String
- `header.linkLetterSpacing`: String
- `header.barBorderWidth`: Number
- `header.barBorderColor`: String
- `header.barFloating`: Boolean, default false
- `header.barBorderRadius`: Number
- `header.barShadow`: String
- `header.logoSize`: String, default "140px"
- `header.logoSizeMobile`: String
- `header.row1Height`: String
- `header.row2Height`: String
- `header.bannerHeight`: String
- `header.contentMaxWidth`: String
- `header.justifyLogo`: String, default "start"
- `header.userAndCartPosition`: String, default "top"
- `header.linkMargin`: String, default "0px"
- `header.about_page`: ObjectId, → AboutPage
- `header.about_page_position`: String
- `header.showSearch`: Boolean, default true
- `header.smartSearch.enabled`: Boolean, default false
- `header.smartSearch.placeholder`: String, default ""
- `header.smartSearch.kinds`: String[]
- `header.smartSearch.collections`: String[]
- `header.smartSearch.items`: Object[]
  - `kind`: String
  - `ref_id`: String
  - `title`: String
- `header.smartSearch.showKindFilter`: Boolean, default true
- `header.smartSearch.showPriceFilter`: Boolean, default false
- `header.smartSearch.showDateFilter`: Boolean, default false
- `header.smartSearch.showSort`: Boolean, default true
- `header.smartSearch.dateMode`: String, one of created | updated | availability, default "created"
- `header.smartSearch.layout`: String, one of grid | list, default "grid"
- `header.smartSearch.columns`: Number, default 3
- `header.smartSearch.perPage`: Number, default 12
- `header.smartSearch.instant`: Boolean, default true
- `header.smartSearch.showImages`: Boolean, default true
- `header.smartSearch.showPrices`: Boolean, default true
- `header.smartSearch.showInitial`: Boolean, default false
- `header.smartSearch.showAnswer`: Boolean, default false
- `header.showLogIn`: Boolean, default true
- `header.showActionButton`: Boolean, default false
- `header.actionButton.title`: String
- `header.actionButton.url`: String
- `header.actionButton.fill`: String
- `header.actionButton.color`: String
- `header.actionButton.class`: String, default "btn btn-primary"
- `header.actionButton.customColor`: String
- `header.actionButton.textColor`: String
- `header.actionButton.fontSize`: Number
- `header.actionButton.borderRadius`: String
- `header.actionButton.position`: String
- `header.showCart`: Boolean, default true
- `header.cart_position`: String
- `header.login_position`: String
- `header.search_position`: String
- `header.login_icon`: Boolean, default false
- `header.login_icon_only`: Boolean, default false
- `header.login_icon_class`: String
- `header.login_in_app`: Boolean, default false
- `header.cart_row`: String
- `header.login_row`: String
- `header.search_row`: String
- `header.pinned_links`: Object[]
  - `title`: String, required
  - `link`: String, required
  - `icon`: String, required
  - `_id`: ObjectId
- `header.customCss`: String
- `header.logoPosition`: String, default "top"
- `header.firstrow_links`: Object[]
  - `title`: String
  - `link`: String
  - `icon`: String
  - `_id`: ObjectId
- `header.firstrow_links_justify`: String, default "start"
- `header.firstrow_links_spread`: String
- `header.showBanner`: Boolean, default false
- `header.banner.items`: Object[]
  - `title`: String
  - `link`: String
  - `icon`: String
  - `img`: ObjectId, → Media
  - `_id`: ObjectId
- `header.banner.fontSize`: String, default "1.0rem"
- `header.banner.fontWeight`: String, default "400"
- `header.banner.textColor`: String
- `header.banner.backgroundColor`: String
- `header.banner.justifyContent`: String, default "start"
- `header.isFullWidth`: Boolean, default true
- `header.app_user_position`: String, one of top | bottom, default "bottom"
- `header.logoMediaMobile`: ObjectId, → Media
- `header.sidenavIconBorderRadius`: String
- `header.sidenavIconBorderWidth`: String
- `header.sidenavIconColor`: String
- `header.sidenavIcon`: String
- `header.sidenavIconSize`: String
- `header.sidenavIconMedia`: ObjectId, → Media
- `header.menuIconPosition`: String
- `header.logoPositionMobile`: String
- `header.search_position_mobile`: String
- `header.login_position_mobile`: String
- `header.cart_position_mobile`: String
- `header.button_position_mobile`: String
- `header.sidenavIconAnimation`: String
- `header.sidenavIconClose`: String
- `header.sidenavIconMediaClose`: ObjectId, → Media
- `header.elements_order.logo.value`: Number
- `header.elements_order.logo.mobile_value`: Number
- `header.elements_order.nav.value`: Number
- `header.elements_order.nav.mobile_value`: Number
- `header.elements_order.firstrow.value`: Number
- `header.elements_order.firstrow.mobile_value`: Number
- `header.elements_order.search.value`: Number
- `header.elements_order.search.mobile_value`: Number
- `header.elements_order.login.value`: Number
- `header.elements_order.login.mobile_value`: Number
- `header.elements_order.cart.value`: Number
- `header.elements_order.cart.mobile_value`: Number
- `header.elements_order.button.value`: Number
- `header.elements_order.button.mobile_value`: Number
- `header.elements_order.menuicon.value`: Number
- `header.elements_order.menuicon.mobile_value`: Number
- `header.elements_style.nav.background`: String
- `header.elements_style.nav.color`: String
- `header.elements_style.nav.border_color`: String
- `header.elements_style.nav.border_width`: Number
- `header.elements_style.nav.border_radius`: Number
- `header.elements_style.nav.font_size`: Number
- `header.elements_style.nav.border_top_width`: Number
- `header.elements_style.nav.border_right_width`: Number
- `header.elements_style.nav.border_bottom_width`: Number
- `header.elements_style.nav.border_left_width`: Number
- `header.elements_style.nav_active.background`: String
- `header.elements_style.nav_active.color`: String
- `header.elements_style.nav_active.border_color`: String
- `header.elements_style.nav_active.border_width`: Number
- `header.elements_style.nav_active.border_radius`: Number
- `header.elements_style.nav_active.font_size`: Number
- `header.elements_style.nav_active.border_top_width`: Number
- `header.elements_style.nav_active.border_right_width`: Number
- `header.elements_style.nav_active.border_bottom_width`: Number
- `header.elements_style.nav_active.border_left_width`: Number
- `header.elements_style.firstrow.background`: String
- `header.elements_style.firstrow.color`: String
- `header.elements_style.firstrow.border_color`: String
- `header.elements_style.firstrow.border_width`: Number
- `header.elements_style.firstrow.border_radius`: Number
- `header.elements_style.firstrow.font_size`: Number
- `header.elements_style.firstrow.border_top_width`: Number
- `header.elements_style.firstrow.border_right_width`: Number
- `header.elements_style.firstrow.border_bottom_width`: Number
- `header.elements_style.firstrow.border_left_width`: Number
- `header.elements_style.search.background`: String
- `header.elements_style.search.color`: String
- `header.elements_style.search.border_color`: String
- `header.elements_style.search.border_width`: Number
- `header.elements_style.search.border_radius`: Number
- `header.elements_style.search.font_size`: Number
- `header.elements_style.search.border_top_width`: Number
- `header.elements_style.search.border_right_width`: Number
- `header.elements_style.search.border_bottom_width`: Number
- `header.elements_style.search.border_left_width`: Number
- `header.elements_style.login.background`: String
- `header.elements_style.login.color`: String
- `header.elements_style.login.border_color`: String
- `header.elements_style.login.border_width`: Number
- `header.elements_style.login.border_radius`: Number
- `header.elements_style.login.font_size`: Number
- `header.elements_style.login.border_top_width`: Number
- `header.elements_style.login.border_right_width`: Number
- `header.elements_style.login.border_bottom_width`: Number
- `header.elements_style.login.border_left_width`: Number
- `header.elements_style.cart.background`: String
- `header.elements_style.cart.color`: String
- `header.elements_style.cart.border_color`: String
- `header.elements_style.cart.border_width`: Number
- `header.elements_style.cart.border_radius`: Number
- `header.elements_style.cart.font_size`: Number
- `header.elements_style.cart.border_top_width`: Number
- `header.elements_style.cart.border_right_width`: Number
- `header.elements_style.cart.border_bottom_width`: Number
- `header.elements_style.cart.border_left_width`: Number
- `header.elements_spacing.logo.margin_top`: Number
- `header.elements_spacing.logo.margin_top_unit`: String
- `header.elements_spacing.logo.mobile_margin_top`: Number
- `header.elements_spacing.logo.mobile_margin_top_unit`: String
- `header.elements_spacing.logo.margin_right`: Number
- `header.elements_spacing.logo.margin_right_unit`: String
- `header.elements_spacing.logo.mobile_margin_right`: Number
- `header.elements_spacing.logo.mobile_margin_right_unit`: String
- `header.elements_spacing.logo.margin_bottom`: Number
- `header.elements_spacing.logo.margin_bottom_unit`: String
- `header.elements_spacing.logo.mobile_margin_bottom`: Number
- `header.elements_spacing.logo.mobile_margin_bottom_unit`: String
- `header.elements_spacing.logo.margin_left`: Number
- `header.elements_spacing.logo.margin_left_unit`: String
- `header.elements_spacing.logo.mobile_margin_left`: Number
- `header.elements_spacing.logo.mobile_margin_left_unit`: String
- `header.elements_spacing.nav.margin_top`: Number
- `header.elements_spacing.nav.margin_top_unit`: String
- `header.elements_spacing.nav.mobile_margin_top`: Number
- `header.elements_spacing.nav.mobile_margin_top_unit`: String
- `header.elements_spacing.nav.padding_top`: Number
- `header.elements_spacing.nav.padding_top_unit`: String
- `header.elements_spacing.nav.mobile_padding_top`: Number
- `header.elements_spacing.nav.mobile_padding_top_unit`: String
- `header.elements_spacing.nav.margin_right`: Number
- `header.elements_spacing.nav.margin_right_unit`: String
- `header.elements_spacing.nav.mobile_margin_right`: Number
- `header.elements_spacing.nav.mobile_margin_right_unit`: String
- `header.elements_spacing.nav.padding_right`: Number
- `header.elements_spacing.nav.padding_right_unit`: String
- `header.elements_spacing.nav.mobile_padding_right`: Number
- `header.elements_spacing.nav.mobile_padding_right_unit`: String
- `header.elements_spacing.nav.margin_bottom`: Number
- `header.elements_spacing.nav.margin_bottom_unit`: String
- `header.elements_spacing.nav.mobile_margin_bottom`: Number
- `header.elements_spacing.nav.mobile_margin_bottom_unit`: String
- `header.elements_spacing.nav.padding_bottom`: Number
- `header.elements_spacing.nav.padding_bottom_unit`: String
- `header.elements_spacing.nav.mobile_padding_bottom`: Number
- `header.elements_spacing.nav.mobile_padding_bottom_unit`: String
- `header.elements_spacing.nav.margin_left`: Number
- `header.elements_spacing.nav.margin_left_unit`: String
- `header.elements_spacing.nav.mobile_margin_left`: Number
- `header.elements_spacing.nav.mobile_margin_left_unit`: String
- `header.elements_spacing.nav.padding_left`: Number
- `header.elements_spacing.nav.padding_left_unit`: String
- `header.elements_spacing.nav.mobile_padding_left`: Number
- `header.elements_spacing.nav.mobile_padding_left_unit`: String
- `header.elements_spacing.firstrow.margin_top`: Number
- `header.elements_spacing.firstrow.margin_top_unit`: String
- `header.elements_spacing.firstrow.mobile_margin_top`: Number
- `header.elements_spacing.firstrow.mobile_margin_top_unit`: String
- `header.elements_spacing.firstrow.padding_top`: Number
- `header.elements_spacing.firstrow.padding_top_unit`: String
- `header.elements_spacing.firstrow.mobile_padding_top`: Number
- `header.elements_spacing.firstrow.mobile_padding_top_unit`: String
- `header.elements_spacing.firstrow.margin_right`: Number
- `header.elements_spacing.firstrow.margin_right_unit`: String
- `header.elements_spacing.firstrow.mobile_margin_right`: Number
- `header.elements_spacing.firstrow.mobile_margin_right_unit`: String
- `header.elements_spacing.firstrow.padding_right`: Number
- `header.elements_spacing.firstrow.padding_right_unit`: String
- `header.elements_spacing.firstrow.mobile_padding_right`: Number
- `header.elements_spacing.firstrow.mobile_padding_right_unit`: String
- `header.elements_spacing.firstrow.margin_bottom`: Number
- `header.elements_spacing.firstrow.margin_bottom_unit`: String
- `header.elements_spacing.firstrow.mobile_margin_bottom`: Number
- `header.elements_spacing.firstrow.mobile_margin_bottom_unit`: String
- `header.elements_spacing.firstrow.padding_bottom`: Number
- `header.elements_spacing.firstrow.padding_bottom_unit`: String
- `header.elements_spacing.firstrow.mobile_padding_bottom`: Number
- `header.elements_spacing.firstrow.mobile_padding_bottom_unit`: String
- `header.elements_spacing.firstrow.margin_left`: Number
- `header.elements_spacing.firstrow.margin_left_unit`: String
- `header.elements_spacing.firstrow.mobile_margin_left`: Number
- `header.elements_spacing.firstrow.mobile_margin_left_unit`: String
- `header.elements_spacing.firstrow.padding_left`: Number
- `header.elements_spacing.firstrow.padding_left_unit`: String
- `header.elements_spacing.firstrow.mobile_padding_left`: Number
- `header.elements_spacing.firstrow.mobile_padding_left_unit`: String
- `header.elements_spacing.search.margin_top`: Number
- `header.elements_spacing.search.margin_top_unit`: String
- `header.elements_spacing.search.mobile_margin_top`: Number
- `header.elements_spacing.search.mobile_margin_top_unit`: String
- `header.elements_spacing.search.padding_top`: Number
- `header.elements_spacing.search.padding_top_unit`: String
- `header.elements_spacing.search.mobile_padding_top`: Number
- `header.elements_spacing.search.mobile_padding_top_unit`: String
- `header.elements_spacing.search.margin_right`: Number
- `header.elements_spacing.search.margin_right_unit`: String
- `header.elements_spacing.search.mobile_margin_right`: Number
- `header.elements_spacing.search.mobile_margin_right_unit`: String
- `header.elements_spacing.search.padding_right`: Number
- `header.elements_spacing.search.padding_right_unit`: String
- `header.elements_spacing.search.mobile_padding_right`: Number
- `header.elements_spacing.search.mobile_padding_right_unit`: String
- `header.elements_spacing.search.margin_bottom`: Number
- `header.elements_spacing.search.margin_bottom_unit`: String
- `header.elements_spacing.search.mobile_margin_bottom`: Number
- `header.elements_spacing.search.mobile_margin_bottom_unit`: String
- `header.elements_spacing.search.padding_bottom`: Number
- `header.elements_spacing.search.padding_bottom_unit`: String
- `header.elements_spacing.search.mobile_padding_bottom`: Number
- `header.elements_spacing.search.mobile_padding_bottom_unit`: String
- `header.elements_spacing.search.margin_left`: Number
- `header.elements_spacing.search.margin_left_unit`: String
- `header.elements_spacing.search.mobile_margin_left`: Number
- `header.elements_spacing.search.mobile_margin_left_unit`: String
- `header.elements_spacing.search.padding_left`: Number
- `header.elements_spacing.search.padding_left_unit`: String
- `header.elements_spacing.search.mobile_padding_left`: Number
- `header.elements_spacing.search.mobile_padding_left_unit`: String
- `header.elements_spacing.login.margin_top`: Number
- `header.elements_spacing.login.margin_top_unit`: String
- `header.elements_spacing.login.mobile_margin_top`: Number
- `header.elements_spacing.login.mobile_margin_top_unit`: String
- `header.elements_spacing.login.padding_top`: Number
- `header.elements_spacing.login.padding_top_unit`: String
- `header.elements_spacing.login.mobile_padding_top`: Number
- `header.elements_spacing.login.mobile_padding_top_unit`: String
- `header.elements_spacing.login.margin_right`: Number
- `header.elements_spacing.login.margin_right_unit`: String
- `header.elements_spacing.login.mobile_margin_right`: Number
- `header.elements_spacing.login.mobile_margin_right_unit`: String
- `header.elements_spacing.login.padding_right`: Number
- `header.elements_spacing.login.padding_right_unit`: String
- `header.elements_spacing.login.mobile_padding_right`: Number
- `header.elements_spacing.login.mobile_padding_right_unit`: String
- `header.elements_spacing.login.margin_bottom`: Number
- `header.elements_spacing.login.margin_bottom_unit`: String
- `header.elements_spacing.login.mobile_margin_bottom`: Number
- `header.elements_spacing.login.mobile_margin_bottom_unit`: String
- `header.elements_spacing.login.padding_bottom`: Number
- `header.elements_spacing.login.padding_bottom_unit`: String
- `header.elements_spacing.login.mobile_padding_bottom`: Number
- `header.elements_spacing.login.mobile_padding_bottom_unit`: String
- `header.elements_spacing.login.margin_left`: Number
- `header.elements_spacing.login.margin_left_unit`: String
- `header.elements_spacing.login.mobile_margin_left`: Number
- `header.elements_spacing.login.mobile_margin_left_unit`: String
- `header.elements_spacing.login.padding_left`: Number
- `header.elements_spacing.login.padding_left_unit`: String
- `header.elements_spacing.login.mobile_padding_left`: Number
- `header.elements_spacing.login.mobile_padding_left_unit`: String
- `header.elements_spacing.cart.margin_top`: Number
- `header.elements_spacing.cart.margin_top_unit`: String
- `header.elements_spacing.cart.mobile_margin_top`: Number
- `header.elements_spacing.cart.mobile_margin_top_unit`: String
- `header.elements_spacing.cart.padding_top`: Number
- `header.elements_spacing.cart.padding_top_unit`: String
- `header.elements_spacing.cart.mobile_padding_top`: Number
- `header.elements_spacing.cart.mobile_padding_top_unit`: String
- `header.elements_spacing.cart.margin_right`: Number
- `header.elements_spacing.cart.margin_right_unit`: String
- `header.elements_spacing.cart.mobile_margin_right`: Number
- `header.elements_spacing.cart.mobile_margin_right_unit`: String
- `header.elements_spacing.cart.padding_right`: Number
- `header.elements_spacing.cart.padding_right_unit`: String
- `header.elements_spacing.cart.mobile_padding_right`: Number
- `header.elements_spacing.cart.mobile_padding_right_unit`: String
- `header.elements_spacing.cart.margin_bottom`: Number
- `header.elements_spacing.cart.margin_bottom_unit`: String
- `header.elements_spacing.cart.mobile_margin_bottom`: Number
- `header.elements_spacing.cart.mobile_margin_bottom_unit`: String
- `header.elements_spacing.cart.padding_bottom`: Number
- `header.elements_spacing.cart.padding_bottom_unit`: String
- `header.elements_spacing.cart.mobile_padding_bottom`: Number
- `header.elements_spacing.cart.mobile_padding_bottom_unit`: String
- `header.elements_spacing.cart.margin_left`: Number
- `header.elements_spacing.cart.margin_left_unit`: String
- `header.elements_spacing.cart.mobile_margin_left`: Number
- `header.elements_spacing.cart.mobile_margin_left_unit`: String
- `header.elements_spacing.cart.padding_left`: Number
- `header.elements_spacing.cart.padding_left_unit`: String
- `header.elements_spacing.cart.mobile_padding_left`: Number
- `header.elements_spacing.cart.mobile_padding_left_unit`: String
- `header.elements_spacing.button.margin_top`: Number
- `header.elements_spacing.button.margin_top_unit`: String
- `header.elements_spacing.button.mobile_margin_top`: Number
- `header.elements_spacing.button.mobile_margin_top_unit`: String
- `header.elements_spacing.button.padding_top`: Number
- `header.elements_spacing.button.padding_top_unit`: String
- `header.elements_spacing.button.mobile_padding_top`: Number
- `header.elements_spacing.button.mobile_padding_top_unit`: String
- `header.elements_spacing.button.margin_right`: Number
- `header.elements_spacing.button.margin_right_unit`: String
- `header.elements_spacing.button.mobile_margin_right`: Number
- `header.elements_spacing.button.mobile_margin_right_unit`: String
- `header.elements_spacing.button.padding_right`: Number
- `header.elements_spacing.button.padding_right_unit`: String
- `header.elements_spacing.button.mobile_padding_right`: Number
- `header.elements_spacing.button.mobile_padding_right_unit`: String
- `header.elements_spacing.button.margin_bottom`: Number
- `header.elements_spacing.button.margin_bottom_unit`: String
- `header.elements_spacing.button.mobile_margin_bottom`: Number
- `header.elements_spacing.button.mobile_margin_bottom_unit`: String
- `header.elements_spacing.button.padding_bottom`: Number
- `header.elements_spacing.button.padding_bottom_unit`: String
- `header.elements_spacing.button.mobile_padding_bottom`: Number
- `header.elements_spacing.button.mobile_padding_bottom_unit`: String
- `header.elements_spacing.button.margin_left`: Number
- `header.elements_spacing.button.margin_left_unit`: String
- `header.elements_spacing.button.mobile_margin_left`: Number
- `header.elements_spacing.button.mobile_margin_left_unit`: String
- `header.elements_spacing.button.padding_left`: Number
- `header.elements_spacing.button.padding_left_unit`: String
- `header.elements_spacing.button.mobile_padding_left`: Number
- `header.elements_spacing.button.mobile_padding_left_unit`: String
- `header.elements_spacing.menuicon.margin_top`: Number
- `header.elements_spacing.menuicon.margin_top_unit`: String
- `header.elements_spacing.menuicon.mobile_margin_top`: Number
- `header.elements_spacing.menuicon.mobile_margin_top_unit`: String
- `header.elements_spacing.menuicon.padding_top`: Number
- `header.elements_spacing.menuicon.padding_top_unit`: String
- `header.elements_spacing.menuicon.mobile_padding_top`: Number
- `header.elements_spacing.menuicon.mobile_padding_top_unit`: String
- `header.elements_spacing.menuicon.margin_right`: Number
- `header.elements_spacing.menuicon.margin_right_unit`: String
- `header.elements_spacing.menuicon.mobile_margin_right`: Number
- `header.elements_spacing.menuicon.mobile_margin_right_unit`: String
- `header.elements_spacing.menuicon.padding_right`: Number
- `header.elements_spacing.menuicon.padding_right_unit`: String
- `header.elements_spacing.menuicon.mobile_padding_right`: Number
- `header.elements_spacing.menuicon.mobile_padding_right_unit`: String
- `header.elements_spacing.menuicon.margin_bottom`: Number
- `header.elements_spacing.menuicon.margin_bottom_unit`: String
- `header.elements_spacing.menuicon.mobile_margin_bottom`: Number
- `header.elements_spacing.menuicon.mobile_margin_bottom_unit`: String
- `header.elements_spacing.menuicon.padding_bottom`: Number
- `header.elements_spacing.menuicon.padding_bottom_unit`: String
- `header.elements_spacing.menuicon.mobile_padding_bottom`: Number
- `header.elements_spacing.menuicon.mobile_padding_bottom_unit`: String
- `header.elements_spacing.menuicon.margin_left`: Number
- `header.elements_spacing.menuicon.margin_left_unit`: String
- `header.elements_spacing.menuicon.mobile_margin_left`: Number
- `header.elements_spacing.menuicon.mobile_margin_left_unit`: String
- `header.elements_spacing.menuicon.padding_left`: Number
- `header.elements_spacing.menuicon.padding_left_unit`: String
- `header.elements_spacing.menuicon.mobile_padding_left`: Number
- `header.elements_spacing.menuicon.mobile_padding_left_unit`: String
- `header.elements_spacing.row1.margin_top`: Number
- `header.elements_spacing.row1.margin_top_unit`: String
- `header.elements_spacing.row1.mobile_margin_top`: Number
- `header.elements_spacing.row1.mobile_margin_top_unit`: String
- `header.elements_spacing.row1.padding_top`: Number
- `header.elements_spacing.row1.padding_top_unit`: String
- `header.elements_spacing.row1.mobile_padding_top`: Number
- `header.elements_spacing.row1.mobile_padding_top_unit`: String
- `header.elements_spacing.row1.margin_right`: Number
- `header.elements_spacing.row1.margin_right_unit`: String
- `header.elements_spacing.row1.mobile_margin_right`: Number
- `header.elements_spacing.row1.mobile_margin_right_unit`: String
- `header.elements_spacing.row1.padding_right`: Number
- `header.elements_spacing.row1.padding_right_unit`: String
- `header.elements_spacing.row1.mobile_padding_right`: Number
- `header.elements_spacing.row1.mobile_padding_right_unit`: String
- `header.elements_spacing.row1.margin_bottom`: Number
- `header.elements_spacing.row1.margin_bottom_unit`: String
- `header.elements_spacing.row1.mobile_margin_bottom`: Number
- `header.elements_spacing.row1.mobile_margin_bottom_unit`: String
- `header.elements_spacing.row1.padding_bottom`: Number
- `header.elements_spacing.row1.padding_bottom_unit`: String
- `header.elements_spacing.row1.mobile_padding_bottom`: Number
- `header.elements_spacing.row1.mobile_padding_bottom_unit`: String
- `header.elements_spacing.row1.margin_left`: Number
- `header.elements_spacing.row1.margin_left_unit`: String
- `header.elements_spacing.row1.mobile_margin_left`: Number
- `header.elements_spacing.row1.mobile_margin_left_unit`: String
- `header.elements_spacing.row1.padding_left`: Number
- `header.elements_spacing.row1.padding_left_unit`: String
- `header.elements_spacing.row1.mobile_padding_left`: Number
- `header.elements_spacing.row1.mobile_padding_left_unit`: String
- `header.elements_spacing.row2.margin_top`: Number
- `header.elements_spacing.row2.margin_top_unit`: String
- `header.elements_spacing.row2.mobile_margin_top`: Number
- `header.elements_spacing.row2.mobile_margin_top_unit`: String
- `header.elements_spacing.row2.padding_top`: Number
- `header.elements_spacing.row2.padding_top_unit`: String
- `header.elements_spacing.row2.mobile_padding_top`: Number
- `header.elements_spacing.row2.mobile_padding_top_unit`: String
- `header.elements_spacing.row2.margin_right`: Number
- `header.elements_spacing.row2.margin_right_unit`: String
- `header.elements_spacing.row2.mobile_margin_right`: Number
- `header.elements_spacing.row2.mobile_margin_right_unit`: String
- `header.elements_spacing.row2.padding_right`: Number
- `header.elements_spacing.row2.padding_right_unit`: String
- `header.elements_spacing.row2.mobile_padding_right`: Number
- `header.elements_spacing.row2.mobile_padding_right_unit`: String
- `header.elements_spacing.row2.margin_bottom`: Number
- `header.elements_spacing.row2.margin_bottom_unit`: String
- `header.elements_spacing.row2.mobile_margin_bottom`: Number
- `header.elements_spacing.row2.mobile_margin_bottom_unit`: String
- `header.elements_spacing.row2.padding_bottom`: Number
- `header.elements_spacing.row2.padding_bottom_unit`: String
- `header.elements_spacing.row2.mobile_padding_bottom`: Number
- `header.elements_spacing.row2.mobile_padding_bottom_unit`: String
- `header.elements_spacing.row2.margin_left`: Number
- `header.elements_spacing.row2.margin_left_unit`: String
- `header.elements_spacing.row2.mobile_margin_left`: Number
- `header.elements_spacing.row2.mobile_margin_left_unit`: String
- `header.elements_spacing.row2.padding_left`: Number
- `header.elements_spacing.row2.padding_left_unit`: String
- `header.elements_spacing.row2.mobile_padding_left`: Number
- `header.elements_spacing.row2.mobile_padding_left_unit`: String
- `header.elements_spacing.banner.margin_top`: Number
- `header.elements_spacing.banner.margin_top_unit`: String
- `header.elements_spacing.banner.mobile_margin_top`: Number
- `header.elements_spacing.banner.mobile_margin_top_unit`: String
- `header.elements_spacing.banner.padding_top`: Number
- `header.elements_spacing.banner.padding_top_unit`: String
- `header.elements_spacing.banner.mobile_padding_top`: Number
- `header.elements_spacing.banner.mobile_padding_top_unit`: String
- `header.elements_spacing.banner.margin_right`: Number
- `header.elements_spacing.banner.margin_right_unit`: String
- `header.elements_spacing.banner.mobile_margin_right`: Number
- `header.elements_spacing.banner.mobile_margin_right_unit`: String
- `header.elements_spacing.banner.padding_right`: Number
- `header.elements_spacing.banner.padding_right_unit`: String
- `header.elements_spacing.banner.mobile_padding_right`: Number
- `header.elements_spacing.banner.mobile_padding_right_unit`: String
- `header.elements_spacing.banner.margin_bottom`: Number
- `header.elements_spacing.banner.margin_bottom_unit`: String
- `header.elements_spacing.banner.mobile_margin_bottom`: Number
- `header.elements_spacing.banner.mobile_margin_bottom_unit`: String
- `header.elements_spacing.banner.padding_bottom`: Number
- `header.elements_spacing.banner.padding_bottom_unit`: String
- `header.elements_spacing.banner.mobile_padding_bottom`: Number
- `header.elements_spacing.banner.mobile_padding_bottom_unit`: String
- `header.elements_spacing.banner.margin_left`: Number
- `header.elements_spacing.banner.margin_left_unit`: String
- `header.elements_spacing.banner.mobile_margin_left`: Number
- `header.elements_spacing.banner.mobile_margin_left_unit`: String
- `header.elements_spacing.banner.padding_left`: Number
- `header.elements_spacing.banner.padding_left_unit`: String
- `header.elements_spacing.banner.mobile_padding_left`: Number
- `header.elements_spacing.banner.mobile_padding_left_unit`: String
- `header.nav_links_spacing`: Object[]
  - `nav`: String
  - `margin_top`: Number
  - `margin_top_unit`: String
  - `mobile_margin_top`: Number
  - `mobile_margin_top_unit`: String
  - `padding_top`: Number
  - `padding_top_unit`: String
  - `mobile_padding_top`: Number
  - `mobile_padding_top_unit`: String
  - `margin_right`: Number
  - `margin_right_unit`: String
  - `mobile_margin_right`: Number
  - `mobile_margin_right_unit`: String
  - `padding_right`: Number
  - `padding_right_unit`: String
  - `mobile_padding_right`: Number
  - `mobile_padding_right_unit`: String
  - `margin_bottom`: Number
  - `margin_bottom_unit`: String
  - `mobile_margin_bottom`: Number
  - `mobile_margin_bottom_unit`: String
  - `padding_bottom`: Number
  - `padding_bottom_unit`: String
  - `mobile_padding_bottom`: Number
  - `mobile_padding_bottom_unit`: String
  - `margin_left`: Number
  - `margin_left_unit`: String
  - `mobile_margin_left`: Number
  - `mobile_margin_left_unit`: String
  - `padding_left`: Number
  - `padding_left_unit`: String
  - `mobile_padding_left`: Number
  - `mobile_padding_left_unit`: String
  - `_id`: ObjectId
- `header.searchInputColor`: String, default "#fff"
- `header.searchInputBackground`: String, default "#dcdcdc"
- `header.searchInputPosition`: String, default "bottom"
- `header.searchInputMaxWidth`: Number
- `header.searchInputBorderRadius`: String
- `header.bar_menus`: Object[]
  - `nav`: String
  - `position`: String
  - `value`: Number
  - `mobile_value`: Number
  - `hideIcon`: Boolean, default false
  - `hideTitle`: Boolean, default false
  - `font_size`: Number
  - `_id`: ObjectId
- `partners.gridStyle`: String, default "row"
- `partners.align`: String, default "left"
- `partners.name`: String, default "right"
- `partners.image`: String, default "left"
- `partners.description`: String, default "right"
- `partners.title`: String, default "bottom"
- `partners.showSearch`: Boolean, default true
- `partners.showCategories`: Boolean, default true
- `partners.showMap`: Boolean, default true
- `partners.perPage`: Number, default 9
- `partners.sort`: String, default "name:1"
- `contacts.map`: Boolean, default true
- `contacts.partners`: Boolean, default true
- `price_plan.title`: String, default "top"
- `price_plan.description`: String, default "top"
- `price_plan.plan_features_style`: String, default "0"
- `price_plan.rating`: Boolean, default false
- `price_plan.ratingList`: Boolean, default false
- `price_plan.image`: Boolean, default false
- `price_plan.about_page`: ObjectId, → AboutPage
- `price_plan.header`: ObjectId, → AboutPage
- `backgroundGradient.enabled`: Boolean, default false
- `backgroundGradient.degrees`: Number
- `backgroundGradient.colors`: Object[]
  - `color`: String
  - `percentage`: Number
  - `_id`: ObjectId
- `backgroundGradient.css`: String
- `backgroundImage`: String, default ""
- `backgroundVideo`: String, default ""
- `backgroundAttachment`: String, default "fixed"
- `backgroundOpacity`: Number, default 1
- `transparentCard`: Boolean, default false
- `cardColor`: String
- `cardColor_color`: String
- `cardColor_color_darkmode`: String
- `showMorePages`: Boolean, default true
- `allow_darkmode`: Boolean, default false - Allows site/app to switch between light and dark mode, default value is false.
- `use_darkmode_on_site`: Boolean, default false - Allows the site to switch between light and dark mode, default value is false.
- `programs.rating`: Boolean, default false
- `programs.titleColor`: String
- `programs.descriptionColor`: String
- `programs.borderRadius`: String
- `programs.titleFontSize`: String
- `programs.descriptionFontSize`: String
- `programs.titleFontWeight`: String
- `programs.descriptionFontWeight`: String
- `programs.cardBorderRadius`: String
- `programs.cardBorderWidth`: String
- `programs.cardBorderColor`: String
- `programs.cardBackgroundColor`: String
- `programs.imageAspectRatio`: String
- `programs.customCss`: String
- `programs.sort`: Number, default -1
- `programs.showBreadCrumbs`: Boolean, default true
- `programs.filtersBackgroundColor`: String
- `programs.filtersTextColor`: String
- `programs.filtersBorderRadius`: String
- `programs.boxShadowColor`: String
- `programs.boxShadowOffsetX`: Number, default 0
- `programs.boxShadowOffsetY`: Number, default 0
- `programs.boxShadowBlurRadius`: String
- `programs.boxShadowSpreadRadius`: String
- `programs.imagePadding`: Number, default 0
- `programs.categories.layout`: String, one of list | columns, default "list"
- `programs.categories.showHeading`: Boolean, default true
- `programs.categories.showSubtitle`: Boolean, default true
- `programs.categories.showImage`: Boolean, default false
- `programs.categories.imageSize`: String, default "50px"
- `programs.categories.imageRadius`: String
- `programs.categories.imageAspectRatio`: String, default "1/1"
- `programs.categories.imageFit`: String, one of cover | contain, default "cover"
- `programs.categories.imagePadding`: Number, default 0
- `programs.categories.fallback`: String, one of initial | color | none, default "initial"
- `programs.categories.showChevron`: Boolean, default true
- `programs.categories.titleColor`: String
- `programs.categories.titleFontSize`: String
- `programs.categories.titleFontWeight`: String
- `programs.categories.cardBackgroundColor`: String
- `programs.categories.cardBorderRadius`: String
- `programs.categories.cardBorderWidth`: String
- `programs.categories.cardBorderColor`: String
- `programs.categories.customCss`: String
- `programs.categories.site.showImage`: Boolean, default true
- `programs.categories.site.imageSize`: String
- `programs.categories.site.imageAspectRatio`: String
- `programs.categories.site.titleColor`: String
- `programs.categories.site.titleFontSize`: String
- `programs.categories.site.titleFontWeight`: String
- `programs.categories.site.cardBackgroundColor`: String
- `programs.categories.site.cardBorderRadius`: String
- `programs.categories.site.cardBorderWidth`: String
- `programs.categories.site.cardBorderColor`: String
- `programs.categories.site.cardPadding`: String
- `programs.categories.site.gap`: String
- `programs.categories.site.align`: String, one of left | center | right
- `programs.categories.site.titleTransform`: String, one of uppercase | lowercase | capitalize
- `headerA_secondary`: String, default "#f4f5f8"
- `headerB_secondary`: String, default "#f4f5f8"
- `headerA_secondary_darkmode`: String, default "#f4f5f8"
- `headerB_secondary_darkmode`: String, default "#f4f5f8"
- `headerText_secondary`: String
- `headerText_secondary_darkmode`: String
- `tabs.allow_custom_tabs_color`: Boolean, default false
- `tabs.background`: String
- `tabs.background_checked`: String
- `tabs.color`: String
- `tabs.color_checked`: String
- `tabs.indicator_color`: String
- `tabs.hide_text`: Boolean, default false
- `tabs.hide_home`: Boolean, default false
- `tabs.button_spacing_vertical`: Number, default 0
- `tabs.button_spacing_horizontal`: Number, default 0
- `tabs.button_border_radius`: Number, default 0
- `tabs.navigations.home.icon`: String
- `tabs.navigations.home.img`: ObjectId, → Media
- `tabs.navigations.explore.icon`: String
- `tabs.navigations.explore.img`: ObjectId, → Media
- `tabs.navigations.bites.icon`: String
- `tabs.navigations.bites.img`: ObjectId, → Media
- `tabs.navigations.videos.icon`: String
- `tabs.navigations.videos.img`: ObjectId, → Media
- `tabs.navigations.groups.icon`: String
- `tabs.navigations.groups.img`: ObjectId, → Media
- `tabs.navigations.vouchers.icon`: String
- `tabs.navigations.vouchers.img`: ObjectId, → Media
- `tabs.navigations.store.icon`: String
- `tabs.navigations.store.img`: ObjectId, → Media
- `tabs.navigations.programs.icon`: String
- `tabs.navigations.programs.img`: ObjectId, → Media
- `tabs.navigations.services.icon`: String
- `tabs.navigations.services.img`: ObjectId, → Media
- `tabs.navigations.blogposts.icon`: String
- `tabs.navigations.blogposts.img`: ObjectId, → Media
- `tabs.navigations.subscriptions.icon`: String
- `tabs.navigations.subscriptions.img`: ObjectId, → Media
- `tabs.navigations.events.icon`: String
- `tabs.navigations.events.img`: ObjectId, → Media
- `tabs.navigations.playlists.icon`: String
- `tabs.navigations.playlists.img`: ObjectId, → Media
- `tabs.navigations.user.icon`: String
- `tabs.navigations.user.img`: ObjectId, → Media
- `tabs.navigations.partners.icon`: String
- `tabs.navigations.partners.img`: ObjectId, → Media
- `tabs.navigations.contacts.icon`: String
- `tabs.navigations.contacts.img`: ObjectId, → Media
- `tabs.navigations.tracker.icon`: String
- `tabs.navigations.tracker.img`: ObjectId, → Media
- `tabs.navigations.mini_apps.icon`: String
- `tabs.navigations.mini_apps.img`: ObjectId, → Media
- `tabs.navigations.more.icon`: String
- `tabs.navigations.more.img`: ObjectId, → Media
- `tabs.navigations.claims.icon`: String
- `tabs.navigations.claims.img`: ObjectId, → Media
- `tabs.navigations.professional_pages.icon`: String
- `tabs.navigations.professional_pages.img`: ObjectId, → Media
- `tabs.navigations.bookings.icon`: String
- `tabs.navigations.bookings.img`: ObjectId, → Media
- `customDropdown_background`: String, default "#fff"
- `customDropdown_text`: String, default "#212529"
- `products_partial.showCart`: Boolean, default false
- `products_partial.swiper.enabled`: Boolean, default false
- `products_partial.swiper.loop`: Boolean, default false
- `products_partial.swiper.showControls`: Boolean, default false
- `products_partial.brand`: Boolean, default true
- `breadCrumbs_backgroundColor`: String, default "#e8ebf0"
- `breadCrumbs_textColor`: String, default "#97a0b0"
- `breadCrumbs_darkmode_backgroundColor`: String, default "#e8ebf0"
- `breadCrumbs_darkmode_textColor`: String, default "#97a0b0"
- `cardColor_secondary`: String, default "#757c8d"
- `cardColor_secondary_darkmode`: String, default "#757c8d"
- `show_inapp_message`: Boolean, default true
- `groups.participants`: Boolean, default true
- `groups.description`: Boolean, default false
- `service_categories.gridStyle`: String, default "row"
- `service_categories.titleFontSize`: String
- `service_categories.titleFontWeight`: String
- `service_categories.cardBorderRadius`: String
- `service_categories.cardBorderWidth`: String
- `service_categories.cardBorderColor`: String
- `service_categories.cardBackgroundColor`: String
- `service_categories.imageAspectRatio`: String
- `service_categories.customCss`: String
- `service_categories.cardPadding`: Number
- `_id`: ObjectId
- `updatedAt`: Date
- `createdAt`: Date
