enrichapi

package
v0.0.0-...-cf1d9c3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2026 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Package enrichapi provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.8.0 DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetSpec

func GetSpec() (swagger *openapi3.T, err error)

GetSpec returns the OpenAPI specification corresponding to the generated code in this file. External references in the spec are resolved through PathToRawSpec; externally-referenced files must be embedded in their corresponding Go packages (via the import-mapping feature). URL-based external refs are not supported.

func GetSpecJSON

func GetSpecJSON() ([]byte, error)

GetSpecJSON returns the raw JSON bytes of the embedded OpenAPI specification: decompressed but not unmarshaled. External references are not resolved here; the bytes are the spec exactly as embedded by codegen. The result is cached at package init time, so repeated calls are cheap.

func GetSwagger deprecated

func GetSwagger() (*openapi3.T, error)

GetSwagger returns the OpenAPI specification corresponding to the generated code in this file.

Deprecated: GetSwagger predates kin-openapi renaming openapi3.Swagger to openapi3.T. Use GetSpec instead. This wrapper is retained for backwards compatibility.

func NewBatchPriceHistoryRequest

func NewBatchPriceHistoryRequest(server string, body BatchPriceHistoryJSONRequestBody) (*http.Request, error)

NewBatchPriceHistoryRequest calls the generic BatchPriceHistory builder with application/json body

func NewBatchPriceHistoryRequestWithBody

func NewBatchPriceHistoryRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewBatchPriceHistoryRequestWithBody constructs an http.Request for the BatchPriceHistory method, with any body, and a specified content type

func NewBatchPricesRequest

func NewBatchPricesRequest(server string, body BatchPricesJSONRequestBody) (*http.Request, error)

NewBatchPricesRequest calls the generic BatchPrices builder with application/json body

func NewBatchPricesRequestWithBody

func NewBatchPricesRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewBatchPricesRequestWithBody constructs an http.Request for the BatchPrices method, with any body, and a specified content type

func NewCreateCommunityProductRequest

func NewCreateCommunityProductRequest(server string, body CreateCommunityProductJSONRequestBody) (*http.Request, error)

NewCreateCommunityProductRequest calls the generic CreateCommunityProduct builder with application/json body

func NewCreateCommunityProductRequestWithBody

func NewCreateCommunityProductRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewCreateCommunityProductRequestWithBody constructs an http.Request for the CreateCommunityProduct method, with any body, and a specified content type

func NewDeleteProductRequest

func NewDeleteProductRequest(server string, productId openapi_types.UUID) (*http.Request, error)

NewDeleteProductRequest constructs an http.Request for the DeleteProduct method

func NewDismissPromoteCandidateRequest

func NewDismissPromoteCandidateRequest(server string, productId openapi_types.UUID, body DismissPromoteCandidateJSONRequestBody) (*http.Request, error)

NewDismissPromoteCandidateRequest calls the generic DismissPromoteCandidate builder with application/json body

func NewDismissPromoteCandidateRequestWithBody

func NewDismissPromoteCandidateRequestWithBody(server string, productId openapi_types.UUID, contentType string, body io.Reader) (*http.Request, error)

NewDismissPromoteCandidateRequestWithBody constructs an http.Request for the DismissPromoteCandidate method, with any body, and a specified content type

func NewGetFxLatestRequest

func NewGetFxLatestRequest(server string) (*http.Request, error)

NewGetFxLatestRequest constructs an http.Request for the GetFxLatest method

func NewGetProductRequest

func NewGetProductRequest(server string, productId openapi_types.UUID) (*http.Request, error)

NewGetProductRequest constructs an http.Request for the GetProduct method

func NewInternalNormalizeCommunityRegionsRequest

func NewInternalNormalizeCommunityRegionsRequest(server string) (*http.Request, error)

NewInternalNormalizeCommunityRegionsRequest constructs an http.Request for the InternalNormalizeCommunityRegions method

func NewInternalRefreshRequest

func NewInternalRefreshRequest(server string) (*http.Request, error)

NewInternalRefreshRequest constructs an http.Request for the InternalRefresh method

func NewListCommunityProductsRequest

func NewListCommunityProductsRequest(server string, params *ListCommunityProductsParams) (*http.Request, error)

NewListCommunityProductsRequest constructs an http.Request for the ListCommunityProducts method

func NewListPlatformsRequest

func NewListPlatformsRequest(server string) (*http.Request, error)

NewListPlatformsRequest constructs an http.Request for the ListPlatforms method

func NewListPromoteCandidatesRequest

func NewListPromoteCandidatesRequest(server string, params *ListPromoteCandidatesParams) (*http.Request, error)

NewListPromoteCandidatesRequest constructs an http.Request for the ListPromoteCandidates method

func NewListUnmatchedProductsRequest

func NewListUnmatchedProductsRequest(server string, params *ListUnmatchedProductsParams) (*http.Request, error)

NewListUnmatchedProductsRequest constructs an http.Request for the ListUnmatchedProducts method

func NewPromoteProductRequest

func NewPromoteProductRequest(server string, productId openapi_types.UUID, body PromoteProductJSONRequestBody) (*http.Request, error)

NewPromoteProductRequest calls the generic PromoteProduct builder with application/json body

func NewPromoteProductRequestWithBody

func NewPromoteProductRequestWithBody(server string, productId openapi_types.UUID, contentType string, body io.Reader) (*http.Request, error)

NewPromoteProductRequestWithBody constructs an http.Request for the PromoteProduct method, with any body, and a specified content type

func NewResolveProductRequest

func NewResolveProductRequest(server string, body ResolveProductJSONRequestBody) (*http.Request, error)

NewResolveProductRequest calls the generic ResolveProduct builder with application/json body

func NewResolveProductRequestWithBody

func NewResolveProductRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewResolveProductRequestWithBody constructs an http.Request for the ResolveProduct method, with any body, and a specified content type

func NewScoreRecommendationsRequest

func NewScoreRecommendationsRequest(server string, body ScoreRecommendationsJSONRequestBody) (*http.Request, error)

NewScoreRecommendationsRequest calls the generic ScoreRecommendations builder with application/json body

func NewScoreRecommendationsRequestWithBody

func NewScoreRecommendationsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewScoreRecommendationsRequestWithBody constructs an http.Request for the ScoreRecommendations method, with any body, and a specified content type

func NewSearchCatalogRequest

func NewSearchCatalogRequest(server string, params *SearchCatalogParams) (*http.Request, error)

NewSearchCatalogRequest constructs an http.Request for the SearchCatalog method

func NewSetProductMappingRequest

func NewSetProductMappingRequest(server string, productId openapi_types.UUID, body SetProductMappingJSONRequestBody) (*http.Request, error)

NewSetProductMappingRequest calls the generic SetProductMapping builder with application/json body

func NewSetProductMappingRequestWithBody

func NewSetProductMappingRequestWithBody(server string, productId openapi_types.UUID, contentType string, body io.Reader) (*http.Request, error)

NewSetProductMappingRequestWithBody constructs an http.Request for the SetProductMapping method, with any body, and a specified content type

func NewTriggerRefreshRequest

func NewTriggerRefreshRequest(server string) (*http.Request, error)

NewTriggerRefreshRequest constructs an http.Request for the TriggerRefresh method

func PathToRawSpec

func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error)

Constructs a synthetic filesystem for resolving external references when loading openapi specifications.

Types

type BadRequest

type BadRequest = externalRef0.Problem

BadRequest defines model for BadRequest.

type BatchPriceHistoryJSONRequestBody

type BatchPriceHistoryJSONRequestBody = PriceHistoryRequest

BatchPriceHistoryJSONRequestBody defines body for BatchPriceHistory for application/json ContentType.

type BatchPriceHistoryResponse

type BatchPriceHistoryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *PriceHistoryResponse
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseBatchPriceHistoryResponse

func ParseBatchPriceHistoryResponse(rsp *http.Response) (*BatchPriceHistoryResponse, error)

ParseBatchPriceHistoryResponse parses an HTTP response from a BatchPriceHistoryWithResponse call

func (BatchPriceHistoryResponse) ContentType

