33 lines
976 B
Go
33 lines
976 B
Go
package sorting
|
|
|
|
import (
|
|
"strings"
|
|
|
|
mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage"
|
|
"git.coopgo.io/coopgo-platform/solidarity-transport/servers/grpc/proto/gen"
|
|
)
|
|
|
|
type SolidarityDriversByName []mobilityaccountsstorage.Account
|
|
|
|
func (e SolidarityDriversByName) Len() int { return len(e) }
|
|
func (e SolidarityDriversByName) Less(i, j int) bool {
|
|
return e[i].Data["first_name"].(string) < e[j].Data["first_name"].(string)
|
|
}
|
|
func (e SolidarityDriversByName) Swap(i, j int) { e[i], e[j] = e[j], e[i] }
|
|
|
|
type SolidarityAvailabilitiesByDay []*gen.DriverRegularAvailability
|
|
|
|
func (e SolidarityAvailabilitiesByDay) Len() int { return len(e) }
|
|
func (e SolidarityAvailabilitiesByDay) Less(i, j int) bool {
|
|
if e[i].Day == e[j].Day {
|
|
return strings.Compare(e[i].StartTime, e[j].StartTime) < 0
|
|
}
|
|
|
|
if e[i].Day == 0 {
|
|
return false
|
|
}
|
|
|
|
return e[i].Day < e[j].Day
|
|
}
|
|
func (e SolidarityAvailabilitiesByDay) Swap(i, j int) { e[i], e[j] = e[j], e[i] }
|