diff --git a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt index ef998fc..f72e73c 100644 --- a/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt +++ b/src/main/kotlin/eu/fosil/okupamicoche/entities/Travel.kt @@ -8,7 +8,7 @@ class Travel( @OneToOne var driver: User, @OneToMany - var travelers: List, + var travelers: MutableList, var departureDate: String, var origin: String, var destination: String, diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt new file mode 100644 index 0000000..953092d --- /dev/null +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/AddTraveler.kt @@ -0,0 +1,13 @@ +package eu.fosil.okupamicoche.usecases.travel + +import eu.fosil.okupamicoche.entities.Travel +import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.repositories.TravelRepository + +class AddTraveler(private val travelRepository: TravelRepository) { + fun addTraveler(travel: Travel, user: User) { + if (travel.travelers.none { u -> u.id == user.id }) + travel.travelers.add(user) + travelRepository.save(travel) + } +} \ No newline at end of file diff --git a/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt new file mode 100644 index 0000000..2d8a0e2 --- /dev/null +++ b/src/main/kotlin/eu/fosil/okupamicoche/usecases/travel/RemoveTraveler.kt @@ -0,0 +1,12 @@ +package eu.fosil.okupamicoche.usecases.travel + +import eu.fosil.okupamicoche.entities.Travel +import eu.fosil.okupamicoche.entities.User +import eu.fosil.okupamicoche.repositories.TravelRepository + +class RemoveTraveler(private val travelRepository: TravelRepository) { + fun removeTraveler(travel: Travel, user: User) { + travel.travelers.remove(user) + travelRepository.save(travel) + } +} \ No newline at end of file