feat: duplicate link action, watcher migration, fulltext search migration

- CreateTicketView: "Link as duplicate" button on each duplicate result;
  stores chosen ticket ID in hidden field, auto-creates duplicates dependency
  after ticket is saved (TicketController)
- migrations/004: ticket_watchers table (ticket_id, user_id primary key)
- migrations/005: FULLTEXT index on tickets(title, description) for fast
  relevance search replacing LIKE scan

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-29 21:54:00 -04:00
parent c8181e8076
commit 0acf5e84c3
4 changed files with 46 additions and 1 deletions
+10
View File
@@ -0,0 +1,10 @@
-- Migration: Add ticket watchers table
-- Allows users to subscribe to ticket updates and receive Matrix notifications.
CREATE TABLE IF NOT EXISTS ticket_watchers (
ticket_id INT NOT NULL,
user_id INT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (ticket_id, user_id),
INDEX idx_watcher_user (user_id)
);