Postgres via Prisma. Schema: prisma/schema.prisma.
User—OrganizationMember(many-to-many via join table) —OrganizationOrganization—Event—TicketType—TicketTicket.ownerId->User(the current owner, kept in sync with the on-chain owner on every write path and byverify)ResaleListing— one row per listing attempt,ticketId+status
npx prisma migrate dev --name <description>
npx prisma migrate deploy # productionchainEventId and chainTicketId are unique BigInt columns mapping
1:1 to the on-chain u64 ids — see docs/ARCHITECTURE.md for why the
chain remains the source of truth despite this cache.