{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeOperators #-} module Rakuten.Types.Ichiba ( -- Response JSON Type IchibaItems , ItemWrap , Item , IchibaGenres -- Genre JSON Type , Genre , ParentGenre' , ParentGenreWrap , BrotherGenreWrap , ChiledGenreWrap , GenreInformation , CurrentItemGenre , ChiledItemGenre -- Tag JSON Type , TagWrap , TagGroup , TagGroupWrap , ItemTag , ItemTagWrap , ItemTagGroup , ItemTagGroupWrap -- Request Params Type , IchibaItemSearchParam , IchibaGenreSearchParam ) where import Data.Extensible import Data.Text (Text) import Rakuten.Types.Base (ImageUrl) import Rakuten.Types.Class () type IchibaItems = Record '[ "count" ':> Int, "page" ':> Int, "first" ':> Int, "last" ':> Int, "hits" ':> Int, "carrier" ':> Int, "pageCount" ':> Int, "Items" ':> [ItemWrap], "GenreInformation" ':> [GenreInformation], "TagInformation" ':> [ItemTagGroupWrap] ] type ItemWrap = Record '[ "Item" ':> Item ] type Item = Record '[ "itemName" ':> Text, "catchcopy" ':> Text, "itemCode" ':> Text, "itemPrice" ':> Int, "itemCaption" ':> Text, "itemUrl" ':> Text, "shopUrl" ':> Text, "smallImageUrls" ':> [ImageUrl], "mediumImageUrls" ':> [ImageUrl], "affiliateUrl" ':> Text, "shopAffiliateUrl" ':> Text, "imageFlag" ':> Int, "availability" ':> Int, "taxFlag" ':> Int, "postageFlag" ':> Int, "creditCardFlag" ':> Int, "shopOfTheYearFlag" ':> Int, "shipOverseasFlag" ':> Int, "shipOverseasArea" ':> Text, "asurakuFlag" ':> Int, "asurakuClosingTime" ':> Text, "asurakuArea" ':> Text, "affiliateRate" ':> Double, "startTime" ':> Text, "endTime" ':> Text, "reviewCount" ':> Int, "reviewAverage" ':> Double, "pointRate" ':> Int, "pointRateStartTime" ':> Text, "pointRateEndTime" ':> Text, "giftFlag" ':> Int, "shopName" ':> Text, "shopCode" ':> Text, "genreId" ':> Text, "tagIds" ':> [Int] ] type GenreInformation = Record '[ "parent" ':> [ParentGenre'], "current" ':> [CurrentItemGenre], "chiled" ':> [ChiledItemGenre] ] type ParentGenre' = Record '[ "genreId" ':> Text, "genreName" ':> Text, "genreLevel" ':> Int ] type CurrentItemGenre = Record '[ "genreId" ':> Text, "genreName" ':> Text, "itemCount" ':> Int, "genreLevel" ':> Int ] type ChiledItemGenre = Record '[ "genreId" ':> Text, "genreName" ':> Text, "itemCount" ':> Int, "genreLevel" ':> Int ] type ItemTagGroupWrap = Record '[ "tagGroup" ':> ItemTagGroup ] type ItemTagGroup = Record '[ "tagGroupName" ':> Text, "tagGroupId" ':> Int, "tags" ':> [ItemTagWrap] ] type ItemTagWrap = Record '[ "tag" ':> ItemTag ] type ItemTag = Record '[ "tagId" ':> Int, "tagName" ':> Text, "parentTagId" ':> Int, "itemCount" ':> Int ] type IchibaGenres = Record '[ "parents" ':> [ParentGenreWrap], "current" ':> Genre, "brothers" ':> [BrotherGenreWrap], "children" ':> [ChiledGenreWrap], "tagGroups" ':> [TagGroupWrap] ] type Genre = Record '[ "genreId" ':> Int, "genreName" ':> Text, "genreLevel" ':> Int ] type ParentGenreWrap = Record '[ "parent" ':> Genre ] type BrotherGenreWrap = Record '[ "brother" ':> Genre ] type ChiledGenreWrap = Record '[ "child" ':> Genre ] type TagGroupWrap = Record '[ "tagGroup" ':> TagGroup ] type TagGroup = Record '[ "tagGroupName" ':> Text, "tagGroupId" ':> Int, "tags" ':> [TagWrap] ] type TagWrap = Record '[ "tag" ':> Tag ] type Tag = Record '[ "tagId" ':> Int, "tagName" ':> Text, "parentTagId" ':> Int ] type IchibaItemSearchParam = Record '[ "keyword" ':> Text, "shopCode" ':> Maybe Text, "itemCode" ':> Maybe Text, "genreId" ':> Maybe Int, "tagId" ':> Maybe Int, "hits" ':> Maybe Int, "page" ':> Maybe Int, "sort" ':> Maybe Text, "minPrice" ':> Maybe Int, "maxPrice" ':> Maybe Int, "availability" ':> Maybe Bool, "field" ':> Maybe Bool, "carrier" ':> Maybe Bool, "imageFlag" ':> Maybe Bool, "orFlag" ':> Maybe Bool, "NGKeyword" ':> Maybe Text, "purchaseType" ':> Maybe Int, "shipOverseasFlag" ':> Maybe Bool, "shipOverseasArea" ':> Maybe Text, "asurakuFlag" ':> Maybe Bool, "asurakuArea" ':> Maybe Int, "pointRateFlag" ':> Maybe Bool, "pointRate" ':> Maybe Int, "postageFlag" ':> Maybe Bool, "creditCardFlag" ':> Maybe Bool, "giftFlag" ':> Maybe Bool, "hasReviewFlag" ':> Maybe Bool, "maxAffiliateRate" ':> Maybe Double, "minAffiliateRate" ':> Maybe Double, "hasMovieFlag" ':> Maybe Bool, "pamphletFlag" ':> Maybe Bool, "appointDeliveryDateFlag" ':> Maybe Bool, "genreInformationFlag" ':> Maybe Bool, "tagInformationFlag" ':> Maybe Bool ] type IchibaGenreSearchParam = Record '[ "genreId" ':> Int, "genrePath" ':> Maybe Bool ]