Commit Graph

7 Commits

Author SHA1 Message Date
beo3000 99b9994c32 added gif test-runs 2026-01-11 12:39:10 +01:00
beo3000 3b6c7a2234 fix ui deadlock problem 2026-01-09 13:29:37 +01:00
beo3000 40db3d08c0 added new gif event 2026-01-08 21:02:44 +01:00
beo3000 383db346eb ui fixes 2026-01-08 18:00:42 +01:00
beo3000 e2ee3e6afe added club-terminology
Angepasst:
  - Club.cs - Navigation Property Terminologies
  - AppDbContext.cs - DbSet ClubTerminologies
  - DependencyInjection.cs - Service-Registrierung
  - NavMenu.razor - Menüpunkt "Begriffe" unter Stammdaten

  Migration: AddClubTerminology erstellt und angewandt.

  Nutzung im Code:
  @inject IClubTerminologyService Terms

  // In Component:
  var term = await Terms.GetTermAsync(TermKey.Gutter);  // "Gosse" oder Default "Pudel"

  Neue Keys einfach in TermKey.cs hinzufügen + Default in ClubTerminologyService.Defaults.
2026-01-06 18:41:16 +01:00
beo3000 a3a5c288a1 added giftype NoWood 2025-12-30 17:43:10 +01:00
beo3000 752523fe78 added gif-Feature:
Summary of Changes:

  Phase 1-3 (Domain/Infrastructure/Application):
  - ThrowEventType enum with Strike, Circle, Bell, Gutter flags
  - ClubGif, ClubGifRating, GifSubmissionToken entities
  - EF configurations with proper indexes
  - ClubGifRepository with weighted random selection
  - MediaStorageService for file storage (wwwroot/club-media/{LoginName}/gifs/)
  - ClubGifService with rating system and auto-disable at -5 threshold

  Phase 4-5 (Admin UI & Playback):
  - Admin page at /club/{ClubId}/admin/gifs with Upload, Import, Edit, Token management
  - QR code generation for submission tokens
  - GifPlayer component with overlay, rating buttons, and dismiss
  - Fluxor state management (GifState, actions, reducers, effects)

  Phase 6 (Anonymous Submission):
  - Public page at /gif/submit/{Token} with EmptyLayout
  - Token validation and file upload

  Phase 7 (Game Integration + Migration):
  - Database migration AddClubGifFeature applied
  - GameEffects.TriggerGifForEventsAsync triggers GIFs on special throws
  - SignalR broadcast via BroadcastGifTriggeredAsync to all clients
  - DayDetails.razor includes GifPlayer and handles SignalR GIF events

  Key Features:

  - GIFs play on Strike (alle 9), Circle (Kranz), Bell (Glocke), Gutter (Rinne)
  - Weighted random selection based on ratings
  - Real-time sync across all connected clients via SignalR
  - Thumbs up/down rating with auto-disable at -5
  - Max file size: 20MB, Video duration: 15s
  - Supports GIF, MP4, WebM formats
2025-12-30 14:57:06 +01:00