Last active
June 20, 2023 15:51
-
-
Save xiangyu-sun/59d558ca5b80c37d1388a342e2696309 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum EventModel {} | |
extension EventModel { | |
struct StoreImpression: Equatable { | |
public let position: Int | |
public let filterData: AppliedFilters? | |
public let searchId: String | |
public let deliveryFeeCurrency: String | |
public let pricingId: Int? | |
public let rankingType: EventModel.RankingType? | |
public init( | |
position: Int, | |
filterData: EventModel.AppliedFilters?, | |
searchId: String, | |
deliveryFeeCurrency: String, | |
rankingType: EventModel.RankingType?, | |
pricingId: Int? | |
) { | |
self.position = position | |
self.filterData = filterData | |
self.searchId = searchId | |
self.deliveryFeeCurrency = deliveryFeeCurrency | |
self.pricingId = pricingId | |
self.rankingType = rankingType | |
} | |
} | |
enum RankingType: String, Equatable { | |
case marketplaceOptimization = "MO" | |
case legacy = "Legacy" | |
case hyperlocal = "Hyperlocal" | |
} | |
struct AppliedFilters: Equatable { | |
let selectedFilters: SelectedFilters | |
let prime: Bool | |
let personalizedFilterType: EventModel.PersonalizedFilterType | |
let origin: EventModel.AppliedFiltersOrigin | |
let toggleValue: Bool | |
let personalizedFilterPosition: Int? | |
let categoryID: Int? | |
init( | |
selectedFilters: SelectedFilters, | |
prime: Bool, | |
personalizedFilterType: EventModel.PersonalizedFilterType, | |
origin: EventModel.AppliedFiltersOrigin, | |
toggleValue: Bool, | |
personalizedFilterPosition: Int?, | |
categoryID: Int? | |
) { | |
self.selectedFilters = selectedFilters | |
self.prime = prime | |
self.personalizedFilterType = personalizedFilterType | |
self.origin = origin | |
self.toggleValue = toggleValue | |
self.personalizedFilterPosition = personalizedFilterPosition | |
self.categoryID = categoryID | |
} | |
} | |
} | |
extension EventModel { | |
struct SelectedFilters: Equatable { | |
let sortingId: Int? | |
let type: String? | |
let pricingId: Int? | |
init(sortingId: Int?, type: String?, pricingId: Int? = nil) { | |
self.sortingId = sortingId | |
self.type = type | |
self.pricingId = pricingId | |
} | |
} | |
} | |
extension EventModel { | |
enum PersonalizedFilterType: String { | |
case user | |
case city | |
case none | |
} | |
} | |
extension EventModel { | |
enum AppliedFiltersOrigin: String { | |
case topFiltersComponent | |
case filtersScreen | |
case primeToggle | |
case pickupToggle | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment