/** * Generated by API Builder - https://www.apibuilder.io * Service version: 1.1.0 * User agent: apibuilder app.apibuilder.io/hbc/api-product-recommendations-lat/1.1.0/anorm_2_9_scala_3_parsers */ import anorm._ package com.hbc.api.product.recommendations.lat.v1.anorm.parsers { import com.hbc.api.product.recommendations.lat.v1.anorm.conversions.Standard._ import com.hbc.api.product.recommendations.lat.v1.anorm.conversions.Types._ object SimilarProductContext { def parserWithPrefix(prefix: String, sep: String = "_"): RowParser[com.hbc.api.product.recommendations.lat.v1.models.SimilarProductContext] = parser(prefixOpt = Some(s"$prefix$sep")) def parser(name: String = "similarProductContext", prefixOpt: Option[String] = None): RowParser[com.hbc.api.product.recommendations.lat.v1.models.SimilarProductContext] = { SqlParser.str(prefixOpt.getOrElse("") + name) map { case value => com.hbc.api.product.recommendations.lat.v1.models.SimilarProductContext(value) } } } object Price { def parserWithPrefix(prefix: String, sep: String = "_"): RowParser[com.hbc.api.product.recommendations.lat.v1.models.Price] = parser(prefixOpt = Some(s"$prefix$sep")) def parser( was: String = "was", now: String = "now", onSale: String = "onSale", prefixOpt: Option[String] = None ): RowParser[com.hbc.api.product.recommendations.lat.v1.models.Price] = { SqlParser.str(prefixOpt.getOrElse("") + was) ~ SqlParser.str(prefixOpt.getOrElse("") + now) ~ SqlParser.bool(prefixOpt.getOrElse("") + onSale) map { case was ~ now ~ onSale => { com.hbc.api.product.recommendations.lat.v1.models.Price( was = was, now = now, onSale = onSale ) } } } } object Recommendation { def parserWithPrefix(prefix: String, sep: String = "_"): RowParser[com.hbc.api.product.recommendations.lat.v1.models.Recommendation] = parser(prefixOpt = Some(s"$prefix$sep")) def parser( productId: String = "productId", productName: String = "productName", productUrl: String = "productUrl", productImageUrl: String = "productImageUrl", brandName: String = "brandName", pricePrefix: String = "price", rating: String = "rating", numReviews: String = "numReviews", prefixOpt: Option[String] = None ): RowParser[com.hbc.api.product.recommendations.lat.v1.models.Recommendation] = { SqlParser.str(prefixOpt.getOrElse("") + productId) ~ SqlParser.str(prefixOpt.getOrElse("") + productName) ~ SqlParser.str(prefixOpt.getOrElse("") + productUrl) ~ SqlParser.str(prefixOpt.getOrElse("") + productImageUrl) ~ SqlParser.str(prefixOpt.getOrElse("") + brandName) ~ com.hbc.api.product.recommendations.lat.v1.anorm.parsers.Price.parserWithPrefix(prefixOpt.getOrElse("") + pricePrefix) ~ SqlParser.get[Double](prefixOpt.getOrElse("") + rating).? ~ SqlParser.long(prefixOpt.getOrElse("") + numReviews).? map { case productId ~ productName ~ productUrl ~ productImageUrl ~ brandName ~ price ~ rating ~ numReviews => { com.hbc.api.product.recommendations.lat.v1.models.Recommendation( productId = productId, productName = productName, productUrl = productUrl, productImageUrl = productImageUrl, brandName = brandName, price = price, rating = rating, numReviews = numReviews ) } } } } object SimilarProductRecommendation { def parserWithPrefix(prefix: String, sep: String = "_"): RowParser[com.hbc.api.product.recommendations.lat.v1.models.SimilarProductRecommendation] = parser(prefixOpt = Some(s"$prefix$sep")) def parser( recommendations: String = "recommendations", prefixOpt: Option[String] = None ): RowParser[com.hbc.api.product.recommendations.lat.v1.models.SimilarProductRecommendation] = { SqlParser.get[Seq[com.hbc.api.product.recommendations.lat.v1.models.Recommendation]](prefixOpt.getOrElse("") + recommendations) map { case recommendations => { com.hbc.api.product.recommendations.lat.v1.models.SimilarProductRecommendation( recommendations = recommendations ) } } } } }