Rebase aio fork onto upstream v1.6.4 (ticket waves, ticket image, pagination) #18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Upstream
lnbits/eventslanded three commits since v1.6.1(currently at v1.6.4): one feature + two hotfixes, ~1865 lines
across 12 files. The feature is meaningful — ticket waves
(early-bird → general → late, each with its own opening/closing
date, capacity, price, currency, fiat config) plus per-event
ticket images and admin-side ticket pagination.
We deferred the rebase when shipping
v1.6.1-aio.2(which addedNostr-driven inventory sync + multi-ticket purchases) because the
conflict surface is large and the aio fork had just finished its
own model-shaping work. This issue tracks the eventual catch-up.
Upstream commits to inherit
777c1078c1538f35c20edNew upstream shape (excerpt)
TicketWavemodel —id,title,opening_date,closing_date,currency,use_ticket_image,ticket_image_id,allow_fiat,fiat_currency,amount_tickets,price_per_ticket.Event.ticket_waves: list[TicketWave]— the previous flatevent.amount_tickets / price_per_ticket / currency / allow_fiat / fiat_currencymove into per-wave structures.Ticket.ticket_wave_id+ticket_wave_title— each purchaseremembers its wave.
NotificationDeliveryResult+TicketResendResult— structuredresend response.
TicketFilters+crud.get_tickets_paginated— admin pagination.static/image/ticket.jpgdefault.Conflict surface with the aio fork
nostr_publisher.py—tickets_available/tickets_sold/tickets_price/tickets_currency/tickets_allow_fiat/tickets_fiat_currencytagstickets_available" needs an answer. Options: (a) emit per-wave sub-tags liketickets_wave:<id>:available, (b) sum across active waves into the existing tags + add a singletickets_wavesJSON tag, (c) only emit when there's exactly one wave. Decide before the rebase.services.set_ticket_paid(sold/amount_tickets on Event)migrations_fork.m001+m002(ticket.payment_hash)ticket_wave_id,ticket_wave_title); these compose with ourpayment_hashcleanly but need to land in the right migration order.views_api.api_ticket_create— multi-ticket loop, capacity check, quantity boundticket_wave_idon the request, defaulting to the currently-open wave.views_apirepublish endpoints (/republish-all,/republish-mine)views_apipolling endpoint +GET /tickets/user/{user_id}Activity.ticketInfoparsed from NIP-52 tagsDecisions to make before rebasing
(per-wave tags, summed + JSON, single-wave-only). Document in
webapp/CLAUDE.md "Payment rails pattern" section so the wire
contract stays explicit.
a wave first, then quantity? Or is quantity per-wave (3 early
bird + 2 general)? Probably the former for v1 simplicity.
v1.6.4-aio.1and the catalog entry version matches. Thisrestores the upstream-sort property in dev so clicking Upgrade
on the events extension doesn't wipe
.git.Out of scope for this issue
unknown tags by NIP-52 spec.
rebase lands.
Mitigation while deferred
Dev catalog has
1.6.1-aio.2< upstream1.6.4. Don't clickUpgrade on the events extension in regtest — it'll extract
upstream's zip into
~/dev/shared/extensions/events/and wipe our.git. Recover viagit cloneover the dir if it happens.Production isn't at risk (the prod manifest is AIO-only).