func (r BatchPriceHistoryResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (BatchPriceHistoryResponse) GetApplicationproblemJSON400

func (r BatchPriceHistoryResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (BatchPriceHistoryResponse) GetApplicationproblemJSON401

func (r BatchPriceHistoryResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (BatchPriceHistoryResponse) GetApplicationproblemJSONDefault

func (r BatchPriceHistoryResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (BatchPriceHistoryResponse) GetBody

func (r BatchPriceHistoryResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (BatchPriceHistoryResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (BatchPriceHistoryResponse) Status

func (r BatchPriceHistoryResponse) Status() string

Status returns HTTPResponse.Status

func (BatchPriceHistoryResponse) StatusCode

func (r BatchPriceHistoryResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type BatchPricesJSONRequestBody

type BatchPricesJSONRequestBody = PricesBatchRequest

BatchPricesJSONRequestBody defines body for BatchPrices for application/json ContentType.

type BatchPricesResponse

type BatchPricesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *PricesBatchResponse
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseBatchPricesResponse

func ParseBatchPricesResponse(rsp *http.Response) (*BatchPricesResponse, error)

ParseBatchPricesResponse parses an HTTP response from a BatchPricesWithResponse call

func (BatchPricesResponse) ContentType

func (r BatchPricesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (BatchPricesResponse) GetApplicationproblemJSON400

func (r BatchPricesResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (BatchPricesResponse) GetApplicationproblemJSON401

func (r BatchPricesResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (BatchPricesResponse) GetApplicationproblemJSONDefault

func (r BatchPricesResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (BatchPricesResponse) GetBody

func (r BatchPricesResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (BatchPricesResponse) GetJSON200

func (r BatchPricesResponse) GetJSON200() *PricesBatchResponse

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (BatchPricesResponse) Status

func (r BatchPricesResponse) Status() string

Status returns HTTPResponse.Status

func (BatchPricesResponse) StatusCode

func (r BatchPricesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) BatchPriceHistory

func (c *Client) BatchPriceHistory(ctx context.Context, body BatchPriceHistoryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

BatchPriceHistory Price snapshot series for a set of products (value-over-time composition)

Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.

Takes a body of the `application/json` content type.

Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).

func (*Client) BatchPriceHistoryWithBody

func (c *Client) BatchPriceHistoryWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

BatchPriceHistoryWithBody Price snapshot series for a set of products (value-over-time composition)

Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.

Takes any type of body and a specified content type.

Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).

func (*Client) BatchPrices

func (c *Client) BatchPrices(ctx context.Context, body BatchPricesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

BatchPrices Current prices for a set of products (dashboard composition)

Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.

Takes a body of the `application/json` content type.

Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).

func (*Client) BatchPricesWithBody

func (c *Client) BatchPricesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

BatchPricesWithBody Current prices for a set of products (dashboard composition)

Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.

Takes any type of body and a specified content type.

Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).

func (*Client) CreateCommunityProduct

func (c *Client) CreateCommunityProduct(ctx context.Context, body CreateCommunityProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

CreateCommunityProduct Mint a community product from an approved submission (role admin)

Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.

Takes a body of the `application/json` content type.

Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).

func (*Client) CreateCommunityProductWithBody

func (c *Client) CreateCommunityProductWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

CreateCommunityProductWithBody Mint a community product from an approved submission (role admin)

Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.

Takes any type of body and a specified content type.

Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).

func (*Client) DeleteProduct

func (c *Client) DeleteProduct(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error)

DeleteProduct Delete an unmatched product and its snapshots (role admin)

The residue mop: permanently removes a product that no listing anchors, plus its price snapshots. Only unmatched products qualify - a matched product answers 409 code product_matched (clear the mapping first). This service cannot see entries; the bff verifies no entries reference the product before calling. A later resolve can re-mint the family's unmatched member - delete is cleanup, not prevention.

Corresponds with DELETE /admin/products/{productId} (the `DeleteProduct` operationId).

func (*Client) DismissPromoteCandidate

func (c *Client) DismissPromoteCandidate(ctx context.Context, productId openapi_types.UUID, body DismissPromoteCandidateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

DismissPromoteCandidate Dismiss one promote candidate permanently (role admin)

Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.

Takes a body of the `application/json` content type.

Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).

func (*Client) DismissPromoteCandidateWithBody

func (c *Client) DismissPromoteCandidateWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

DismissPromoteCandidateWithBody Dismiss one promote candidate permanently (role admin)

Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.

Takes any type of body and a specified content type.

Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).

func (*Client) GetFxLatest

func (c *Client) GetFxLatest(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

GetFxLatest Latest USD-based exchange rates (cached, refreshed hourly)

Rates are target-units-per-USD from the ECB reference set via frankfurter.dev (embedded fixtures in stub mode). Snapshots refresh at most hourly; an upstream failure serves the last good snapshot, so only a cold cache answers 502. Rates power display-side conversion only; nothing stored depends on them.

Corresponds with GET /fx/latest (the `GetFxLatest` operationId).

func (*Client) GetProduct

func (c *Client) GetProduct(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error)

GetProduct Fetch a product (read-through with per-type staleness)

Valkey (5m) in front of Postgres; an IGDB projection older than IGDB_REFRESH_AFTER (default 720h) is refetched inline best-effort (stale data is served when the provider is down). Prices refresh on the daily cadence only, never per-read.

Corresponds with GET /products/{productId} (the `GetProduct` operationId).

func (*Client) InternalNormalizeCommunityRegions

func (c *Client) InternalNormalizeCommunityRegions(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

InternalNormalizeCommunityRegions Promote free-text community product regions into the known set

Maintenance operation; the gateway never routes it. Folds every community product's curated region outside the known set (lowercase, trim) against the known values and the reviewed synonyms table - exact or synonym, never fuzzy. A community product carries no provider identity, so promotion is a plain field rewrite with no fetch arm. Guard: admin role or service token (the nightly job runs it alongside collection's platform/region levers). Idempotent and re-runnable; promoted rows leave the selection set.

Corresponds with POST /internal/normalize-community-regions (the `InternalNormalizeCommunityRegions` operationId).

func (*Client) InternalRefresh

func (c *Client) InternalRefresh(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

InternalRefresh Catalog refresh trigger (CronJob)

Machine trigger for the nightly catalog refresh; the gateway never routes it. Guard: a service token (token_use=service) - operators use /admin/refresh. Answers 202 and detaches; one run at a time (409 refresh_in_progress).

Corresponds with POST /internal/refresh (the `InternalRefresh` operationId).

func (*Client) ListCommunityProducts

func (c *Client) ListCommunityProducts(ctx context.Context, params *ListCommunityProductsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

ListCommunityProducts List community products, un-promoted only (role admin)

Every admin-minted community product (origin community): the population promote can flip to a provider identity, and delete can remove once no entry references it. Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.

Corresponds with GET /admin/products/community (the `ListCommunityProducts` operationId).

func (*Client) ListPlatforms

func (c *Client) ListPlatforms(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

ListPlatforms The canonical platform catalog with alias knowledge

The IGDB platform catalog (igdb id + name) joined with the alias table - PriceCharting console spellings plus curated abbreviations (SNES, PSX, N64, ...) - sorted by name. Reference data for the custom-entry platform picker and the collection normalize-platforms lever: consumers filter and match against name + aliases and never hard-code aliases themselves. Cached 24h (the search-cache idiom); the catalog changes only when the platform sweep lands new rows. A cold catalog with the provider down is the only 502.

Corresponds with GET /platforms (the `ListPlatforms` operationId).

func (*Client) ListPromoteCandidates

func (c *Client) ListPromoteCandidates(ctx context.Context, params *ListPromoteCandidatesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

ListPromoteCandidates Community products with plausible provider matches (role admin)

The promote worklist, fed by the nightly flag-never-act sweep (the refresh trigger also refreshes it): community products whose name matched a provider item at or above the never-guess threshold, strongest candidate first with _id as the tiebreak. Dismissed pairs never reappear; a different provider id for the same product still nags. product_id narrows to one product - the lookup panel's per-product view. Promotion is always a human verdict; nothing here attaches anything.

Corresponds with GET /admin/products/promote-candidates (the `ListPromoteCandidates` operationId).

func (*Client) ListUnmatchedProducts

func (c *Client) ListUnmatchedProducts(ctx context.Context, params *ListUnmatchedProductsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

ListUnmatchedProducts List unmatched products, admin-held included (role admin)

The admin worklist: every product with no PriceCharting mapping, all types, INCLUDING products held by an admin clear (each held item carries match_hold true; a deliberate clear is exactly what an admin revisits). Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.

Corresponds with GET /admin/products/unmatched (the `ListUnmatchedProducts` operationId).

func (*Client) PromoteProduct

func (c *Client) PromoteProduct(ctx context.Context, productId openapi_types.UUID, body PromoteProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

PromoteProduct Promote a community product to provider identity in place (role admin)

Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.

Takes a body of the `application/json` content type.

Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).

func (*Client) PromoteProductWithBody

func (c *Client) PromoteProductWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

PromoteProductWithBody Promote a community product to provider identity in place (role admin)

Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.

Takes any type of body and a specified content type.

Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).

func (*Client) ResolveProduct

func (c *Client) ResolveProduct(ctx context.Context, body ResolveProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

ResolveProduct Find-or-create the canonical product for a search selection

Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.

Takes a body of the `application/json` content type.

Corresponds with POST /products/resolve (the `ResolveProduct` operationId).

func (*Client) ResolveProductWithBody

func (c *Client) ResolveProductWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

ResolveProductWithBody Find-or-create the canonical product for a search selection

Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.

Takes any type of body and a specified content type.

Corresponds with POST /products/resolve (the `ResolveProduct` operationId).

func (*Client) ScoreRecommendations

func (c *Client) ScoreRecommendations(ctx context.Context, body ScoreRecommendationsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

ScoreRecommendations Score unowned games against a library summary (user-agnostic)

The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.

Takes a body of the `application/json` content type.

Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).

func (*Client) ScoreRecommendationsWithBody

func (c *Client) ScoreRecommendationsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

ScoreRecommendationsWithBody Score unowned games against a library summary (user-agnostic)

The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.

Takes any type of body and a specified content type.

Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).

func (*Client) SearchCatalog

func (c *Client) SearchCatalog(ctx context.Context, params *SearchCatalogParams, reqEditors ...RequestEditorFn) (*http.Response, error)

SearchCatalog Discovery search (game metadata via IGDB, hardware via PriceCharting)

Results come from a 24h per-query Valkey cache in front of the provider, never from the local catalog first (it is incomplete by construction). When the provider is down and the cache is cold, the local catalog answers a name match and the response is flagged degraded. type pc_listing searches ALL of PriceCharting (games, hardware, every category) and carries the provider's loose/cib/new prices per listing; it exists for picking exact variant listings as price sources.

Corresponds with GET /search (the `SearchCatalog` operationId).

func (*Client) SetProductMapping

func (c *Client) SetProductMapping(ctx context.Context, productId openapi_types.UUID, body SetProductMappingJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

SetProductMapping Correct a product's PriceCharting mapping and mark it verified (role admin)

Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).

Takes a body of the `application/json` content type.

Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).

func (*Client) SetProductMappingWithBody

func (c *Client) SetProductMappingWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

SetProductMappingWithBody Correct a product's PriceCharting mapping and mark it verified (role admin)

Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).

Takes any type of body and a specified content type.

Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).

func (*Client) TriggerRefresh

func (c *Client) TriggerRefresh(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

TriggerRefresh Trigger an immediate catalog refresh (role admin)

Starts the same refresh the daily CronJob triggers and returns 202 immediately (the refresh outlives the HTTP write timeout at polite provider rates); the runner logs its summary. 409 code refresh_in_progress when a refresh is already running.

Corresponds with POST /admin/refresh (the `TriggerRefresh` operationId).

type ClientInterface

type ClientInterface interface {

	// CreateCommunityProductWithBody Mint a community product from an approved submission (role admin)
	//
	// Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).
	CreateCommunityProductWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// CreateCommunityProduct Mint a community product from an approved submission (role admin)
	//
	// Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).
	CreateCommunityProduct(ctx context.Context, body CreateCommunityProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListCommunityProducts List community products, un-promoted only (role admin)
	//
	// Every admin-minted community product (origin community): the population promote can flip to a provider identity, and delete can remove once no entry references it. Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.
	//
	// Corresponds with GET /admin/products/community (the `ListCommunityProducts` operationId).
	ListCommunityProducts(ctx context.Context, params *ListCommunityProductsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListPromoteCandidates Community products with plausible provider matches (role admin)
	//
	// The promote worklist, fed by the nightly flag-never-act sweep (the refresh trigger also refreshes it): community products whose name matched a provider item at or above the never-guess threshold, strongest candidate first with _id as the tiebreak. Dismissed pairs never reappear; a different provider id for the same product still nags. product_id narrows to one product - the lookup panel's per-product view. Promotion is always a human verdict; nothing here attaches anything.
	//
	// Corresponds with GET /admin/products/promote-candidates (the `ListPromoteCandidates` operationId).
	ListPromoteCandidates(ctx context.Context, params *ListPromoteCandidatesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListUnmatchedProducts List unmatched products, admin-held included (role admin)
	//
	// The admin worklist: every product with no PriceCharting mapping, all types, INCLUDING products held by an admin clear (each held item carries match_hold true; a deliberate clear is exactly what an admin revisits). Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.
	//
	// Corresponds with GET /admin/products/unmatched (the `ListUnmatchedProducts` operationId).
	ListUnmatchedProducts(ctx context.Context, params *ListUnmatchedProductsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteProduct Delete an unmatched product and its snapshots (role admin)
	//
	// The residue mop: permanently removes a product that no listing anchors, plus its price snapshots. Only unmatched products qualify - a matched product answers 409 code product_matched (clear the mapping first). This service cannot see entries; the bff verifies no entries reference the product before calling. A later resolve can re-mint the family's unmatched member - delete is cleanup, not prevention.
	//
	// Corresponds with DELETE /admin/products/{productId} (the `DeleteProduct` operationId).
	DeleteProduct(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SetProductMappingWithBody Correct a product's PriceCharting mapping and mark it verified (role admin)
	//
	// Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).
	SetProductMappingWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SetProductMapping Correct a product's PriceCharting mapping and mark it verified (role admin)
	//
	// Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).
	SetProductMapping(ctx context.Context, productId openapi_types.UUID, body SetProductMappingJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PromoteProductWithBody Promote a community product to provider identity in place (role admin)
	//
	// Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).
	PromoteProductWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PromoteProduct Promote a community product to provider identity in place (role admin)
	//
	// Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).
	PromoteProduct(ctx context.Context, productId openapi_types.UUID, body PromoteProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DismissPromoteCandidateWithBody Dismiss one promote candidate permanently (role admin)
	//
	// Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).
	DismissPromoteCandidateWithBody(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DismissPromoteCandidate Dismiss one promote candidate permanently (role admin)
	//
	// Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).
	DismissPromoteCandidate(ctx context.Context, productId openapi_types.UUID, body DismissPromoteCandidateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// TriggerRefresh Trigger an immediate catalog refresh (role admin)
	//
	// Starts the same refresh the daily CronJob triggers and returns 202 immediately (the refresh outlives the HTTP write timeout at polite provider rates); the runner logs its summary. 409 code refresh_in_progress when a refresh is already running.
	//
	// Corresponds with POST /admin/refresh (the `TriggerRefresh` operationId).
	TriggerRefresh(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetFxLatest Latest USD-based exchange rates (cached, refreshed hourly)
	//
	// Rates are target-units-per-USD from the ECB reference set via frankfurter.dev (embedded fixtures in stub mode). Snapshots refresh at most hourly; an upstream failure serves the last good snapshot, so only a cold cache answers 502. Rates power display-side conversion only; nothing stored depends on them.
	//
	// Corresponds with GET /fx/latest (the `GetFxLatest` operationId).
	GetFxLatest(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// InternalNormalizeCommunityRegions Promote free-text community product regions into the known set
	//
	// Maintenance operation; the gateway never routes it. Folds every community product's curated region outside the known set (lowercase, trim) against the known values and the reviewed synonyms table - exact or synonym, never fuzzy. A community product carries no provider identity, so promotion is a plain field rewrite with no fetch arm. Guard: admin role or service token (the nightly job runs it alongside collection's platform/region levers). Idempotent and re-runnable; promoted rows leave the selection set.
	//
	// Corresponds with POST /internal/normalize-community-regions (the `InternalNormalizeCommunityRegions` operationId).
	InternalNormalizeCommunityRegions(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// InternalRefresh Catalog refresh trigger (CronJob)
	//
	// Machine trigger for the nightly catalog refresh; the gateway never routes it. Guard: a service token (token_use=service) - operators use /admin/refresh. Answers 202 and detaches; one run at a time (409 refresh_in_progress).
	//
	// Corresponds with POST /internal/refresh (the `InternalRefresh` operationId).
	InternalRefresh(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListPlatforms The canonical platform catalog with alias knowledge
	//
	// The IGDB platform catalog (igdb id + name) joined with the alias table - PriceCharting console spellings plus curated abbreviations (SNES, PSX, N64, ...) - sorted by name. Reference data for the custom-entry platform picker and the collection normalize-platforms lever: consumers filter and match against name + aliases and never hard-code aliases themselves. Cached 24h (the search-cache idiom); the catalog changes only when the platform sweep lands new rows. A cold catalog with the provider down is the only 502.
	//
	// Corresponds with GET /platforms (the `ListPlatforms` operationId).
	ListPlatforms(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BatchPriceHistoryWithBody Price snapshot series for a set of products (value-over-time composition)
	//
	// Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).
	BatchPriceHistoryWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BatchPriceHistory Price snapshot series for a set of products (value-over-time composition)
	//
	// Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).
	BatchPriceHistory(ctx context.Context, body BatchPriceHistoryJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BatchPricesWithBody Current prices for a set of products (dashboard composition)
	//
	// Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).
	BatchPricesWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BatchPrices Current prices for a set of products (dashboard composition)
	//
	// Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).
	BatchPrices(ctx context.Context, body BatchPricesJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ResolveProductWithBody Find-or-create the canonical product for a search selection
	//
	// Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /products/resolve (the `ResolveProduct` operationId).
	ResolveProductWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ResolveProduct Find-or-create the canonical product for a search selection
	//
	// Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /products/resolve (the `ResolveProduct` operationId).
	ResolveProduct(ctx context.Context, body ResolveProductJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetProduct Fetch a product (read-through with per-type staleness)
	//
	// Valkey (5m) in front of Postgres; an IGDB projection older than IGDB_REFRESH_AFTER (default 720h) is refetched inline best-effort (stale data is served when the provider is down). Prices refresh on the daily cadence only, never per-read.
	//
	// Corresponds with GET /products/{productId} (the `GetProduct` operationId).
	GetProduct(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ScoreRecommendationsWithBody Score unowned games against a library summary (user-agnostic)
	//
	// The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.
	//
	// Takes any type of body and a specified content type.
	//
	// Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).
	ScoreRecommendationsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ScoreRecommendations Score unowned games against a library summary (user-agnostic)
	//
	// The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.
	//
	// Takes a body of the `application/json` content type.
	//
	// Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).
	ScoreRecommendations(ctx context.Context, body ScoreRecommendationsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SearchCatalog Discovery search (game metadata via IGDB, hardware via PriceCharting)
	//
	// Results come from a 24h per-query Valkey cache in front of the provider, never from the local catalog first (it is incomplete by construction). When the provider is down and the cache is cold, the local catalog answers a name match and the response is flagged degraded. type pc_listing searches ALL of PriceCharting (games, hardware, every category) and carries the provider's loose/cib/new prices per listing; it exists for picking exact variant listings as price sources.
	//
	// Corresponds with GET /search (the `SearchCatalog` operationId).
	SearchCatalog(ctx context.Context, params *SearchCatalogParams, reqEditors ...RequestEditorFn) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) BatchPriceHistoryWithBodyWithResponse

func (c *ClientWithResponses) BatchPriceHistoryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BatchPriceHistoryResponse, error)

BatchPriceHistoryWithBodyWithResponse Price snapshot series for a set of products (value-over-time composition)

Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).

func (*ClientWithResponses) BatchPriceHistoryWithResponse

func (c *ClientWithResponses) BatchPriceHistoryWithResponse(ctx context.Context, body BatchPriceHistoryJSONRequestBody, reqEditors ...RequestEditorFn) (*BatchPriceHistoryResponse, error)

BatchPriceHistoryWithResponse Price snapshot series for a set of products (value-over-time composition)

Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).

func (*ClientWithResponses) BatchPricesWithBodyWithResponse

func (c *ClientWithResponses) BatchPricesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BatchPricesResponse, error)

BatchPricesWithBodyWithResponse Current prices for a set of products (dashboard composition)

Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).

func (*ClientWithResponses) BatchPricesWithResponse

func (c *ClientWithResponses) BatchPricesWithResponse(ctx context.Context, body BatchPricesJSONRequestBody, reqEditors ...RequestEditorFn) (*BatchPricesResponse, error)

BatchPricesWithResponse Current prices for a set of products (dashboard composition)

Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).

func (*ClientWithResponses) CreateCommunityProductWithBodyWithResponse

func (c *ClientWithResponses) CreateCommunityProductWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateCommunityProductResponse, error)

CreateCommunityProductWithBodyWithResponse Mint a community product from an approved submission (role admin)

Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).

func (*ClientWithResponses) CreateCommunityProductWithResponse

func (c *ClientWithResponses) CreateCommunityProductWithResponse(ctx context.Context, body CreateCommunityProductJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateCommunityProductResponse, error)

CreateCommunityProductWithResponse Mint a community product from an approved submission (role admin)

Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).

func (*ClientWithResponses) DeleteProductWithResponse

func (c *ClientWithResponses) DeleteProductWithResponse(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteProductResponse, error)

DeleteProductWithResponse Delete an unmatched product and its snapshots (role admin)

The residue mop: permanently removes a product that no listing anchors, plus its price snapshots. Only unmatched products qualify - a matched product answers 409 code product_matched (clear the mapping first). This service cannot see entries; the bff verifies no entries reference the product before calling. A later resolve can re-mint the family's unmatched member - delete is cleanup, not prevention.

Returns a wrapper object for the known response body format(s).

Corresponds with DELETE /admin/products/{productId} (the `DeleteProduct` operationId).

func (*ClientWithResponses) DismissPromoteCandidateWithBodyWithResponse

func (c *ClientWithResponses) DismissPromoteCandidateWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DismissPromoteCandidateResponse, error)

DismissPromoteCandidateWithBodyWithResponse Dismiss one promote candidate permanently (role admin)

Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).

func (*ClientWithResponses) DismissPromoteCandidateWithResponse

func (c *ClientWithResponses) DismissPromoteCandidateWithResponse(ctx context.Context, productId openapi_types.UUID, body DismissPromoteCandidateJSONRequestBody, reqEditors ...RequestEditorFn) (*DismissPromoteCandidateResponse, error)

DismissPromoteCandidateWithResponse Dismiss one promote candidate permanently (role admin)

Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).

func (*ClientWithResponses) GetFxLatestWithResponse

func (c *ClientWithResponses) GetFxLatestWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetFxLatestResponse, error)

GetFxLatestWithResponse Latest USD-based exchange rates (cached, refreshed hourly)

Rates are target-units-per-USD from the ECB reference set via frankfurter.dev (embedded fixtures in stub mode). Snapshots refresh at most hourly; an upstream failure serves the last good snapshot, so only a cold cache answers 502. Rates power display-side conversion only; nothing stored depends on them.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /fx/latest (the `GetFxLatest` operationId).

func (*ClientWithResponses) GetProductWithResponse

func (c *ClientWithResponses) GetProductWithResponse(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*GetProductResponse, error)

GetProductWithResponse Fetch a product (read-through with per-type staleness)

Valkey (5m) in front of Postgres; an IGDB projection older than IGDB_REFRESH_AFTER (default 720h) is refetched inline best-effort (stale data is served when the provider is down). Prices refresh on the daily cadence only, never per-read.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /products/{productId} (the `GetProduct` operationId).

func (*ClientWithResponses) InternalNormalizeCommunityRegionsWithResponse

func (c *ClientWithResponses) InternalNormalizeCommunityRegionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*InternalNormalizeCommunityRegionsResponse, error)

InternalNormalizeCommunityRegionsWithResponse Promote free-text community product regions into the known set

Maintenance operation; the gateway never routes it. Folds every community product's curated region outside the known set (lowercase, trim) against the known values and the reviewed synonyms table - exact or synonym, never fuzzy. A community product carries no provider identity, so promotion is a plain field rewrite with no fetch arm. Guard: admin role or service token (the nightly job runs it alongside collection's platform/region levers). Idempotent and re-runnable; promoted rows leave the selection set.

Returns a wrapper object for the known response body format(s).

Corresponds with POST /internal/normalize-community-regions (the `InternalNormalizeCommunityRegions` operationId).

func (*ClientWithResponses) InternalRefreshWithResponse

func (c *ClientWithResponses) InternalRefreshWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*InternalRefreshResponse, error)

InternalRefreshWithResponse Catalog refresh trigger (CronJob)

Machine trigger for the nightly catalog refresh; the gateway never routes it. Guard: a service token (token_use=service) - operators use /admin/refresh. Answers 202 and detaches; one run at a time (409 refresh_in_progress).

Returns a wrapper object for the known response body format(s).

Corresponds with POST /internal/refresh (the `InternalRefresh` operationId).

func (*ClientWithResponses) ListCommunityProductsWithResponse

func (c *ClientWithResponses) ListCommunityProductsWithResponse(ctx context.Context, params *ListCommunityProductsParams, reqEditors ...RequestEditorFn) (*ListCommunityProductsResponse, error)

ListCommunityProductsWithResponse List community products, un-promoted only (role admin)

Every admin-minted community product (origin community): the population promote can flip to a provider identity, and delete can remove once no entry references it. Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /admin/products/community (the `ListCommunityProducts` operationId).

func (*ClientWithResponses) ListPlatformsWithResponse

func (c *ClientWithResponses) ListPlatformsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListPlatformsResponse, error)

ListPlatformsWithResponse The canonical platform catalog with alias knowledge

The IGDB platform catalog (igdb id + name) joined with the alias table - PriceCharting console spellings plus curated abbreviations (SNES, PSX, N64, ...) - sorted by name. Reference data for the custom-entry platform picker and the collection normalize-platforms lever: consumers filter and match against name + aliases and never hard-code aliases themselves. Cached 24h (the search-cache idiom); the catalog changes only when the platform sweep lands new rows. A cold catalog with the provider down is the only 502.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /platforms (the `ListPlatforms` operationId).

func (*ClientWithResponses) ListPromoteCandidatesWithResponse

func (c *ClientWithResponses) ListPromoteCandidatesWithResponse(ctx context.Context, params *ListPromoteCandidatesParams, reqEditors ...RequestEditorFn) (*ListPromoteCandidatesResponse, error)

ListPromoteCandidatesWithResponse Community products with plausible provider matches (role admin)

The promote worklist, fed by the nightly flag-never-act sweep (the refresh trigger also refreshes it): community products whose name matched a provider item at or above the never-guess threshold, strongest candidate first with _id as the tiebreak. Dismissed pairs never reappear; a different provider id for the same product still nags. product_id narrows to one product - the lookup panel's per-product view. Promotion is always a human verdict; nothing here attaches anything.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /admin/products/promote-candidates (the `ListPromoteCandidates` operationId).

func (*ClientWithResponses) ListUnmatchedProductsWithResponse

func (c *ClientWithResponses) ListUnmatchedProductsWithResponse(ctx context.Context, params *ListUnmatchedProductsParams, reqEditors ...RequestEditorFn) (*ListUnmatchedProductsResponse, error)

ListUnmatchedProductsWithResponse List unmatched products, admin-held included (role admin)

The admin worklist: every product with no PriceCharting mapping, all types, INCLUDING products held by an admin clear (each held item carries match_hold true; a deliberate clear is exactly what an admin revisits). Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /admin/products/unmatched (the `ListUnmatchedProducts` operationId).

func (*ClientWithResponses) PromoteProductWithBodyWithResponse

func (c *ClientWithResponses) PromoteProductWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PromoteProductResponse, error)

PromoteProductWithBodyWithResponse Promote a community product to provider identity in place (role admin)

Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).

func (*ClientWithResponses) PromoteProductWithResponse

func (c *ClientWithResponses) PromoteProductWithResponse(ctx context.Context, productId openapi_types.UUID, body PromoteProductJSONRequestBody, reqEditors ...RequestEditorFn) (*PromoteProductResponse, error)

PromoteProductWithResponse Promote a community product to provider identity in place (role admin)

Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).

func (*ClientWithResponses) ResolveProductWithBodyWithResponse

func (c *ClientWithResponses) ResolveProductWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ResolveProductResponse, error)

ResolveProductWithBodyWithResponse Find-or-create the canonical product for a search selection

Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/resolve (the `ResolveProduct` operationId).

func (*ClientWithResponses) ResolveProductWithResponse

func (c *ClientWithResponses) ResolveProductWithResponse(ctx context.Context, body ResolveProductJSONRequestBody, reqEditors ...RequestEditorFn) (*ResolveProductResponse, error)

ResolveProductWithResponse Find-or-create the canonical product for a search selection

Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /products/resolve (the `ResolveProduct` operationId).

func (*ClientWithResponses) ScoreRecommendationsWithBodyWithResponse

func (c *ClientWithResponses) ScoreRecommendationsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ScoreRecommendationsResponse, error)

ScoreRecommendationsWithBodyWithResponse Score unowned games against a library summary (user-agnostic)

The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).

func (*ClientWithResponses) ScoreRecommendationsWithResponse

func (c *ClientWithResponses) ScoreRecommendationsWithResponse(ctx context.Context, body ScoreRecommendationsJSONRequestBody, reqEditors ...RequestEditorFn) (*ScoreRecommendationsResponse, error)

ScoreRecommendationsWithResponse Score unowned games against a library summary (user-agnostic)

The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).

func (*ClientWithResponses) SearchCatalogWithResponse

func (c *ClientWithResponses) SearchCatalogWithResponse(ctx context.Context, params *SearchCatalogParams, reqEditors ...RequestEditorFn) (*SearchCatalogResponse, error)

SearchCatalogWithResponse Discovery search (game metadata via IGDB, hardware via PriceCharting)

Results come from a 24h per-query Valkey cache in front of the provider, never from the local catalog first (it is incomplete by construction). When the provider is down and the cache is cold, the local catalog answers a name match and the response is flagged degraded. type pc_listing searches ALL of PriceCharting (games, hardware, every category) and carries the provider's loose/cib/new prices per listing; it exists for picking exact variant listings as price sources.

Returns a wrapper object for the known response body format(s).

Corresponds with GET /search (the `SearchCatalog` operationId).

func (*ClientWithResponses) SetProductMappingWithBodyWithResponse

func (c *ClientWithResponses) SetProductMappingWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetProductMappingResponse, error)

SetProductMappingWithBodyWithResponse Correct a product's PriceCharting mapping and mark it verified (role admin)

Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).

Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).

Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).

func (*ClientWithResponses) SetProductMappingWithResponse

func (c *ClientWithResponses) SetProductMappingWithResponse(ctx context.Context, productId openapi_types.UUID, body SetProductMappingJSONRequestBody, reqEditors ...RequestEditorFn) (*SetProductMappingResponse, error)

SetProductMappingWithResponse Correct a product's PriceCharting mapping and mark it verified (role admin)

Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).

Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).

Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).

