File tree 5 files changed +41
-11
lines changed
app/src/main/java/ru/rtuitlab/itlab
data/remote/api/events/models
presentation/screens/events
5 files changed +41
-11
lines changed Original file line number Diff line number Diff line change
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
+ )
Original file line number Diff line number Diff line change @@ -7,8 +7,8 @@ import kotlinx.serialization.Serializable
7
7
data class EventSalary (
8
8
val eventId : String ,
9
9
val created : String ,
10
- val shiftSalaries : List <Int >,
11
- val placeSalaries : List <Int >,
10
+ val shiftSalaries : List <EventShiftSalary >,
11
+ val placeSalaries : List <EventPlaceSalary >,
12
12
val authorId : String ,
13
13
val modificationDate : String ,
14
14
val count : Int ,
Original file line number Diff line number Diff line change
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
+ )
Original file line number Diff line number Diff line change 1
1
package ru.rtuitlab.itlab.domain.model
2
2
3
+ import ru.rtuitlab.itlab.data.remote.api.events.models.EventPlaceSalary
4
+ import ru.rtuitlab.itlab.data.remote.api.events.models.EventShiftSalary
3
5
import ru.rtuitlab.itlab.data.remote.api.events.models.detail.Shift
4
6
5
7
data class EventDetail (
@@ -14,6 +16,6 @@ data class EventDetail(
14
16
val description : String ,
15
17
val type : String ,
16
18
val shifts : List <Shift >,
17
- val shiftSalaries : List <Int >,
18
- val placeSalaries : List <Int >,
19
+ val shiftSalaries : List <EventShiftSalary >,
20
+ val placeSalaries : List <EventPlaceSalary >,
19
21
)
Original file line number Diff line number Diff line change @@ -293,20 +293,26 @@ private fun EventShifts(
293
293
bottomSheetViewModel.show(
294
294
AppBottomSheet .EventShift (
295
295
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
302
308
},
303
309
eventViewModel = eventViewModel
304
310
),
305
311
coroutineScope
306
312
)
307
313
},
308
314
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
310
316
)
311
317
}
312
318
}
You can’t perform that action at this time.
0 commit comments