Skip to content

Commit 61b562e

Browse files
Merge branch 'features/events'
2 parents 412776b + 356523b commit 61b562e

File tree

5 files changed

+41
-11
lines changed

5 files changed

+41
-11
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.rtuitlab.itlab.data.remote.api.events.models
2+
3+
4+
import kotlinx.serialization.Serializable
5+
6+
@Serializable
7+
data class EventPlaceSalary(
8+
val placeId: String,
9+
val count: Int,
10+
val description: String
11+
)

app/src/main/java/ru/rtuitlab/itlab/data/remote/api/events/models/EventSalary.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import kotlinx.serialization.Serializable
77
data class EventSalary(
88
val eventId: String,
99
val created: String,
10-
val shiftSalaries: List<Int>,
11-
val placeSalaries: List<Int>,
10+
val shiftSalaries: List<EventShiftSalary>,
11+
val placeSalaries: List<EventPlaceSalary>,
1212
val authorId: String,
1313
val modificationDate: String,
1414
val count: Int,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.rtuitlab.itlab.data.remote.api.events.models
2+
3+
4+
import kotlinx.serialization.Serializable
5+
6+
@Serializable
7+
data class EventShiftSalary(
8+
val shiftId: String,
9+
val count: Int,
10+
val description: String
11+
)

app/src/main/java/ru/rtuitlab/itlab/domain/model/EventDetail.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package ru.rtuitlab.itlab.domain.model
22

3+
import ru.rtuitlab.itlab.data.remote.api.events.models.EventPlaceSalary
4+
import ru.rtuitlab.itlab.data.remote.api.events.models.EventShiftSalary
35
import ru.rtuitlab.itlab.data.remote.api.events.models.detail.Shift
46

57
data class EventDetail(
@@ -14,6 +16,6 @@ data class EventDetail(
1416
val description: String,
1517
val type: String,
1618
val shifts: List<Shift>,
17-
val shiftSalaries: List<Int>,
18-
val placeSalaries: List<Int>,
19+
val shiftSalaries: List<EventShiftSalary>,
20+
val placeSalaries: List<EventPlaceSalary>,
1921
)

app/src/main/java/ru/rtuitlab/itlab/presentation/screens/events/Event.kt

+13-7
Original file line numberDiff line numberDiff line change
@@ -293,20 +293,26 @@ private fun EventShifts(
293293
bottomSheetViewModel.show(
294294
AppBottomSheet.EventShift(
295295
shift,
296-
salaries = shift.places.mapIndexed { index, _ ->
297-
event.placeSalaries.getOrElse(index) {
298-
event.shiftSalaries.getOrElse(event.shifts.indexOf(shift)) {
299-
event.salary ?: -1
300-
}
301-
}
296+
// If places salaries are specified, pass them
297+
// Else, if this shift salary is specified, pass it - all places will be worth their shift
298+
// If neither shift, nor places salary is specified, use event salary as default
299+
// If none of the above is specified, pass -1.
300+
salaries = shift.places.map { place ->
301+
event.placeSalaries.find { placeSalary ->
302+
place.id == placeSalary.placeId
303+
}?.count ?:
304+
event.shiftSalaries.find { shiftSalary ->
305+
shift.id == shiftSalary.shiftId
306+
}?.count ?:
307+
event.salary ?: -1
302308
},
303309
eventViewModel = eventViewModel
304310
),
305311
coroutineScope
306312
)
307313
},
308314
shift = shift,
309-
salary = event.shiftSalaries.getOrElse(event.shifts.indexOf(shift)) { event.salary }
315+
salary = event.shiftSalaries.find { it.shiftId == shift.id }?.count ?: event.salary
310316
)
311317
}
312318
}

0 commit comments

Comments
 (0)