func (*ClientWithResponses) TriggerRefreshWithResponse

func (c *ClientWithResponses) TriggerRefreshWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*TriggerRefreshResponse, error)

TriggerRefreshWithResponse Trigger an immediate catalog refresh (role admin)

Starts the same refresh the daily CronJob triggers and returns 202 immediately (the refresh outlives the HTTP write timeout at polite provider rates); the runner logs its summary. 409 code refresh_in_progress when a refresh is already running.

Returns a wrapper object for the known response body format(s).

Corresponds with POST /admin/refresh (the `TriggerRefresh` operationId).

type ClientWithResponsesInterface

type ClientWithResponsesInterface interface {

	// CreateCommunityProductWithBodyWithResponse Mint a community product from an approved submission (role admin)
	//
	// Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).
	CreateCommunityProductWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CreateCommunityProductResponse, error)

	// CreateCommunityProductWithResponse Mint a community product from an approved submission (role admin)
	//
	// Creates an anchor-less product: no IGDB, no PriceCharting, origin community. Community products live outside the provider identity indexes - their curated name is their identity, and the review panel's embedded search is the dedup check (deliberately no uniqueness machinery). They never join the unmatched worklist, and they surface to users through the community lane in search. The single edition field follows the entry idiom (one "Edition or variant" note); variant stays empty - the region/edition/variant split exists only for provider hardware identity, which community products are outside of. platform_name and first_release_date store as the community facts block, retained after promotion as gap-fill.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products (the `CreateCommunityProduct` operationId).
	CreateCommunityProductWithResponse(ctx context.Context, body CreateCommunityProductJSONRequestBody, reqEditors ...RequestEditorFn) (*CreateCommunityProductResponse, error)

	// ListCommunityProductsWithResponse List community products, un-promoted only (role admin)
	//
	// Every admin-minted community product (origin community): the population promote can flip to a provider identity, and delete can remove once no entry references it. Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /admin/products/community (the `ListCommunityProducts` operationId).
	ListCommunityProductsWithResponse(ctx context.Context, params *ListCommunityProductsParams, reqEditors ...RequestEditorFn) (*ListCommunityProductsResponse, error)

	// ListPromoteCandidatesWithResponse Community products with plausible provider matches (role admin)
	//
	// The promote worklist, fed by the nightly flag-never-act sweep (the refresh trigger also refreshes it): community products whose name matched a provider item at or above the never-guess threshold, strongest candidate first with _id as the tiebreak. Dismissed pairs never reappear; a different provider id for the same product still nags. product_id narrows to one product - the lookup panel's per-product view. Promotion is always a human verdict; nothing here attaches anything.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /admin/products/promote-candidates (the `ListPromoteCandidates` operationId).
	ListPromoteCandidatesWithResponse(ctx context.Context, params *ListPromoteCandidatesParams, reqEditors ...RequestEditorFn) (*ListPromoteCandidatesResponse, error)

	// ListUnmatchedProductsWithResponse List unmatched products, admin-held included (role admin)
	//
	// The admin worklist: every product with no PriceCharting mapping, all types, INCLUDING products held by an admin clear (each held item carries match_hold true; a deliberate clear is exactly what an admin revisits). Ordered oldest updated_at first with _id as the tiebreak so offset pages are deterministic. limit defaults to 200 (max 500), offset slices the sequence, and total_count reports the full filtered count.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /admin/products/unmatched (the `ListUnmatchedProducts` operationId).
	ListUnmatchedProductsWithResponse(ctx context.Context, params *ListUnmatchedProductsParams, reqEditors ...RequestEditorFn) (*ListUnmatchedProductsResponse, error)

	// DeleteProductWithResponse Delete an unmatched product and its snapshots (role admin)
	//
	// The residue mop: permanently removes a product that no listing anchors, plus its price snapshots. Only unmatched products qualify - a matched product answers 409 code product_matched (clear the mapping first). This service cannot see entries; the bff verifies no entries reference the product before calling. A later resolve can re-mint the family's unmatched member - delete is cleanup, not prevention.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with DELETE /admin/products/{productId} (the `DeleteProduct` operationId).
	DeleteProductWithResponse(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*DeleteProductResponse, error)

	// SetProductMappingWithBodyWithResponse Correct a product's PriceCharting mapping and mark it verified (role admin)
	//
	// Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).
	SetProductMappingWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetProductMappingResponse, error)

	// SetProductMappingWithResponse Correct a product's PriceCharting mapping and mark it verified (role admin)
	//
	// Shared-catalog truth is moderated: the new mapping is validated against the provider, current prices are fetched, a snapshot is appended, and the mapping is stored verified with confidence 1.0. A null pc_product_id clears the mapping (the product becomes unmatched) and sets match_hold, so a future automated match (resolve, or the entry-side re-match) never undoes a deliberate clear; setting any mapping lifts match_hold. Identity indexes make a mapping change an identity move: when another product of the same identity (for games, the same game and platform; for hardware, the same region/edition/variant) already carries the target listing, or a clear would collide with an existing unmatched product of that identity, the answer is 409 code identity_taken, whose detail names the holding product (id and name) when the holder can be resolved. Clearing an already-unmatched product collides with nothing and simply parks it: match_hold is set, idempotently, which is the admin lever for silencing permanent worklist residue. Errors: 404 code product_not_found or unknown_pc_product; 409 code identity_taken; 502 code upstream_unavailable. 409 code product_not_provider for community products (their one path to a PriceCharting anchor is promote).
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with PUT /admin/products/{productId}/pricecharting (the `SetProductMapping` operationId).
	SetProductMappingWithResponse(ctx context.Context, productId openapi_types.UUID, body SetProductMappingJSONRequestBody, reqEditors ...RequestEditorFn) (*SetProductMappingResponse, error)

	// PromoteProductWithBodyWithResponse Promote a community product to provider identity in place (role admin)
	//
	// Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).
	PromoteProductWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PromoteProductResponse, error)

	// PromoteProductWithResponse Promote a community product to provider identity in place (role admin)
	//
	// Attaches the provider anchors and flips origin to provider atomically; the product id stays stable, so every adopter's entry upgrades through live reads with no repointing. The re-entry into the identity index adjudicates twins: when a provider product already holds the target identity the answer is 409 code identity_taken with the holder named in the detail, and the community product keeps working unpromoted (the true-merge case is deliberately not automated). The community facts block is retained as gap-fill. After the flip the product is a first-class provider citizen: a missing game listing leaves it on the unmatched worklist until the mapping fix attaches one. Errors: 404 code product_not_found, unknown_game or unknown_pc_product; 409 code product_not_community (already provider) or identity_taken; 502 code upstream_unavailable.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products/{productId}/promote (the `PromoteProduct` operationId).
	PromoteProductWithResponse(ctx context.Context, productId openapi_types.UUID, body PromoteProductJSONRequestBody, reqEditors ...RequestEditorFn) (*PromoteProductResponse, error)

	// DismissPromoteCandidateWithBodyWithResponse Dismiss one promote candidate permanently (role admin)
	//
	// Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).
	DismissPromoteCandidateWithBodyWithResponse(ctx context.Context, productId openapi_types.UUID, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DismissPromoteCandidateResponse, error)

	// DismissPromoteCandidateWithResponse Dismiss one promote candidate permanently (role admin)
	//
	// Records the (provider, provider_id) pair as dismissed and drops the matching candidate; the sweep never re-flags a dismissed pair. A different candidate for the same product still nags.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/products/{productId}/promote-candidates/dismiss (the `DismissPromoteCandidate` operationId).
	DismissPromoteCandidateWithResponse(ctx context.Context, productId openapi_types.UUID, body DismissPromoteCandidateJSONRequestBody, reqEditors ...RequestEditorFn) (*DismissPromoteCandidateResponse, error)

	// TriggerRefreshWithResponse Trigger an immediate catalog refresh (role admin)
	//
	// Starts the same refresh the daily CronJob triggers and returns 202 immediately (the refresh outlives the HTTP write timeout at polite provider rates); the runner logs its summary. 409 code refresh_in_progress when a refresh is already running.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /admin/refresh (the `TriggerRefresh` operationId).
	TriggerRefreshWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*TriggerRefreshResponse, error)

	// GetFxLatestWithResponse Latest USD-based exchange rates (cached, refreshed hourly)
	//
	// Rates are target-units-per-USD from the ECB reference set via frankfurter.dev (embedded fixtures in stub mode). Snapshots refresh at most hourly; an upstream failure serves the last good snapshot, so only a cold cache answers 502. Rates power display-side conversion only; nothing stored depends on them.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /fx/latest (the `GetFxLatest` operationId).
	GetFxLatestWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetFxLatestResponse, error)

	// InternalNormalizeCommunityRegionsWithResponse Promote free-text community product regions into the known set
	//
	// Maintenance operation; the gateway never routes it. Folds every community product's curated region outside the known set (lowercase, trim) against the known values and the reviewed synonyms table - exact or synonym, never fuzzy. A community product carries no provider identity, so promotion is a plain field rewrite with no fetch arm. Guard: admin role or service token (the nightly job runs it alongside collection's platform/region levers). Idempotent and re-runnable; promoted rows leave the selection set.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /internal/normalize-community-regions (the `InternalNormalizeCommunityRegions` operationId).
	InternalNormalizeCommunityRegionsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*InternalNormalizeCommunityRegionsResponse, error)

	// InternalRefreshWithResponse Catalog refresh trigger (CronJob)
	//
	// Machine trigger for the nightly catalog refresh; the gateway never routes it. Guard: a service token (token_use=service) - operators use /admin/refresh. Answers 202 and detaches; one run at a time (409 refresh_in_progress).
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /internal/refresh (the `InternalRefresh` operationId).
	InternalRefreshWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*InternalRefreshResponse, error)

	// ListPlatformsWithResponse The canonical platform catalog with alias knowledge
	//
	// The IGDB platform catalog (igdb id + name) joined with the alias table - PriceCharting console spellings plus curated abbreviations (SNES, PSX, N64, ...) - sorted by name. Reference data for the custom-entry platform picker and the collection normalize-platforms lever: consumers filter and match against name + aliases and never hard-code aliases themselves. Cached 24h (the search-cache idiom); the catalog changes only when the platform sweep lands new rows. A cold catalog with the provider down is the only 502.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /platforms (the `ListPlatforms` operationId).
	ListPlatformsWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*ListPlatformsResponse, error)

	// BatchPriceHistoryWithBodyWithResponse Price snapshot series for a set of products (value-over-time composition)
	//
	// Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).
	BatchPriceHistoryWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BatchPriceHistoryResponse, error)

	// BatchPriceHistoryWithResponse Price snapshot series for a set of products (value-over-time composition)
	//
	// Each requested product's snapshots inside the window, oldest first. Snapshots accumulate from the daily catalog refresh plus one initial point when a product is created or its mapping is corrected. Unknown ids and products with no points in the window are absent from the response map.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/price-history:batch (the `BatchPriceHistory` operationId).
	BatchPriceHistoryWithResponse(ctx context.Context, body BatchPriceHistoryJSONRequestBody, reqEditors ...RequestEditorFn) (*BatchPriceHistoryResponse, error)

	// BatchPricesWithBodyWithResponse Current prices for a set of products (dashboard composition)
	//
	// Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).
	BatchPricesWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BatchPricesResponse, error)

	// BatchPricesWithResponse Current prices for a set of products (dashboard composition)
	//
	// Reads straight from the catalog (the daily refresh keeps it current). Unknown product ids are absent from the response map; known-but-unmatched products appear with unmatched true and no price fields.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/prices:batch (the `BatchPrices` operationId).
	BatchPricesWithResponse(ctx context.Context, body BatchPricesJSONRequestBody, reqEditors ...RequestEditorFn) (*BatchPricesResponse, error)

	// ResolveProductWithBodyWithResponse Find-or-create the canonical product for a search selection
	//
	// Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/resolve (the `ResolveProduct` operationId).
	ResolveProductWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ResolveProductResponse, error)

	// ResolveProductWithResponse Find-or-create the canonical product for a search selection
	//
	// Idempotent: an existing product with the same identity is returned as-is. Game identity is (igdb game, platform, PriceCharting listing) - see ResolveRequest for the no-pick auto-match, the match_hint reweighting, and the manual-match pick. Creating a game product pulls the full IGDB payload into igdb_raw (reusing an already-cached payload without a provider call) and projects it onto the product. Creating a hardware product fetches the PriceCharting product and borrows IGDB platform metadata where a console mapping exists. Errors: 404 code unknown_game (IGDB id not found) or unknown_pc_product; 502 code upstream_unavailable when the needed provider cannot be reached.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /products/resolve (the `ResolveProduct` operationId).
	ResolveProductWithResponse(ctx context.Context, body ResolveProductJSONRequestBody, reqEditors ...RequestEditorFn) (*ResolveProductResponse, error)

	// GetProductWithResponse Fetch a product (read-through with per-type staleness)
	//
	// Valkey (5m) in front of Postgres; an IGDB projection older than IGDB_REFRESH_AFTER (default 720h) is refetched inline best-effort (stale data is served when the provider is down). Prices refresh on the daily cadence only, never per-read.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /products/{productId} (the `GetProduct` operationId).
	GetProductWithResponse(ctx context.Context, productId openapi_types.UUID, reqEditors ...RequestEditorFn) (*GetProductResponse, error)

	// ScoreRecommendationsWithBodyWithResponse Score unowned games against a library summary (user-agnostic)
	//
	// The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.
	//
	// Takes any type of body and a specified content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).
	ScoreRecommendationsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ScoreRecommendationsResponse, error)

	// ScoreRecommendationsWithResponse Score unowned games against a library summary (user-agnostic)
	//
	// The caller supplies the library summary; this service stores no user data. Candidates come from owned games' similar_games edges (owner weights: dropped 0.5, rating >= 8 doubles to 2.0, otherwise 1.0) plus a genre-overlap bonus, with a genre-profile fallback when edges are sparse. Owned ids are excluded. Unknown candidate metadata is batch-fetched into igdb_raw (respecting the provider rate limiter). degraded is true when provider fetches failed and candidates were skipped.
	//
	// Takes a body of the `application/json` content type, and returns a wrapper object for the known response body format(s).
	//
	// Corresponds with POST /recommendations:score (the `ScoreRecommendations` operationId).
	ScoreRecommendationsWithResponse(ctx context.Context, body ScoreRecommendationsJSONRequestBody, reqEditors ...RequestEditorFn) (*ScoreRecommendationsResponse, error)

	// SearchCatalogWithResponse Discovery search (game metadata via IGDB, hardware via PriceCharting)
	//
	// Results come from a 24h per-query Valkey cache in front of the provider, never from the local catalog first (it is incomplete by construction). When the provider is down and the cache is cold, the local catalog answers a name match and the response is flagged degraded. type pc_listing searches ALL of PriceCharting (games, hardware, every category) and carries the provider's loose/cib/new prices per listing; it exists for picking exact variant listings as price sources.
	//
	// Returns a wrapper object for the known response body format(s).
	//
	// Corresponds with GET /search (the `SearchCatalog` operationId).
	SearchCatalogWithResponse(ctx context.Context, params *SearchCatalogParams, reqEditors ...RequestEditorFn) (*SearchCatalogResponse, error)
}

ClientWithResponsesInterface is the interface specification for the client with responses above.

type CommunityProductSpec

type CommunityProductSpec = externalRef0.CommunityProductSpec

CommunityProductSpec The curated fields for approve_new; mirrors the enrichment mint request (single edition field, no variant).

type CommunityProductsPage

type CommunityProductsPage = externalRef0.CommunityProductsPage

CommunityProductsPage defines model for CommunityProductsPage.

type Conflict

type Conflict = externalRef0.Problem

Conflict defines model for Conflict.

type CreateCommunityProductJSONRequestBody

type CreateCommunityProductJSONRequestBody = CommunityProductSpec

CreateCommunityProductJSONRequestBody defines body for CreateCommunityProduct for application/json ContentType.

type CreateCommunityProductResponse

type CreateCommunityProductResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON201 the response for an HTTP 201 `application/json` response
	JSON201 *Product
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
	// Headers201 the parsed response headers for an HTTP 201 response
	Headers201 *CreateCommunityProductResponse201Headers
}

func ParseCreateCommunityProductResponse

func ParseCreateCommunityProductResponse(rsp *http.Response) (*CreateCommunityProductResponse, error)

ParseCreateCommunityProductResponse parses an HTTP response from a CreateCommunityProductWithResponse call

func (CreateCommunityProductResponse) ContentType

func (r CreateCommunityProductResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (CreateCommunityProductResponse) GetApplicationproblemJSON400

func (r CreateCommunityProductResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (CreateCommunityProductResponse) GetApplicationproblemJSON401

func (r CreateCommunityProductResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (CreateCommunityProductResponse) GetApplicationproblemJSON403

func (r CreateCommunityProductResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (CreateCommunityProductResponse) GetApplicationproblemJSONDefault

func (r CreateCommunityProductResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (CreateCommunityProductResponse) GetBody

func (r CreateCommunityProductResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (CreateCommunityProductResponse) GetJSON201

func (r CreateCommunityProductResponse) GetJSON201() *Product

GetJSON201 returns the response for an HTTP 201 `application/json` response

func (CreateCommunityProductResponse) Status

Status returns HTTPResponse.Status

func (CreateCommunityProductResponse) StatusCode

func (r CreateCommunityProductResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type CreateCommunityProductResponse201Headers

type CreateCommunityProductResponse201Headers struct {
	Location *string
}

CreateCommunityProductResponse201Headers the declared response headers of an HTTP 201 response for CreateCommunityProduct

type DeleteProductResponse

type DeleteProductResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSON409 the response for an HTTP 409 `application/problem+json` response
	ApplicationproblemJSON409 *Conflict
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseDeleteProductResponse

func ParseDeleteProductResponse(rsp *http.Response) (*DeleteProductResponse, error)

ParseDeleteProductResponse parses an HTTP response from a DeleteProductWithResponse call

func (DeleteProductResponse) ContentType

func (r DeleteProductResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DeleteProductResponse) GetApplicationproblemJSON401

func (r DeleteProductResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (DeleteProductResponse) GetApplicationproblemJSON403

func (r DeleteProductResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (DeleteProductResponse) GetApplicationproblemJSON404

func (r DeleteProductResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (DeleteProductResponse) GetApplicationproblemJSON409

func (r DeleteProductResponse) GetApplicationproblemJSON409() *Conflict

GetApplicationproblemJSON409 returns the response for an HTTP 409 `application/problem+json` response

func (DeleteProductResponse) GetApplicationproblemJSONDefault

func (r DeleteProductResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (DeleteProductResponse) GetBody

func (r DeleteProductResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (DeleteProductResponse) Status

func (r DeleteProductResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteProductResponse) StatusCode

func (r DeleteProductResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DismissCandidateRequest

type DismissCandidateRequest = externalRef0.DismissCandidateRequest

DismissCandidateRequest defines model for DismissCandidateRequest.

type DismissPromoteCandidateJSONRequestBody

type DismissPromoteCandidateJSONRequestBody = DismissCandidateRequest

DismissPromoteCandidateJSONRequestBody defines body for DismissPromoteCandidate for application/json ContentType.

type DismissPromoteCandidateResponse

type DismissPromoteCandidateResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseDismissPromoteCandidateResponse

func ParseDismissPromoteCandidateResponse(rsp *http.Response) (*DismissPromoteCandidateResponse, error)

ParseDismissPromoteCandidateResponse parses an HTTP response from a DismissPromoteCandidateWithResponse call

func (DismissPromoteCandidateResponse) ContentType

func (r DismissPromoteCandidateResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (DismissPromoteCandidateResponse) GetApplicationproblemJSON400

func (r DismissPromoteCandidateResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (DismissPromoteCandidateResponse) GetApplicationproblemJSON401

func (r DismissPromoteCandidateResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (DismissPromoteCandidateResponse) GetApplicationproblemJSON403

func (r DismissPromoteCandidateResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (DismissPromoteCandidateResponse) GetApplicationproblemJSON404

func (r DismissPromoteCandidateResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (DismissPromoteCandidateResponse) GetApplicationproblemJSONDefault

func (r DismissPromoteCandidateResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (DismissPromoteCandidateResponse) GetBody

func (r DismissPromoteCandidateResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (DismissPromoteCandidateResponse) Status

Status returns HTTPResponse.Status

func (DismissPromoteCandidateResponse) StatusCode

func (r DismissPromoteCandidateResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type FXRates

type FXRates = externalRef0.FXRates

FXRates defines model for FXRates.

type Forbidden

type Forbidden = externalRef0.Problem

Forbidden defines model for Forbidden.

type GetFxLatestResponse

type GetFxLatestResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *FXRates
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON502 the response for an HTTP 502 `application/problem+json` response
	ApplicationproblemJSON502 *UpstreamError
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseGetFxLatestResponse

func ParseGetFxLatestResponse(rsp *http.Response) (*GetFxLatestResponse, error)

ParseGetFxLatestResponse parses an HTTP response from a GetFxLatestWithResponse call

func (GetFxLatestResponse) ContentType

func (r GetFxLatestResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetFxLatestResponse) GetApplicationproblemJSON401

func (r GetFxLatestResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (GetFxLatestResponse) GetApplicationproblemJSON502

func (r GetFxLatestResponse) GetApplicationproblemJSON502() *UpstreamError

GetApplicationproblemJSON502 returns the response for an HTTP 502 `application/problem+json` response

func (GetFxLatestResponse) GetApplicationproblemJSONDefault

func (r GetFxLatestResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (GetFxLatestResponse) GetBody

func (r GetFxLatestResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (GetFxLatestResponse) GetJSON200

func (r GetFxLatestResponse) GetJSON200() *FXRates

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (GetFxLatestResponse) Status

func (r GetFxLatestResponse) Status() string

Status returns HTTPResponse.Status

func (GetFxLatestResponse) StatusCode

func (r GetFxLatestResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetProductResponse

type GetProductResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *Product
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseGetProductResponse

func ParseGetProductResponse(rsp *http.Response) (*GetProductResponse, error)

ParseGetProductResponse parses an HTTP response from a GetProductWithResponse call

func (GetProductResponse) ContentType

func (r GetProductResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (GetProductResponse) GetApplicationproblemJSON401

func (r GetProductResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (GetProductResponse) GetApplicationproblemJSON404

func (r GetProductResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (GetProductResponse) GetApplicationproblemJSONDefault

func (r GetProductResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (GetProductResponse) GetBody

func (r GetProductResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (GetProductResponse) GetJSON200

func (r GetProductResponse) GetJSON200() *Product

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (GetProductResponse) Status

func (r GetProductResponse) Status() string

Status returns HTTPResponse.Status

func (GetProductResponse) StatusCode

func (r GetProductResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type InternalError

type InternalError = externalRef0.Problem

InternalError defines model for InternalError.

type InternalNormalizeCommunityRegionsResponse

type InternalNormalizeCommunityRegionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *NormalizeResult
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseInternalNormalizeCommunityRegionsResponse

func ParseInternalNormalizeCommunityRegionsResponse(rsp *http.Response) (*InternalNormalizeCommunityRegionsResponse, error)

ParseInternalNormalizeCommunityRegionsResponse parses an HTTP response from a InternalNormalizeCommunityRegionsWithResponse call

func (InternalNormalizeCommunityRegionsResponse) ContentType

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSON401

func (r InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSON403

func (r InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSONDefault

func (r InternalNormalizeCommunityRegionsResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (InternalNormalizeCommunityRegionsResponse) GetBody

GetBody returns the raw response body bytes

func (InternalNormalizeCommunityRegionsResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (InternalNormalizeCommunityRegionsResponse) Status

Status returns HTTPResponse.Status

func (InternalNormalizeCommunityRegionsResponse) StatusCode

StatusCode returns HTTPResponse.StatusCode

type InternalRefreshResponse

type InternalRefreshResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON202 the response for an HTTP 202 `application/json` response
	JSON202 *RefreshAccepted
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON409 the response for an HTTP 409 `application/problem+json` response
	ApplicationproblemJSON409 *Conflict
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseInternalRefreshResponse

func ParseInternalRefreshResponse(rsp *http.Response) (*InternalRefreshResponse, error)

ParseInternalRefreshResponse parses an HTTP response from a InternalRefreshWithResponse call

func (InternalRefreshResponse) ContentType

func (r InternalRefreshResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (InternalRefreshResponse) GetApplicationproblemJSON401

func (r InternalRefreshResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (InternalRefreshResponse) GetApplicationproblemJSON403

func (r InternalRefreshResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (InternalRefreshResponse) GetApplicationproblemJSON409

func (r InternalRefreshResponse) GetApplicationproblemJSON409() *Conflict

GetApplicationproblemJSON409 returns the response for an HTTP 409 `application/problem+json` response

func (InternalRefreshResponse) GetApplicationproblemJSONDefault

func (r InternalRefreshResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (InternalRefreshResponse) GetBody

func (r InternalRefreshResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (InternalRefreshResponse) GetJSON202

func (r InternalRefreshResponse) GetJSON202() *RefreshAccepted

GetJSON202 returns the response for an HTTP 202 `application/json` response

func (InternalRefreshResponse) Status

func (r InternalRefreshResponse) Status() string

Status returns HTTPResponse.Status

func (InternalRefreshResponse) StatusCode

func (r InternalRefreshResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type LibraryEntry

type LibraryEntry = externalRef0.LibraryEntry

LibraryEntry defines model for LibraryEntry.

type ListCommunityProductsParams

type ListCommunityProductsParams struct {
	Limit  *int                 `form:"limit,omitempty" json:"limit,omitempty"`
	Offset *externalRef0.Offset `form:"offset,omitempty" json:"offset,omitempty"`
}

ListCommunityProductsParams defines parameters for ListCommunityProducts.

type ListCommunityProductsResponse

type ListCommunityProductsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *CommunityProductsPage
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseListCommunityProductsResponse

func ParseListCommunityProductsResponse(rsp *http.Response) (*ListCommunityProductsResponse, error)

ParseListCommunityProductsResponse parses an HTTP response from a ListCommunityProductsWithResponse call

func (ListCommunityProductsResponse) ContentType

func (r ListCommunityProductsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListCommunityProductsResponse) GetApplicationproblemJSON400

func (r ListCommunityProductsResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (ListCommunityProductsResponse) GetApplicationproblemJSON401

func (r ListCommunityProductsResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ListCommunityProductsResponse) GetApplicationproblemJSON403

func (r ListCommunityProductsResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (ListCommunityProductsResponse) GetApplicationproblemJSONDefault

func (r ListCommunityProductsResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ListCommunityProductsResponse) GetBody

func (r ListCommunityProductsResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ListCommunityProductsResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ListCommunityProductsResponse) Status

Status returns HTTPResponse.Status

func (ListCommunityProductsResponse) StatusCode

func (r ListCommunityProductsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListPlatformsResponse

type ListPlatformsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *PlatformCatalog
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON502 the response for an HTTP 502 `application/problem+json` response
	ApplicationproblemJSON502 *UpstreamError
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseListPlatformsResponse

func ParseListPlatformsResponse(rsp *http.Response) (*ListPlatformsResponse, error)

ParseListPlatformsResponse parses an HTTP response from a ListPlatformsWithResponse call

func (ListPlatformsResponse) ContentType

func (r ListPlatformsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListPlatformsResponse) GetApplicationproblemJSON401

func (r ListPlatformsResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ListPlatformsResponse) GetApplicationproblemJSON502

func (r ListPlatformsResponse) GetApplicationproblemJSON502() *UpstreamError

GetApplicationproblemJSON502 returns the response for an HTTP 502 `application/problem+json` response

func (ListPlatformsResponse) GetApplicationproblemJSONDefault

func (r ListPlatformsResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ListPlatformsResponse) GetBody

func (r ListPlatformsResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ListPlatformsResponse) GetJSON200

func (r ListPlatformsResponse) GetJSON200() *PlatformCatalog

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ListPlatformsResponse) Status

func (r ListPlatformsResponse) Status() string

Status returns HTTPResponse.Status

func (ListPlatformsResponse) StatusCode

func (r ListPlatformsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListPromoteCandidatesParams

type ListPromoteCandidatesParams struct {
	Limit     *int                 `form:"limit,omitempty" json:"limit,omitempty"`
	Offset    *externalRef0.Offset `form:"offset,omitempty" json:"offset,omitempty"`
	ProductId *openapi_types.UUID  `form:"product_id,omitempty" json:"product_id,omitempty"`
}

ListPromoteCandidatesParams defines parameters for ListPromoteCandidates.

type ListPromoteCandidatesResponse

type ListPromoteCandidatesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *PromoteCandidatesPage
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseListPromoteCandidatesResponse

func ParseListPromoteCandidatesResponse(rsp *http.Response) (*ListPromoteCandidatesResponse, error)

ParseListPromoteCandidatesResponse parses an HTTP response from a ListPromoteCandidatesWithResponse call

func (ListPromoteCandidatesResponse) ContentType

func (r ListPromoteCandidatesResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListPromoteCandidatesResponse) GetApplicationproblemJSON400

func (r ListPromoteCandidatesResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (ListPromoteCandidatesResponse) GetApplicationproblemJSON401

func (r ListPromoteCandidatesResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ListPromoteCandidatesResponse) GetApplicationproblemJSON403

func (r ListPromoteCandidatesResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (ListPromoteCandidatesResponse) GetApplicationproblemJSONDefault

func (r ListPromoteCandidatesResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ListPromoteCandidatesResponse) GetBody

func (r ListPromoteCandidatesResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ListPromoteCandidatesResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ListPromoteCandidatesResponse) Status

Status returns HTTPResponse.Status

func (ListPromoteCandidatesResponse) StatusCode

func (r ListPromoteCandidatesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListUnmatchedProductsParams

type ListUnmatchedProductsParams struct {
	Limit  *int                 `form:"limit,omitempty" json:"limit,omitempty"`
	Offset *externalRef0.Offset `form:"offset,omitempty" json:"offset,omitempty"`
}

ListUnmatchedProductsParams defines parameters for ListUnmatchedProducts.

type ListUnmatchedProductsResponse

type ListUnmatchedProductsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *UnmatchedProductsPage
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseListUnmatchedProductsResponse

func ParseListUnmatchedProductsResponse(rsp *http.Response) (*ListUnmatchedProductsResponse, error)

ParseListUnmatchedProductsResponse parses an HTTP response from a ListUnmatchedProductsWithResponse call

func (ListUnmatchedProductsResponse) ContentType

func (r ListUnmatchedProductsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ListUnmatchedProductsResponse) GetApplicationproblemJSON400

func (r ListUnmatchedProductsResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (ListUnmatchedProductsResponse) GetApplicationproblemJSON401

func (r ListUnmatchedProductsResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ListUnmatchedProductsResponse) GetApplicationproblemJSON403

func (r ListUnmatchedProductsResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (ListUnmatchedProductsResponse) GetApplicationproblemJSONDefault

func (r ListUnmatchedProductsResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ListUnmatchedProductsResponse) GetBody

func (r ListUnmatchedProductsResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ListUnmatchedProductsResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ListUnmatchedProductsResponse) Status

Status returns HTTPResponse.Status

func (ListUnmatchedProductsResponse) StatusCode

func (r ListUnmatchedProductsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type MappingRequest

type MappingRequest = externalRef0.MappingRequest

MappingRequest defines model for MappingRequest.

type NormalizeResult

type NormalizeResult = externalRef0.NormalizeResult

NormalizeResult defines model for NormalizeResult.

type NotFound

type NotFound = externalRef0.Problem

NotFound defines model for NotFound.

type PlatformCatalog

type PlatformCatalog = externalRef0.PlatformCatalog

PlatformCatalog defines model for PlatformCatalog.

type PriceHistoryRequest

type PriceHistoryRequest struct {
	// Days Window size ending now.
	Days       *int                 `json:"days,omitempty"`
	ProductIds []openapi_types.UUID `json:"product_ids"`
}

PriceHistoryRequest defines model for PriceHistoryRequest.

type PriceHistoryResponse

type PriceHistoryResponse struct {
	Series map[string][]PricePoint `json:"series"`
}

PriceHistoryResponse defines model for PriceHistoryResponse.

type PricePoint

type PricePoint struct {
	CapturedAt time.Time `json:"captured_at"`
	CibCents   *int64    `json:"cib_cents,omitempty"`
	LooseCents *int64    `json:"loose_cents,omitempty"`
	NewCents   *int64    `json:"new_cents,omitempty"`
}

PricePoint defines model for PricePoint.

type PricesBatchRequest

type PricesBatchRequest struct {
	ProductIds []openapi_types.UUID `json:"product_ids"`
}

PricesBatchRequest defines model for PricesBatchRequest.

type PricesBatchResponse

type PricesBatchResponse struct {
	Prices map[string]ProductPrices `json:"prices"`
}

PricesBatchResponse defines model for PricesBatchResponse.

type Product

type Product = externalRef0.Product

Product defines model for Product.

type ProductPrices

type ProductPrices struct {
	AsOf       *time.Time `json:"as_of,omitempty"`
	CibCents   *int64     `json:"cib_cents,omitempty"`
	LooseCents *int64     `json:"loose_cents,omitempty"`
	NewCents   *int64     `json:"new_cents,omitempty"`
	Unmatched  bool       `json:"unmatched"`
}

ProductPrices defines model for ProductPrices.

type PromoteCandidatesPage

type PromoteCandidatesPage = externalRef0.PromoteCandidatesPage

PromoteCandidatesPage defines model for PromoteCandidatesPage.

type PromoteProductJSONRequestBody

type PromoteProductJSONRequestBody = PromoteRequest

PromoteProductJSONRequestBody defines body for PromoteProduct for application/json ContentType.

type PromoteProductResponse

type PromoteProductResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *Product
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSON409 the response for an HTTP 409 `application/problem+json` response
	ApplicationproblemJSON409 *Conflict
	// ApplicationproblemJSON502 the response for an HTTP 502 `application/problem+json` response
	ApplicationproblemJSON502 *UpstreamError
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParsePromoteProductResponse

func ParsePromoteProductResponse(rsp *http.Response) (*PromoteProductResponse, error)

ParsePromoteProductResponse parses an HTTP response from a PromoteProductWithResponse call

func (PromoteProductResponse) ContentType

func (r PromoteProductResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (PromoteProductResponse) GetApplicationproblemJSON400

func (r PromoteProductResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSON401

func (r PromoteProductResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSON403

func (r PromoteProductResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSON404

func (r PromoteProductResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSON409

func (r PromoteProductResponse) GetApplicationproblemJSON409() *Conflict

GetApplicationproblemJSON409 returns the response for an HTTP 409 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSON502

func (r PromoteProductResponse) GetApplicationproblemJSON502() *UpstreamError

GetApplicationproblemJSON502 returns the response for an HTTP 502 `application/problem+json` response

func (PromoteProductResponse) GetApplicationproblemJSONDefault

func (r PromoteProductResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (PromoteProductResponse) GetBody

func (r PromoteProductResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (PromoteProductResponse) GetJSON200

func (r PromoteProductResponse) GetJSON200() *Product

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (PromoteProductResponse) Status

func (r PromoteProductResponse) Status() string

Status returns HTTPResponse.Status

func (PromoteProductResponse) StatusCode

func (r PromoteProductResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type PromoteRequest

type PromoteRequest = externalRef0.PromoteRequest

PromoteRequest Provider identity for an in-place promotion. type game products require igdb_game_id + platform_igdb_id and accept an optional pc_product_id (the listing can also arrive later via the mapping fix, once provider); console and accessory products require pc_product_id. The identity the product re-enters the index with completes with the doc's stored region/edition/variant.

type RefreshAccepted

type RefreshAccepted = externalRef0.RefreshAccepted

RefreshAccepted defines model for RefreshAccepted.

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type ResolveProductJSONRequestBody

type ResolveProductJSONRequestBody = ResolveRequest

ResolveProductJSONRequestBody defines body for ResolveProduct for application/json ContentType.

type ResolveProductResponse

type ResolveProductResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *Product
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSON502 the response for an HTTP 502 `application/problem+json` response
	ApplicationproblemJSON502 *UpstreamError
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseResolveProductResponse

func ParseResolveProductResponse(rsp *http.Response) (*ResolveProductResponse, error)

ParseResolveProductResponse parses an HTTP response from a ResolveProductWithResponse call

func (ResolveProductResponse) ContentType

func (r ResolveProductResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ResolveProductResponse) GetApplicationproblemJSON400

func (r ResolveProductResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (ResolveProductResponse) GetApplicationproblemJSON401

func (r ResolveProductResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ResolveProductResponse) GetApplicationproblemJSON404

func (r ResolveProductResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (ResolveProductResponse) GetApplicationproblemJSON502

func (r ResolveProductResponse) GetApplicationproblemJSON502() *UpstreamError

GetApplicationproblemJSON502 returns the response for an HTTP 502 `application/problem+json` response

func (ResolveProductResponse) GetApplicationproblemJSONDefault

func (r ResolveProductResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ResolveProductResponse) GetBody

func (r ResolveProductResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ResolveProductResponse) GetJSON200

func (r ResolveProductResponse) GetJSON200() *Product

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ResolveProductResponse) Status

func (r ResolveProductResponse) Status() string

Status returns HTTPResponse.Status

func (ResolveProductResponse) StatusCode

func (r ResolveProductResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ResolveRequest

type ResolveRequest = externalRef0.ResolveRequest

ResolveRequest type game requires igdb_game_id + platform_igdb_id (the platform must be one the game released on). Game identity is listing-keyed - (game, platform, PriceCharting listing) - so edition/variant on a game resolve are ignored (entry-level facts, like pc_listing); region is a matching input only (see the region property) and never joins identity. Without pc_product_id the resolve auto-matches by the game name (region-steered) through the shared listing-search cache and lands on the winning listing's product; below the confidence threshold, or with the provider down, it lands on the game+platform's single unmatched product instead - never guessed. Optional match_hint (game only, ignored elsewhere) reweights the scoring toward variant text without changing the search query; a hint nothing matches makes the resolve conservative (unmatched). With pc_product_id (a manual match: the exact listing the user chose) auto-match is skipped and the resolve finds or mints the product carrying that listing (match_confidence 1.0, verified false); unknown id answers 404 unknown_pc_product, provider failure 502 upstream_unavailable. Resolves never touch an existing product's mapping; corrections stay on the admin mapping endpoint. console/accessory require pc_product_id; region/edition/variant distinguish physical variants and are part of hardware identity. type pc_listing requires pc_product_id and mints a price-anchor product for that exact listing; region/edition/variant are ignored (the listing IS the exact variant).

type ScoreRecommendationsJSONRequestBody

type ScoreRecommendationsJSONRequestBody = ScoreRequest

ScoreRecommendationsJSONRequestBody defines body for ScoreRecommendations for application/json ContentType.

type ScoreRecommendationsResponse

type ScoreRecommendationsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *ScoreResponse
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseScoreRecommendationsResponse

func ParseScoreRecommendationsResponse(rsp *http.Response) (*ScoreRecommendationsResponse, error)

ParseScoreRecommendationsResponse parses an HTTP response from a ScoreRecommendationsWithResponse call

func (ScoreRecommendationsResponse) ContentType

func (r ScoreRecommendationsResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (ScoreRecommendationsResponse) GetApplicationproblemJSON400

func (r ScoreRecommendationsResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (ScoreRecommendationsResponse) GetApplicationproblemJSON401

func (r ScoreRecommendationsResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (ScoreRecommendationsResponse) GetApplicationproblemJSONDefault

func (r ScoreRecommendationsResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (ScoreRecommendationsResponse) GetBody

func (r ScoreRecommendationsResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (ScoreRecommendationsResponse) GetJSON200

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (ScoreRecommendationsResponse) Status

Status returns HTTPResponse.Status

func (ScoreRecommendationsResponse) StatusCode

func (r ScoreRecommendationsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ScoreRequest

type ScoreRequest struct {
	Library []LibraryEntry `json:"library"`
	Limit   *int           `json:"limit,omitempty"`
}

ScoreRequest defines model for ScoreRequest.

type ScoreResponse

type ScoreResponse = externalRef0.ScoreResponse

ScoreResponse defines model for ScoreResponse.

type SearchCatalogParams

type SearchCatalogParams struct {
	Type externalRef0.SearchResultType `form:"type" json:"type"`
	Q    externalRef0.CatalogQ         `form:"q" json:"q"`
}

SearchCatalogParams defines parameters for SearchCatalog.

type SearchCatalogResponse

type SearchCatalogResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *SearchResults
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseSearchCatalogResponse

func ParseSearchCatalogResponse(rsp *http.Response) (*SearchCatalogResponse, error)

ParseSearchCatalogResponse parses an HTTP response from a SearchCatalogWithResponse call

func (SearchCatalogResponse) ContentType

func (r SearchCatalogResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (SearchCatalogResponse) GetApplicationproblemJSON400

func (r SearchCatalogResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (SearchCatalogResponse) GetApplicationproblemJSON401

func (r SearchCatalogResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (SearchCatalogResponse) GetApplicationproblemJSONDefault

func (r SearchCatalogResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (SearchCatalogResponse) GetBody

func (r SearchCatalogResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (SearchCatalogResponse) GetJSON200

func (r SearchCatalogResponse) GetJSON200() *SearchResults

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (SearchCatalogResponse) Status

func (r SearchCatalogResponse) Status() string

Status returns HTTPResponse.Status

func (SearchCatalogResponse) StatusCode

func (r SearchCatalogResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type SearchResults

type SearchResults = externalRef0.SearchResults

SearchResults defines model for SearchResults.

type SetProductMappingJSONRequestBody

type SetProductMappingJSONRequestBody = MappingRequest

SetProductMappingJSONRequestBody defines body for SetProductMapping for application/json ContentType.

type SetProductMappingResponse

type SetProductMappingResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON200 the response for an HTTP 200 `application/json` response
	JSON200 *Product
	// ApplicationproblemJSON400 the response for an HTTP 400 `application/problem+json` response
	ApplicationproblemJSON400 *BadRequest
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON404 the response for an HTTP 404 `application/problem+json` response
	ApplicationproblemJSON404 *NotFound
	// ApplicationproblemJSON409 the response for an HTTP 409 `application/problem+json` response
	ApplicationproblemJSON409 *Conflict
	// ApplicationproblemJSON502 the response for an HTTP 502 `application/problem+json` response
	ApplicationproblemJSON502 *UpstreamError
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseSetProductMappingResponse

func ParseSetProductMappingResponse(rsp *http.Response) (*SetProductMappingResponse, error)

ParseSetProductMappingResponse parses an HTTP response from a SetProductMappingWithResponse call

func (SetProductMappingResponse) ContentType

func (r SetProductMappingResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (SetProductMappingResponse) GetApplicationproblemJSON400

func (r SetProductMappingResponse) GetApplicationproblemJSON400() *BadRequest

GetApplicationproblemJSON400 returns the response for an HTTP 400 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSON401

func (r SetProductMappingResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSON403

func (r SetProductMappingResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSON404

func (r SetProductMappingResponse) GetApplicationproblemJSON404() *NotFound

GetApplicationproblemJSON404 returns the response for an HTTP 404 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSON409

func (r SetProductMappingResponse) GetApplicationproblemJSON409() *Conflict

GetApplicationproblemJSON409 returns the response for an HTTP 409 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSON502

func (r SetProductMappingResponse) GetApplicationproblemJSON502() *UpstreamError

GetApplicationproblemJSON502 returns the response for an HTTP 502 `application/problem+json` response

func (SetProductMappingResponse) GetApplicationproblemJSONDefault

func (r SetProductMappingResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (SetProductMappingResponse) GetBody

func (r SetProductMappingResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (SetProductMappingResponse) GetJSON200

func (r SetProductMappingResponse) GetJSON200() *Product

GetJSON200 returns the response for an HTTP 200 `application/json` response

func (SetProductMappingResponse) Status

func (r SetProductMappingResponse) Status() string

Status returns HTTPResponse.Status

func (SetProductMappingResponse) StatusCode

func (r SetProductMappingResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type TriggerRefreshResponse

type TriggerRefreshResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	// JSON202 the response for an HTTP 202 `application/json` response
	JSON202 *RefreshAccepted
	// ApplicationproblemJSON401 the response for an HTTP 401 `application/problem+json` response
	ApplicationproblemJSON401 *Unauthorized
	// ApplicationproblemJSON403 the response for an HTTP 403 `application/problem+json` response
	ApplicationproblemJSON403 *Forbidden
	// ApplicationproblemJSON409 the response for an HTTP 409 `application/problem+json` response
	ApplicationproblemJSON409 *Conflict
	// ApplicationproblemJSONDefault the response for an HTTP default `application/problem+json` response
	ApplicationproblemJSONDefault *InternalError
}

func ParseTriggerRefreshResponse

func ParseTriggerRefreshResponse(rsp *http.Response) (*TriggerRefreshResponse, error)

ParseTriggerRefreshResponse parses an HTTP response from a TriggerRefreshWithResponse call

func (TriggerRefreshResponse) ContentType

func (r TriggerRefreshResponse) ContentType() string

ContentType is a convenience method to retrieve the Content-Type value from the HTTP response headers

func (TriggerRefreshResponse) GetApplicationproblemJSON401

func (r TriggerRefreshResponse) GetApplicationproblemJSON401() *Unauthorized

GetApplicationproblemJSON401 returns the response for an HTTP 401 `application/problem+json` response

func (TriggerRefreshResponse) GetApplicationproblemJSON403

func (r TriggerRefreshResponse) GetApplicationproblemJSON403() *Forbidden

GetApplicationproblemJSON403 returns the response for an HTTP 403 `application/problem+json` response

func (TriggerRefreshResponse) GetApplicationproblemJSON409

func (r TriggerRefreshResponse) GetApplicationproblemJSON409() *Conflict

GetApplicationproblemJSON409 returns the response for an HTTP 409 `application/problem+json` response

func (TriggerRefreshResponse) GetApplicationproblemJSONDefault

func (r TriggerRefreshResponse) GetApplicationproblemJSONDefault() *InternalError

GetApplicationproblemJSONDefault returns the response for an HTTP default `application/problem+json` response

func (TriggerRefreshResponse) GetBody

func (r TriggerRefreshResponse) GetBody() []byte

GetBody returns the raw response body bytes

func (TriggerRefreshResponse) GetJSON202

func (r TriggerRefreshResponse) GetJSON202() *RefreshAccepted

GetJSON202 returns the response for an HTTP 202 `application/json` response

func (TriggerRefreshResponse) Status

func (r TriggerRefreshResponse) Status() string

Status returns HTTPResponse.Status

func (TriggerRefreshResponse) StatusCode

func (r TriggerRefreshResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Unauthorized

type Unauthorized = externalRef0.Problem

Unauthorized defines model for Unauthorized.

type UnmatchedProductsPage

type UnmatchedProductsPage = externalRef0.UnmatchedProductsPage

UnmatchedProductsPage defines model for UnmatchedProductsPage.

type UpstreamError

type UpstreamError = externalRef0.Problem

UpstreamError defines model for UpstreamError.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL