Skip to main content
Petanque Life

Corporate & Social Events

F13.04 11 features Planned

At a glance

Corporate & Social Events makes petanque a turnkey hospitality product for offices, weddings, birthdays, anniversaries, and brand activations. Clients book packaged experiences combining venue, equipment, catering, and a professional animator in a few clicks, while clubs and partner venues unlock a steady non-tournament revenue stream from their terrains, clubhouses, and shaded courtyards on weekday and weekend slots alike.

How it works

Clubs, hotels, and dedicated venues publish event packages with capacity, duration, included terrains, and price tiers (silver, gold, platinum) covering increasing levels of service such as catering, branded scoreboards, prize ceremonies, and photographer add-ons. The package builder lets organisers set rules — minimum group size, lead time, weekday versus weekend pricing, seasonal surcharges, and refund policy — and exposes live availability through the same calendar layer used by tournaments and tour bookings, so double-bookings are impossible. Equipment rental adds boules sets, mats, measuring tools, scoreboards, lighting, and tents to any package, with pricing per item and per day; a check-in/check-out flow tracks condition and lost-equipment fees.

The instructor and animator marketplace lets certified coaches and entertainers list profiles with languages, formats (initiation, tournament, show match, kids), and rates; clients can attach an animator to any package or request a custom quote. Corporate event booking adds invoice billing, purchase-order references, VAT handling per country, and group attendee uploads that produce printable name tags with team assignments. Private event organisation supports custom run-of-show templates for weddings (welcome drink, mixed teams, prize for the bride and groom) and parties (children's tournament, doublette finale, dinner).

All bookings issue digital contracts, deposits, and final-balance invoices, and feed reviews back to the host venue.

Key capabilities

  • Tiered event packages (silver, gold, platinum) with rules and seasonal pricing
  • Equipment rental with item tracking, condition checks, and damage fees
  • Instructor and animator marketplace with profiles, languages, and rates
  • Corporate billing with invoices, purchase orders, and country VAT handling
  • Custom run-of-show templates for weddings, birthdays, and brand activations
  • Live shared availability calendar across tournaments, tours, and private events
  • Digital contracts with deposit, final balance, and post-event reviews

In practice

An office manager planning a 60-person team-building afternoon searches the city, picks a club with a gold package, adds a French-speaking animator, three boules sets, and catering, then pays a deposit by company card. The club confirms the booking and assigns three terrains for the chosen Friday; the animator receives the brief with team list and run-of-show. On the day, attendees check in with QR badges produced from the uploaded list, equipment is signed out, and the animator runs an initiation followed by a doublette tournament.

After the event, the company receives a VAT invoice for the balance, photos, a leaderboard PDF, and a review prompt that the manager fills in with five stars.

Features in this subsystem

11
ID Status Features
F13.04.01 Shipped Corporate event booking (team building, company tournaments) — private_event_package_template (kind='corporate') + private_event_booking med prislås (pricing_model/unit_price_minor/currency/deposit_pct/gästspannet snapshotas ur mallen, D-3) och statusmaskinen enquiry → deposit_pending → confirmed, cancelled terminal. Ingen approval_request: en företagsdag är ett avtal, inte ett ärende ✅ 767f53a2.m-10 (t-1 backend + fixtur; adminkonsolen /event-bokningar i t-2)
F13.04.02 Shipped Private event organization (weddings, parties) — samma kedja med kind ∈ {wedding, party, conference}; bröllopets tomma banscope (court_ids = '{}') betyder hela anläggningen, upplöst i debiteringsögonblicket (D-6), så en bana som läggs till efteråt också blockeras ✅ 767f53a2.m-10 (t-1)
F13.04.03 Planned Equipment rental for events ⊘ ingen ägare — m-10 bygger den inte (uttryckligt icke-mål i milestones/767f53a2.m-10/spec.md): mallens *ingår*-text är arrangörens egna ord, inte en artikelkatalog. D-EQUIP äger PL:s EGEN uthyrning av poängtavlekit, inte en anläggnings festutrustning
F13.04.04 Planned Event instructor/animator booking ⊘ ingen ägare — m-10 bygger den inte (uttryckligt icke-mål): huset har inget instruktörsregister med tillgänglighet att boka mot (m-3:s camp-instruktörer är arrangörens uppgift, user_ref alltid null). En bokningsknapp mot en tom katalog vore en yta som ljuger
F13.04.05 Shipped Event package pricing and booking — pricing_model (per_person|flat) + price_minor/currency på mallen; totalen härleds av events.PrivateEventTotal och depositionen av den återanvända events.SplitDeposit (BR29.01, default 30 %, 0 = ingen deposition ⇒ bokningen bekräftas utan betalrad i samma rutt). Ingen handler räknar en procent, ingen klient sätter ett pris (ett belopp i kroppen ⇒ 422) ✅ 767f53a2.m-10 (t-1)
F13.04.06 Shipped VIP hospitality tiers (Bronze/Silver/Gold/Platinum) per event — vip_package per major-event med tier ur den slutna mängden, i18n-namn, inclusions[] som DDL-check (en okänd förmån går inte att lagra — ytan skriver ut den i klartext för en betalande gäst), pris + deposit_pct + final_payment_due_at som paketets egna fält, och is_published som flippas ENBART via POST …/publish|unpublish. Depositionen (BR28.01) och slutbetalningen (BR28.02) körs som fall 2-betalningar mot arrangörens EGET payee-konto (PAY-2-resolvat), och F1-7-svepet vip_final_payment_sweep initierar residualen vid förfallodagen — det debiterar aldrig tyst (D-9; ett off-session-mandat ägs av PAY-3) ✅ 767f53a2.m-9 (t-1)
F13.04.07 Shipped Suite-allokering med oversubscription-skydd — event_suite (kapacitet, view_type, amenities[] som DDL-check) och POST /v1/vip-packages/{id}/allocate-suite: select … for update på suiteraden FÖRE mätningen sum(seats) över suitens levande paket, i SAMMA transaktion som skrivningen ⇒ två samtidiga allokeringar mot samma sista platser ger exakt en 200 och en 422 vip_suite_oversubscribed (BR28.03, kod oförändrad). Samma disciplin på bokningen: paketets rest mäts under for update på paketraden ⇒ 422 vip_capacity_exceeded (BR28.04). Flera paket får dela en suite så länge summan ryms; ett if i handlern hade sett grönt ut sekventiellt och fallit under samtidighet ✅ 767f53a2.m-9 (t-1)
F13.04.08 Shipped VIP concierge content pack — vip_package.concierge_content (jsonb, app-validerad form) är arrangörens REDIGERADE innehåll: synligt för arrangören och i bokningens läsvy, aldrig i den publika projektionen (det tillhör den betalande gästen). Bokförd avvikelse (D-11): *intro-video, talking points och player storylines* som GENERERAT innehåll byggs inte — ingen domän i huset producerar dem, och en knapp som fabricerar text är en yta som ljuger; mockupens *"Generate today's package"* finns därför inte ✅ 767f53a2.m-9 (t-1) för det redigerade paketet · ⊘ ingen ägare för genererat innehåll
F13.04.09 Shipped Wedding/corporate package templates per venue (photogenic profile, availability, deposit-flow) — mallen bär photogenic_profile_i18n (publiceringsgrindens andra krav, visas publikt), availability_note_i18n (en TEXT, ingen regelmotor) och deposit_pct; tillgängligheten är en rådgivande fråga (POST /v1/private-events/availability) över båda källorna (icke-cancelled court_bookings + planned|confirmed court_allocations, BR29.02) medan det bindande skyddet är GiST-EXCLUDE-constrainten ⇒ 409 venue_already_booked under samtidighet (D-5) ✅ 767f53a2.m-10 (t-1)
F13.04.10 Shipped Private-event QR-checkin-kit (A4 4-up A6 cards, signed JWT per gäst) — GET …/qr-kit.pdf renderar ceil(guest_count/4) A4-sidor on-demand i Go (bokförd avvikelse D-8: ingen blob, ingen signed URL — inget artefaktläckage och ingen inaktuell fil), korten bär m-8:s tokenform med EGET domänprefix och bokningens eventfönster, POST …/rotate-qr dödar varje utskrivet kort och POST /v1/private-events/scan fäller verdiktet mot RADEN + skriver en private_event_checkin_scan-rad (incheckade MÄTS som distinkta guest_idx med allowed, D-9). Saknad master ⇒ 503, aldrig ett osignerat kort ✅ 767f53a2.m-10 (t-1); adminflikens incheckningsläge i t-2 (⊘ ingen app-skanner — D-9)
F13.04.11 Shipped Photogenic venue profile + discover-grid (heritage, garden, capacity-filter) — GET /v1/public/private-event-packages (ingen auth, ingen tenant-header) med serverns filter kind/country/guests och en STÄNGD projektion (code, kind, name, photogenic_profile, includes, price, gästspannet, venue {name, city, country}) — aldrig tenant_id, court_ids, is_published, deposit_pct eller kontaktdata. Förfrågan (POST /v1/public/private-event-enquiries) går bakom klubb-inquiryns tre mjuka abuse-grindar. Ingen publik kassa (D-10): ett privat event prissätts i dialog ✅ 767f53a2.m-10 (t-1 backend + kontrakt; den publika ytan i t-2)

Stakeholders who need this subsystem

Surfaces in 1 stakeholder analyses