-- Polls are no longer a standalone entity in the UX: every poll is attached -- to a dispatch. We keep the pulses + votes tables (vote uniqueness, status -- derivation, admin history) and add a nullable FK from dispatches. -- -- ON DELETE SET NULL — if an attached pulse is hard-deleted, the dispatch -- survives without a poll rather than vanishing with it. ALTER TABLE dispatches ADD COLUMN pulse_id INTEGER REFERENCES pulses(id) ON DELETE SET NULL; CREATE INDEX idx_dispatches_pulse ON dispatches(pulse_id) WHERE pulse_id IS NOT NULL;