package renderer import ( "net/http" mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage" "git.coopgo.io/coopgo-platform/payments/pricing" ) const organizedCarpoolMenu = "organized_carpool" func (renderer *Renderer) OrganizedCarpoolOverview(w http.ResponseWriter, r *http.Request, drivers any, driversMap any, passengersMap any, bookings any, bookingsHistory any, filters map[string]any, histFilters map[string]any, tab string, enrichedGeoFilters []map[string]string, archived bool) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.overview.files") tripsItemsPerPage := renderer.GlobalConfig.GetInt("modules.organized_carpool.pagination.trips_items_per_page") driversItemsPerPage := renderer.GlobalConfig.GetInt("modules.organized_carpool.pagination.drivers_items_per_page") geoFiltersEnabled := len(enrichedGeoFilters) > 0 state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) state.ViewState = map[string]any{ "drivers": drivers, "drivers_map": driversMap, "passengers_map": passengersMap, "bookings": bookings, "bookings_history": bookingsHistory, "filters": filters, "hist_filters": histFilters, "tab": tab, "trips_items_per_page": tripsItemsPerPage, "drivers_items_per_page": driversItemsPerPage, "geography_filters_enabled": geoFiltersEnabled, "geography_filters_list": enrichedGeoFilters, "archived": archived, } renderer.Render("organized carpool overview", w, r, files, state) } func (renderer *Renderer) OrganizedCarpoolCreateDriver(w http.ResponseWriter, r *http.Request) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.driver_create.files") state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) state.ViewState = map[string]any{} renderer.Render("organized carpool driver creation", w, r, files, state) } func (renderer *Renderer) OrganizedCarpoolUpdateDriver(w http.ResponseWriter, r *http.Request, driver any) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.driver_update.files") state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) state.ViewState = map[string]any{ "driver": driver, } renderer.Render("organized carpool driver update", w, r, files, state) } func (renderer *Renderer) OrganizedCarpoolDriverDisplay(w http.ResponseWriter, r *http.Request, driver mobilityaccountsstorage.Account, trips any, documents any, bookings any, beneficiariesMap any, stats map[string]any, walletBalance float64, tab string) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.driver_display.files") state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) drivers_file_types := renderer.GlobalConfig.GetStringSlice("modules.organized_carpool.drivers.documents_types") file_types_map := renderer.GlobalConfig.GetStringMapString("storage.files.file_types") state.ViewState = map[string]any{ "driver": driver, "trips": trips, "documents": documents, "bookings": bookings, "beneficiaries_map": beneficiariesMap, "stats": stats, "drivers_file_types": drivers_file_types, "file_types_map": file_types_map, "wallet_balance": walletBalance, "tab": tab, } renderer.Render("organized carpool driver display", w, r, files, state) } func (renderer *Renderer) OrganizedCarpoolJourney(w http.ResponseWriter, r *http.Request, journey any, driver any, passenger any, beneficiaries any, passengerWalletBalance float64, pricingResult map[string]pricing.Price) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.journey.files") bookingMotivations := renderer.GlobalConfig.Get("modules.organized_carpool.booking_motivations") state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) state.ViewState = map[string]any{ "driver": driver, "passenger": passenger, "beneficiaries": beneficiaries, "journey": journey, "config": renderer.GlobalConfig, "booking_motivations": bookingMotivations, "passenger_wallet_balance": passengerWalletBalance, "pricing_result": pricingResult, } renderer.Render("organized carpool journey", w, r, files, state) } func (renderer *Renderer) OrganizedCarpoolBookingDisplay(w http.ResponseWriter, r *http.Request, booking any, driver any, passenger any, driverDepartureAddress, driverArrivalAddress string) { files := renderer.ThemeConfig.GetStringSlice("views.organized_carpool.booking_display.files") state := NewState(r, renderer.ThemeConfig, organizedCarpoolMenu) state.ViewState = map[string]any{ "driver": driver, "passenger": passenger, "booking": booking, "driverDepartureAddress": driverDepartureAddress, "driverArrivalAddress": driverArrivalAddress, } renderer.Render("organized carpool booking display", w, r, files, state) }