feat(MemberGroupPhoto): implement group photo management functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 38s

- Added MemberGroupPhoto model and established relationships with Club and User models.
- Introduced new routes for managing group photos in the backend.
- Enhanced frontend components to support group photo cropping and member image updates.
- Updated localization files to include new terms related to group photo processing across multiple languages.
- Refactored server.js to include MemberGroupPhoto in the synchronization process.
This commit is contained in:
Torsten Schulz (local)
2026-04-15 22:45:35 +02:00
parent 5fa34637ba
commit 1dd7bb24ea
26 changed files with 1384 additions and 2 deletions

View File

@@ -0,0 +1,28 @@
-- Migration: Store group photos for later member photo cropping.
CREATE TABLE IF NOT EXISTS `member_group_photo` (
`id` INT NOT NULL AUTO_INCREMENT,
`club_id` INT NOT NULL,
`title` VARCHAR(255) NOT NULL,
`description` TEXT NULL,
`file_name` VARCHAR(255) NOT NULL,
`original_file_name` VARCHAR(255) NULL,
`mime_type` VARCHAR(100) NULL,
`file_size` INT NULL,
`width` INT NULL,
`height` INT NULL,
`taken_at` DATETIME NULL,
`created_by_user_id` INT NULL,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`),
INDEX `idx_member_group_photo_club_id` (`club_id`),
CONSTRAINT `fk_member_group_photo_club`
FOREIGN KEY (`club_id`) REFERENCES `clubs` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_member_group_photo_created_by`
FOREIGN KEY (`created_by_user_id`) REFERENCES `user` (`id`)
ON DELETE SET NULL
ON UPDATE CASCADE
);