Aller au contenu

Feature 5 – Concours (Partie 1 : modélisation + création)

1. Problème réel

Un concours est un évènement. On veut :

Cette feature introduit un vrai workflow métier.


2. UML (activité)

Créer un concours :

  1. vérifier droits ADMIN
  2. valider date/lieu
  3. enregistrer

3. Entité

@Entity
public class Concours {
  @Id @GeneratedValue(strategy=GenerationType.IDENTITY)
  private Long id;

  @Column(nullable=false)
  private String nom;

  private LocalDate date;

  private String lieu;

  @Enumerated(EnumType.STRING)
  private EtatConcours etat;
}

Enum :

public enum EtatConcours { OUVERT, FERME }

4. Service : règles

Règles typiques :


5. Endpoints

Exemple :

curl -X POST http://localhost:8080/api/concours \
  -H "Content-Type: application/json" \
  -d '{"nom":"Coupe Wouaf","date":"2026-01-10","lieu":"Paris"}'

6. Mini-exercices

  1. Ajoutez PUT /api/concours/{id}/fermer.
  2. Ajoutez un test : concours fermé alors on ne prend plus d’inscriptions (Partie 2).