feat: Update member table schema to link users and enhance calendar events structure
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 52s

This commit is contained in:
Torsten Schulz (local)
2026-07-24 14:47:21 +02:00
parent 01ca924e3e
commit ee526dc3f2
6 changed files with 65 additions and 29 deletions

View File

@@ -24,10 +24,10 @@ Sichere optionale Zuordnung eines Login-Kontos zu einem Vereinsmitglied für
persönliche Mitgliederfunktionen:
```sql
ALTER TABLE member
ADD COLUMN user_id INT NULL,
ADD UNIQUE KEY member_user_id_unique (user_id),
ADD CONSTRAINT member_user_id_fk FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE SET NULL;
ALTER TABLE `member`
ADD COLUMN `user_id` INT NULL,
ADD UNIQUE KEY `member_user_id_unique` (`user_id`),
ADD CONSTRAINT `member_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE SET NULL;
```
Bestehende Mitglieder bleiben zunächst unverknüpft. Die Zuordnung erfolgt
@@ -98,6 +98,24 @@ ALTER TABLE club_communication_recipients
ADD INDEX club_communication_recipients_member_read (club_id, member_id, read_at);
```
### Bestehende `calendar_events`-Tabelle an das aktuelle Modell anpassen
Wenn die Tabelle vor der Kalendererweiterung angelegt wurde, fehlen die neuen
Metadaten-Spalten. Die Migration ist additiv und lässt bestehende Termine
unverändert:
```sql
ALTER TABLE `calendar_events`
ADD COLUMN IF NOT EXISTS `event_type` VARCHAR(32) NOT NULL DEFAULT 'club_event' AFTER `club_id`,
ADD COLUMN IF NOT EXISTS `status` VARCHAR(32) NOT NULL DEFAULT 'planning' AFTER `event_type`,
ADD COLUMN IF NOT EXISTS `description` TEXT NULL AFTER `title`,
ADD COLUMN IF NOT EXISTS `location` VARCHAR(255) NULL AFTER `description`,
ADD COLUMN IF NOT EXISTS `registration_deadline` DATE NULL AFTER `end_date`,
ADD COLUMN IF NOT EXISTS `organizer_user_id` INT NULL AFTER `registration_deadline`,
ADD COLUMN IF NOT EXISTS `category` VARCHAR(64) NULL AFTER `organizer_user_id`,
ADD COLUMN IF NOT EXISTS `notes` TEXT NULL AFTER `category`;
```
## 2026-03-17
### `predefined_activities.exclude_from_stats`