Back to Hermes Agent

Zambra is the box office of a cave tablao. Guests browse shows (soleá, seguiriyas, bulerías, alegrías), open the seat map for THAT performance (tables of 2/4 around the oval, gallery and bar), pick seats, add a drink or tapa, pay at once and get a real entry QR. Staff scans it at the door (paid → used). The truth layer is atomic checkout on ShowSeat: no 15-minute hold. A second buy on the same seat → 409 SEAT_TAKEN; the same user with a live order for the same show → 409 ALREADY_BOOKED. Tablao points come from used seats (10 pts/seat).

Key features

Seat map per show (candil, ring, gallery, bar) — not slot+hold

Atomic checkout: seats confirm in the same transaction

Human 409 SEAT_TAKEN / ALREADY_BOOKED next to the CTA

Real QR (qrcode SVG + /entrada/:code URL) on confirmation and public GET 200

Staff scan by code or URL; second scan → 409 ALREADY_USED

Derived tablao points: 10 pts per used seat

Technologies used

Angular Angular TypeScript TypeScript NestJS NestJS SQLite SQLite