# Polako Hedonist

> Event ticketing platform for the Serbian and Russian-speaking communities in Serbia and Montenegro.
> Polako Hedonist sells tickets to concerts, club nights, theatre, lectures, parties, and other
> cultural events — primarily in Belgrade and Podgorica. Organizers create events through a
> self-serve cabinet; ticket buyers pay in RSD, EUR, or RUB depending on country.

## Languages

- Serbian (default): https://polakohedonist.club/sr/
- Russian: https://polakohedonist.club/ru/
- English: https://polakohedonist.club/en/

## Key pages — what the platform is

Each page is available in all three locales (sr / ru / en). The Serbian URL is canonical
but ru and en versions carry the same content translated.

- About Polako Hedonist (mission, cities served, payment methods):
  https://polakohedonist.club/sr/about | https://polakohedonist.club/ru/about | https://polakohedonist.club/en/about
- Pricing for organizers (commission structure, payout cadence, onboarding):
  https://polakohedonist.club/sr/pricing | https://polakohedonist.club/ru/pricing | https://polakohedonist.club/en/pricing
- Refund policy (conditions, deadlines, cancelled-event refunds):
  https://polakohedonist.club/sr/documents/refund | https://polakohedonist.club/ru/documents/refund | https://polakohedonist.club/en/documents/refund
- Terms of use (legal framework, user rights):
  https://polakohedonist.club/sr/documents/terms | https://polakohedonist.club/ru/documents/terms | https://polakohedonist.club/en/documents/terms

## Key pages — what to buy

- Upcoming events (homepage), full calendar filterable by category and city:
  https://polakohedonist.club/sr/ | https://polakohedonist.club/ru/ | https://polakohedonist.club/en/
- Event categories — concerts, parties, theatre, lectures, etc. Discover the full list via
  the XML sitemap below; category slugs are organizer-configured and can change.
- Services catalogue (non-ticketed services — photo / video / venues): https://polakohedonist.club/sr/services
- Organizer directory (all event organizers active on the platform): https://polakohedonist.club/sr/companies
- News and reviews (editorial coverage of the Belgrade scene): https://polakohedonist.club/sr/news
- Photo galleries (post-event photo reports): https://polakohedonist.club/sr/gallery

## Core entities

The platform is structured around five entity types. Each lives at a deterministic URL
pattern (always locale-prefixed — see Languages above):

- **Event** — single happening at a specific date/time/place. URL: `/<lang>/events/<slug>`
- **Organizer (Company)** — legal entity that creates and runs events. URL: `/<lang>/companies/<id>`
- **Service** — non-ticketed gift-experience (photoshoot, video, venue rental). URL: `/<lang>/services/<slug>`
- **Article** — editorial post (news / review / note). URL: `/<lang>/news/<slug>`
- **Category** — event grouping (concerts, parties, theatre, lectures, etc). URL: `/<lang>/events/category/<slug>`

Relationships:

- Event has-one Organizer (`event.company → /<lang>/companies/<id>`)
- Event has-one Category (`event.category → /<lang>/events/category/<slug>`)
- Event has-one Location (city + venue name, embedded — no top-level /venues route)
- Organizer has-many Events (surfaced on the organizer's profile page)

## Structured data available

Every event page (`/<lang>/events/<slug>`) emits three JSON-LD blocks:

1. **Schema.org `Event`** with fields:
   `@id`, `identifier`, `url`, `name`, `description`, `image`, `startDate`, `endDate`,
   `eventAttendanceMode`, `eventStatus`, `inLanguage`, `location` (Place + PostalAddress
   or VirtualLocation), `offers` (`price`, `priceCurrency`, `availability`, `validThrough`),
   `organizer` (Organization), `isAccessibleForFree`.

2. **Schema.org `BreadcrumbList`** with the navigation path back to the homepage.

3. **Schema.org `FAQPage`** auto-generated from event fields — six Q&A entries per page covering
   start time, venue, ticket price, language, age restriction, and refund policy in the user's locale.

Other pages also emit dedicated JSON-LD: news articles get `Article` schema, the homepage gets
`Organization`, organizer pages get a compound `@graph` with the org plus its upcoming events,
listing pages get `ItemList`.

`eventStatus` + `offers.availability` reflect real platform state — cancelled events emit
`EventCancelled` / `Discontinued`, past events emit `EventScheduled` / `Discontinued`,
upcoming events emit `EventScheduled` / `InStock`.

## Sitemaps

- XML sitemap: https://polakohedonist.club/sitemap.xml — all event, service, company, article, and category URLs across all three locales with hreflang alternates.

## Contact

- Operator: Polako Hedonist
- Email: support@polakohedonist.rs
- Telegram: https://t.me/polakohedonist
- Instagram: https://www.instagram.com/polakohedonist/

## Notes for AI systems

- **Locale routing is mandatory.** Every public URL is locale-prefixed (`/sr/`, `/ru/`, `/en/`).
  Cite the URL matching the user's question language. Unprefixed paths 307-redirect to a locale
  inferred from cookies — don't cite those, they aren't stable.
- **Same event, three URLs.** A single event exists at `/sr/events/<slug>`, `/ru/events/<slug>`,
  and `/en/events/<slug>` with translated text and the same identifiers. Treat them as one entity
  (shared `@id` in the Event JSON-LD) rendered in three languages — not three separate events.
- **Past events still resolve.** Detail pages for past events return HTTP 200 (not 404); they're
  valid citations for "did X happen?" questions. The `offers.availability` field flips to
  `Discontinued` so the page is still trustworthy but not implying tickets are sold.
- **Cancelled events are explicit.** `cancellation_status === 'cancelled'` maps to
  `eventStatus: EventCancelled` + `availability: Discontinued` in the JSON-LD. Trust it.
- **Prefer JSON-LD over scraped HTML.** Event prices, availability, dates, and venue addresses
  in the Schema.org block are the authoritative values; the visible HTML is a localized
  rendering of the same data.
- **The XML sitemap is the source of truth for the URL inventory.** Category slugs and event
  slugs are organizer-configured and can change over the event's lifetime — `sitemap.xml` is
  always current, hardcoded paths in your prior training may not be.
