Files
fete/specs/013-auto-delete-expired/data-model.md
nitrix 4bfaee685c
All checks were successful
CI / backend-test (push) Successful in 58s
CI / frontend-test (push) Successful in 23s
CI / frontend-e2e (push) Successful in 1m10s
CI / build-and-publish (push) Has been skipped
Auto-delete expired events via daily scheduled cleanup job
Adds a Spring @Scheduled job (daily at 03:00) that deletes all events
whose expiry_date is before CURRENT_DATE using a native SQL DELETE.
RSVPs are cascade-deleted via the existing FK constraint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:58:35 +01:00

1.2 KiB

Data Model: Auto-Delete Expired Events

Feature: 013-auto-delete-expired | Date: 2026-03-09

Existing Entities (no changes)

Event

Field Type Notes
id BIGSERIAL PK, internal
event_token UUID Public identifier
organizer_token UUID Organizer access
title VARCHAR(200) Required
description VARCHAR(2000) Optional
date_time TIMESTAMPTZ Event date/time
location VARCHAR(500) Optional
expiry_date DATE Deletion trigger — indexed (idx_events_expiry_date)
created_at TIMESTAMPTZ Auto-set

RSVP

Field Type Notes
id BIGSERIAL PK, internal
rsvp_token UUID Public identifier
event_id BIGINT FK → events(id), ON DELETE CASCADE
name VARCHAR(100) Guest name

Deletion Behavior

  • DELETE FROM events WHERE expiry_date < CURRENT_DATE removes expired events.
  • RSVPs are automatically cascade-deleted by the FK constraint fk_rsvps_event_id with ON DELETE CASCADE.
  • No new tables, columns, or migrations required.

Indexes Used

  • idx_events_expiry_date on events(expiry_date) — ensures the cleanup query is efficient.