Skip to content

Automaticky přiřadit nového člena do tréninkové skupiny #263

@dapolach

Description

@dapolach

Automaticky přiřadit nového člena do tréninkové skupiny

Kontext

Po vytvoření nového člena by měl být automaticky přiřazen do odpovídající tréninkové skupiny podle věku. Vedoucí tréninkové skupiny by měl dostat notifikaci o novém členovi.

Požadavky z issue #3

Z původního požadavku:

"Nový člen je automaticky přiřazen do tréninkové skupiny podle věku a vedoucí přiřazené tréninkové skupiny dostane notifikaci o novém členu tréninkové skupiny"

Funkční požadavky

Definice tréninkových skupin

Je potřeba vyjasnit:

  • Jaké tréninkové skupiny existují? (příklad: Pulci, Žabky, Náctiletí, Dospělí)
  • Věkové hranice pro jednotlivé skupiny?
  • Kdo jsou vedoucí jednotlivých skupin?
  • Může člen patřit do více skupin?

Příklad struktury:

Tréninkové skupiny:
- Pulci (5-8 let) → vedoucí: Jana Nováková
- Žabičky (9-10 let) → vedoucí: Petr Svoboda  
- Žáci 1 (11-12 let) → vedoucí: Martin Dvořák
- Žáci 2 (13-14 let) → vedoucí: Martin Dvořák
- Dorost (15-18 let) → vedouci: Tomas Drtilek
- Dospělí (18+ let) → vedoucí: Eva Procházková

Use case: Automatické přiřazení člena do skupiny

Preconditions:

  • Tréninkové skupiny jsou nadefinovány v systému
  • Každá skupina má přiřazeného vedoucího

Scenario:

  1. Administrátor vytvoří nového člena (POST /api/members)
  2. Systém vypočítá věk člena z data narození
  3. Na základě věku systém najde odpovídající tréninkovou skupinu
  4. Člen je automaticky přiřazen do skupiny
  5. Vedoucímu skupiny je odeslán email s notifikací:
    • Jméno nového člena
    • Věk
    • Kontaktní údaje (email, telefon)
    • Údaje o zákonném zástupci (pro nezletilé)

Akceptační kritéria

  • Existuje entita TrainingGroup s věkovými hranicemi
  • Každá skupina má přiřazeného vedoucího (vztah k User/Member)
  • Po vytvoření člena (MemberCreatedEvent) se spustí event handler
  • Handler vypočítá věk a najde odpovídající skupinu
  • Člen je přiřazen do skupiny (vytvoří se vazba Member ↔ TrainingGroup)
  • Vedoucímu skupiny je odeslán email s údaji o novém členovi
  • Email obsahuje všechny potřebné informace pro vedoucího

Email notifikace vedoucímu

Email template:

Subject: Nový člen ve skupině {groupName}

Dobrý den,

do vaší tréninkové skupiny "{groupName}" byl přiřazen nový člen:

Jméno: {firstName} {lastName}
Věk: {age} let
Datum narození: {dateOfBirth}
Email: {email}
Telefon: {phone}

[Pokud je nezletilý:]
Zákonný zástupce: {guardianName}
Email zástupce: {guardianEmail}
Telefon zástupce: {guardianPhone}

---
Klabis - členská sekce klubu orientačního běhu

Otázky k vyřešení

  1. Struktura skupin: Jaké jsou konkrétní tréninkové skupiny a jejich věkové hranice?
  2. Přeřazení: Jak se řeší přeřazení člena mezi skupinami při oslavě narozenin?
  3. Výjimky: Může administrátor ručně přeřadit člena do jiné skupiny než odpovídá věku?
  4. Více skupin: Může člen patřit do více tréninkových skupin současně?

Související issues


Priorita: Medium (samostatný bounded context, lze implementovat nezávisle)
Závislosti: Vyžaduje #3 (vytvoření člena) + user groups

Metadata

Metadata

Assignees

No one assigned

    Labels

    MembersSpráva členů, profily, kontakty a osobní údajeUserGroupsSpráva skupin, vedoucích a členství v skupináchenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions