Documentation
¶
Overview ¶
Package common 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 ¶
- func GetSpec() (swagger *openapi3.T, err error)
- func GetSpecJSON() ([]byte, error)
- func GetSwagger() (*openapi3.T, error)deprecated
- func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error)
- type AcceptedStatus
- type ActivityVerb
- type AdminSubmission
- type AdminSubmissionsPage
- type BulkUpdateRequest
- type BulkUpdateResult
- type CatalogPlatform
- type CatalogProvider
- type CatalogQ
- type CommunityMeta
- type CommunityProductSpec
- type CommunityProductsPage
- type CompanyCredit
- type CurrencyCode
- type CurrencySpend
- type Cursor
- type Dashboard
- type DashboardPricing
- type DismissCandidateRequest
- type EntriesDeveloper
- type EntriesItemCondition
- type EntriesItemType
- type EntriesPackaging
- type EntriesPublisher
- type EntriesRegion
- type EntriesSort
- type EntriesTagId
- type Entry
- type EntryCreate
- type EntryCreateMatchProvenance
- type EntryCreateMediaType
- type EntryGroup
- type EntryList
- type EntryPlatform
- type EntrySource
- type EntryStatus
- type EntryUpdate
- type FXRates
- type GroupBy
- type Handle
- type Identities
- type Identity
- type IgdbMeta
- type ItemCondition
- type ItemType
- type LandingPage
- type LibraryEntry
- type Localization
- type MappingRequest
- type MediaType
- type NormalizeResult
- type Offset
- type Order
- type Packaging
- type PlatformCatalog
- type PlatformCount
- type PlatformId
- type PlatformRef
- type PricechartingMeta
- type PricingMode
- type Problem
- type ProblemCode
- type Product
- type ProductOrigin
- type ProductType
- type ProfileCard
- type ProfileSocialSummary
- type PromoteCandidate
- type PromoteCandidateProduct
- type PromoteCandidatesPage
- type PromoteRequest
- type Providers
- type Recommendation
- type RefreshAccepted
- type ReleaseDate
- type ReleaseRegion
- type RematchAccepted
- type ReorderRequest
- type ResnapshotResult
- type ResolveRequest
- type Role
- type SavedView
- type ScoreResponse
- type SearchResult
- type SearchResultType
- type SearchResults
- type SharedEntry
- type SharedEntryGroup
- type SharedEntryList
- type ShelfSocialSummary
- type StatusFilter
- type Submission
- type SubmissionStatus
- type Tab
- type Tag
- type TagCreate
- type TagRef
- type UnmatchedProductsPage
- type UserSearchQ
- type ValueHistory
- type ValuePoint
- type VerdictRequest
- type VerdictRequestAction
- type ViewCreate
- type Visibility
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetSpec ¶
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 ¶
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
Types ¶
type AcceptedStatus ¶
type AcceptedStatus string
AcceptedStatus defines model for AcceptedStatus.
const (
Started AcceptedStatus = "started"
)
Defines values for AcceptedStatus.
func (AcceptedStatus) Valid ¶
func (e AcceptedStatus) Valid() bool
Valid indicates whether the value is a known member of the AcceptedStatus enum.
type ActivityVerb ¶
type ActivityVerb string
ActivityVerb defines model for ActivityVerb.
const ( CommentedShelf ActivityVerb = "commented_shelf" FollowedUser ActivityVerb = "followed_user" LikedShelf ActivityVerb = "liked_shelf" PublishedShelf ActivityVerb = "published_shelf" )
Defines values for ActivityVerb.
func (ActivityVerb) Valid ¶
func (e ActivityVerb) Valid() bool
Valid indicates whether the value is a known member of the ActivityVerb enum.
type AdminSubmission ¶
type AdminSubmission struct {
// CoverUrl The entry's cover URL, live from the proposal join; prefills the curation cover field.
CoverUrl *string `json:"cover_url,omitempty"`
CreatedAt time.Time `json:"created_at"`
// Developers The entry's developer credit facts, live from the proposal join; prefill the curation form.
Developers *[]string `json:"developers,omitempty"`
DisplayName string `json:"display_name"`
Edition *string `json:"edition,omitempty"`
EntryId openapi_types.UUID `json:"entry_id"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
Id openapi_types.UUID `json:"id"`
ItemType ItemType `json:"item_type"`
PlatformName *string `json:"platform_name,omitempty"`
// Publishers The entry's publisher credit facts, live from the proposal join; prefill the curation form.
Publishers *[]string `json:"publishers,omitempty"`
Region string `json:"region"`
Status SubmissionStatus `json:"status"`
UpdatedAt time.Time `json:"updated_at"`
UserId openapi_types.UUID `json:"user_id"`
}
AdminSubmission One queue row: the submission plus the live proposal from the entry join (display_name, item_type, platform_name, region, edition, first_release_date pre-fill the curation form; entries carry no variant - the single edition field is the idiom).
type AdminSubmissionsPage ¶
type AdminSubmissionsPage struct {
Submissions []AdminSubmission `json:"submissions"`
// TotalCount Full pending count, beyond this page.
TotalCount int64 `json:"total_count"`
}
AdminSubmissionsPage defines model for AdminSubmissionsPage.
type BulkUpdateRequest ¶
type BulkUpdateRequest struct {
AddTagIds *[]openapi_types.UUID `json:"add_tag_ids,omitempty"`
EntryIds []openapi_types.UUID `json:"entry_ids"`
RemoveTagIds *[]openapi_types.UUID `json:"remove_tag_ids,omitempty"`
Status *EntryStatus `json:"status,omitempty"`
// StorageLocation Empty string clears the field; an absent field leaves it untouched (see the operation description).
StorageLocation *string `json:"storage_location,omitempty"`
}
BulkUpdateRequest Delta applied across the caller's own entries among entry_ids (foreign or unknown ids are silently not counted, same ownership-filtering posture as tag attachment). At least one of add_tag_ids / remove_tag_ids / status / storage_location must be present, else 400. storage_location's clearing rule is the OPPOSITE of the full-replacement update's: here an ABSENT storage_location leaves the field untouched, and an explicit empty string clears it.
type BulkUpdateResult ¶
type BulkUpdateResult struct {
// UpdatedCount Count of the caller's own entries among entry_ids, whether or not any targeted field actually changed.
UpdatedCount int `json:"updated_count"`
}
BulkUpdateResult defines model for BulkUpdateResult.
type CatalogPlatform ¶
type CatalogPlatform struct {
// Aliases Alternate spellings and abbreviations (compare case-insensitively).
Aliases []string `json:"aliases"`
IgdbId int64 `json:"igdb_id"`
Name string `json:"name"`
}
CatalogPlatform One platform-catalog row with its known aliases.
type CatalogProvider ¶
type CatalogProvider string
CatalogProvider defines model for CatalogProvider.
const ( Igdb CatalogProvider = "igdb" Pricecharting CatalogProvider = "pricecharting" )
Defines values for CatalogProvider.
func (CatalogProvider) Valid ¶
func (e CatalogProvider) Valid() bool
Valid indicates whether the value is a known member of the CatalogProvider enum.
type CommunityMeta ¶
type CommunityMeta struct {
// CoverUrl User-supplied cover image URL (https, never fetched server-side; the client renders it with a broken-image fallback). Served as the product cover when no provider cover is present; retained after promotion as gap-fill.
CoverUrl *string `json:"cover_url,omitempty"`
// Developers Curated developer company names, one per element; served into entry credit snapshots when the provider block carries no developer credits (per-field gap-fill).
Developers *[]string `json:"developers,omitempty"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
PlatformName *string `json:"platform_name,omitempty"`
// Publishers Curated publisher company names; same gap-fill posture as developers.
Publishers *[]string `json:"publishers,omitempty"`
// Region Curated entry-vocabulary region fact (open-world; known values ntsc_u, ntsc_j, pal, region_free, korea, brazil, china).
Region *string `json:"region,omitempty"`
}
CommunityMeta Facts curated at community mint time; retained after promotion as gap-fill (provider blocks win per-field where present).
type CommunityProductSpec ¶
type CommunityProductSpec struct {
// CoverUrl Optional https cover image URL (validated by shape only, never fetched).
CoverUrl *string `json:"cover_url,omitempty"`
// Developers Curated developer company names, one per element.
Developers *[]string `json:"developers,omitempty"`
// Edition The entry idiom's single "Edition or variant" note.
Edition *string `json:"edition,omitempty"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
Name string `json:"name"`
PlatformName *string `json:"platform_name,omitempty"`
// Publishers Curated publisher company names, one per element.
Publishers *[]string `json:"publishers,omitempty"`
// Region Curated entry-vocabulary region fact; stored under the community facts block (community.region), not the product's top-level region field.
Region *string `json:"region,omitempty"`
Type ItemType `json:"type"`
}
CommunityProductSpec The curated fields for approve_new; mirrors the enrichment mint request (single edition field, no variant).
type CommunityProductsPage ¶
type CommunityProductsPage struct {
Products []Product `json:"products"`
// TotalCount Full count of community products, beyond this page.
TotalCount int64 `json:"total_count"`
}
CommunityProductsPage defines model for CommunityProductsPage.
type CompanyCredit ¶
type CompanyCredit struct {
Developer bool `json:"developer"`
Name string `json:"name"`
Publisher bool `json:"publisher"`
}
CompanyCredit defines model for CompanyCredit.
type CurrencySpend ¶
type CurrencySpend struct {
Currency string `json:"currency"`
TotalCents int64 `json:"total_cents"`
}
CurrencySpend defines model for CurrencySpend.
type Dashboard ¶
type Dashboard struct {
ByItemType map[string]int `json:"by_item_type"`
ByPlatform []PlatformCount `json:"by_platform"`
ByStatus map[string]int `json:"by_status"`
Pricing DashboardPricing `json:"pricing"`
// Spend Sum of price_paid_cents per currency, over entries that record a price.
Spend []CurrencySpend `json:"spend"`
TotalEntries int `json:"total_entries"`
}
Dashboard defines model for Dashboard.
type DashboardPricing ¶
type DashboardPricing struct {
// Available False when enrichment was unreachable; total_value_cents is then absent.
Available bool `json:"available"`
// ExcludedEntries Entries with pricing_mode disabled.
ExcludedEntries int `json:"excluded_entries"`
PricedEntries int `json:"priced_entries"`
TotalValueCents *int64 `json:"total_value_cents,omitempty"`
// UnpricedEntries Entries whose effective product is unmatched or lacks a price for their packaging.
UnpricedEntries int `json:"unpriced_entries"`
}
DashboardPricing defines model for DashboardPricing.
type DismissCandidateRequest ¶
type DismissCandidateRequest struct {
Provider CatalogProvider `json:"provider"`
ProviderId int64 `json:"provider_id"`
}
DismissCandidateRequest defines model for DismissCandidateRequest.
type EntriesDeveloper ¶
type EntriesDeveloper = []string
EntriesDeveloper defines model for entriesDeveloper.
type EntriesItemCondition ¶
type EntriesItemCondition = []ItemCondition
EntriesItemCondition defines model for entriesItemCondition.
type EntriesItemType ¶
type EntriesItemType = []ItemType
EntriesItemType defines model for entriesItemType.
type EntriesPackaging ¶
type EntriesPackaging = []Packaging
EntriesPackaging defines model for entriesPackaging.
type EntriesPublisher ¶
type EntriesPublisher = []string
EntriesPublisher defines model for entriesPublisher.
type EntriesSort ¶
type EntriesSort string
EntriesSort defines model for entriesSort.
const ( EntriesSortBacklogRank EntriesSort = "backlog_rank" EntriesSortCreatedAt EntriesSort = "created_at" EntriesSortName EntriesSort = "name" EntriesSortPaid EntriesSort = "paid" EntriesSortPurchasedAt EntriesSort = "purchased_at" EntriesSortRating EntriesSort = "rating" EntriesSortReleaseDate EntriesSort = "release_date" EntriesSortValue EntriesSort = "value" )
Defines values for EntriesSort.
func (EntriesSort) Valid ¶
func (e EntriesSort) Valid() bool
Valid indicates whether the value is a known member of the EntriesSort enum.
type EntriesTagId ¶
type EntriesTagId = []openapi_types.UUID
EntriesTagId defines model for entriesTagId.
type Entry ¶
type Entry struct {
// BacklogRank Present exactly while status is backlog; server-generated.
BacklogRank *string `json:"backlog_rank,omitempty"`
BoxCondition *ItemCondition `json:"box_condition,omitempty"`
// CoverUrl Cover art URL. For product-backed entries it is snapshotted from the product at creation (and refreshed on adoption). Custom entries may set their own (https, shape-validated). Absent on hardware and products without art (render a placeholder).
CoverUrl *string `json:"cover_url,omitempty"`
CreatedAt time.Time `json:"created_at"`
Currency string `json:"currency"`
// CustomValueCents The user-set market value (USD cents). With pricing_mode custom it IS the entry's value; under any other mode it persists as "last custom price" memory.
CustomValueCents *int64 `json:"custom_value_cents,omitempty"`
// CustomValueEnteredCents The custom price exactly as the user typed it, in custom_value_entered_currency minor units (major units x 100, including zero-decimal currencies). Display metadata only: no aggregation reads it; custom_value_cents remains the USD value used everywhere.
CustomValueEnteredCents *int64 `json:"custom_value_entered_cents,omitempty"`
// CustomValueEnteredCurrency Currency of custom_value_entered_cents.
CustomValueEnteredCurrency *string `json:"custom_value_entered_currency,omitempty"`
// CustomValueSetAt Server-managed: stamped when custom_value_cents is first set or changes value, untouched otherwise. Read-only.
CustomValueSetAt *time.Time `json:"custom_value_set_at,omitempty"`
// Developers Developer company names snapshotted for the entry: IGDB credits where the product carries them, community curated lists as gap-fill, or the user's own facts on a custom entry. Absent when no credits are known.
Developers *[]string `json:"developers,omitempty"`
DisplayName string `json:"display_name"`
// Edition Per-copy variant note ("first print (glitched rev)", "black edition"): the idiom for variants of cataloged items is an entry on the base product with the variant recorded here.
Edition *string `json:"edition,omitempty"`
ExternalRef *string `json:"external_ref,omitempty"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
HasBox bool `json:"has_box"`
HasManual bool `json:"has_manual"`
Id openapi_types.UUID `json:"id"`
// IgdbGameId The recommendation identity: snapshotted from the entry's own product, or from the proxy target on custom game entries (owning a reproduction of X means playing X).
IgdbGameId *int64 `json:"igdb_game_id,omitempty"`
ItemCondition *ItemCondition `json:"item_condition,omitempty"`
ItemType ItemType `json:"item_type"`
// LocalizedCoverUrl Region-picked box art URL (server-derived).
LocalizedCoverUrl *string `json:"localized_cover_url,omitempty"`
// LocalizedName Region-picked native-script title (server-derived from the entry's region; absent when the region has none).
LocalizedName *string `json:"localized_name,omitempty"`
// LocalizedNameTranslit Latin transliteration of localized_name's title (server-derived).
LocalizedNameTranslit *string `json:"localized_name_translit,omitempty"`
ManualCondition *ItemCondition `json:"manual_condition,omitempty"`
MediaType MediaType `json:"media_type"`
Notes *string `json:"notes,omitempty"`
Packaging Packaging `json:"packaging"`
Pinned bool `json:"pinned"`
// Platform The entry's platform: a creation-time snapshot of the product's platform (both fields) on product-backed entries, or a user-supplied platform on custom entries - both fields when picked from the catalog or normalized by the admin lever, name-only for escape-hatch free text. Absent when neither exists.
Platform *EntryPlatform `json:"platform,omitempty"`
PricePaidCents *int64 `json:"price_paid_cents,omitempty"`
PricingMode PricingMode `json:"pricing_mode"`
PricingProductId *openapi_types.UUID `json:"pricing_product_id,omitempty"`
// ProductId Absent on custom entries.
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
// Publishers Publisher company names; same sourcing as developers.
Publishers *[]string `json:"publishers,omitempty"`
PurchasedAt *openapi_types.Date `json:"purchased_at,omitempty"`
PurchasedFrom *string `json:"purchased_from,omitempty"`
Rating *int `json:"rating,omitempty"`
Region string `json:"region"`
// RegionMismatchAckAt Null until the owner dismisses the region-mismatch banner; cleared whenever region or product changes.
RegionMismatchAckAt *time.Time `json:"region_mismatch_ack_at,omitempty"`
Source EntrySource `json:"source"`
Status EntryStatus `json:"status"`
StorageLocation *string `json:"storage_location,omitempty"`
Tags []TagRef `json:"tags"`
UpdatedAt time.Time `json:"updated_at"`
ValueCents *int64 `json:"value_cents,omitempty"`
}
Entry One physical copy. On product-backed entries the catalog fields (item_type, display_name, platform, first_release_date, igdb_game_id) are immutable creation-time snapshots from the enrichment product and product_id remains the live join key for prices. A CUSTOM entry has no product_id: its display fields are user-owned and editable, platform carries the picked or normalized identity - name-only for escape-hatch free text - when supplied, and igdb_game_id is always absent. value_cents is composed at read time from the effective pricing product and the packaging-matched price field; (or, with pricing_mode custom, taken directly from custom_value_cents, packaging-independent); it is null when pricing_mode is disabled, the product is unmatched, no price exists for the packaging, or enrichment is temporarily unreachable.
type EntryCreate ¶
type EntryCreate struct {
BoxCondition *ItemCondition `json:"box_condition,omitempty"`
// CoverUrl Custom entries only; an https cover image URL (validated by shape, never fetched).
CoverUrl *string `json:"cover_url,omitempty"`
Currency *string `json:"currency,omitempty"`
CustomValueCents *int64 `json:"custom_value_cents,omitempty"`
CustomValueEnteredCents *int64 `json:"custom_value_entered_cents,omitempty"`
CustomValueEnteredCurrency *string `json:"custom_value_entered_currency,omitempty"`
// Developers Custom entries only: developer company names, one per element. Ignored on product-backed creation, where the snapshot derives credits from the product.
Developers *[]string `json:"developers,omitempty"`
// DisplayName Custom entries only (required there).
DisplayName *string `json:"display_name,omitempty"`
// Edition Per-copy variant note; the idiom for variants of cataloged items.
Edition *string `json:"edition,omitempty"`
// FirstReleaseDate Custom entries only.
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
HasBox *bool `json:"has_box,omitempty"`
HasManual *bool `json:"has_manual,omitempty"`
ItemCondition *ItemCondition `json:"item_condition,omitempty"`
// ItemType Custom entries only (required there).
ItemType *ItemType `json:"item_type,omitempty"`
ManualCondition *ItemCondition `json:"manual_condition,omitempty"`
// MatchProvenance Whose choice the matched product is. Send user only when the add flow's manual match picked the price listing; automated repoints (region edits, the entry rematch) never touch user rows. Not accepted on update - the server stamps user when the narrow product_id re-match arm fires.
MatchProvenance *EntryCreateMatchProvenance `json:"match_provenance,omitempty"`
MediaType *EntryCreateMediaType `json:"media_type,omitempty"`
Notes *string `json:"notes,omitempty"`
Packaging Packaging `json:"packaging"`
Pinned *bool `json:"pinned,omitempty"`
// PlatformIgdbId Custom entries only; the canonical platform id from the picker (surfaces the entry in the platform filter).
PlatformIgdbId *int64 `json:"platform_igdb_id,omitempty"`
// PlatformName Custom entries only.
PlatformName *string `json:"platform_name,omitempty"`
PricePaidCents *int64 `json:"price_paid_cents,omitempty"`
PricingMode *PricingMode `json:"pricing_mode,omitempty"`
PricingProductId *openapi_types.UUID `json:"pricing_product_id,omitempty"`
// ProductId Omit for a custom (off-catalog) entry.
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
// Publishers Custom entries only; publisher company names, one per element.
Publishers *[]string `json:"publishers,omitempty"`
PurchasedAt *openapi_types.Date `json:"purchased_at,omitempty"`
PurchasedFrom *string `json:"purchased_from,omitempty"`
Rating *int `json:"rating,omitempty"`
// Region Entry region. Known values ntsc_u, ntsc_j, pal, region_free, korea, brazil and china are first-class: labeled in the UI, filterable, normalize-lever promotion targets, with release-date chains, availability rows, and localized display snapshots per region (ntsc_u and region_free render the canonical presentation by design). korea, brazil and china have no PriceCharting axis, so they price from base listings as their deliberate proxy. Any other non-empty string is stored verbatim as a display fact and prices like ntsc_u until the value graduates to the known set.
Region string `json:"region"`
Status *EntryStatus `json:"status,omitempty"`
StorageLocation *string `json:"storage_location,omitempty"`
TagIds *[]openapi_types.UUID `json:"tag_ids,omitempty"`
}
EntryCreate Product-backed: product_id comes from a prior enrichment resolve and the catalog fields are snapshotted server-side (display_name/item_type/platform_name/first_release_date must NOT be sent). Custom (no product_id): display_name and item_type are required, platform_name and first_release_date optional; pricing_mode defaults to disabled and must not be auto. media_type accepts only physical (the column already allows digital: the API widens when platform sync arrives). source is server-set manual. pricing_product_id is required when pricing_mode is proxy; box_condition requires has_box and manual_condition requires has_manual. custom_value_cents is required when pricing_mode is custom.
type EntryCreateMatchProvenance ¶
type EntryCreateMatchProvenance string
EntryCreateMatchProvenance Whose choice the matched product is. Send user only when the add flow's manual match picked the price listing; automated repoints (region edits, the entry rematch) never touch user rows. Not accepted on update - the server stamps user when the narrow product_id re-match arm fires.
const ( EntryCreateMatchProvenanceAuto EntryCreateMatchProvenance = "auto" EntryCreateMatchProvenanceUser EntryCreateMatchProvenance = "user" )
Defines values for EntryCreateMatchProvenance.
func (EntryCreateMatchProvenance) Valid ¶
func (e EntryCreateMatchProvenance) Valid() bool
Valid indicates whether the value is a known member of the EntryCreateMatchProvenance enum.
type EntryCreateMediaType ¶
type EntryCreateMediaType string
EntryCreateMediaType defines model for EntryCreate.MediaType.
const (
EntryCreateMediaTypePhysical EntryCreateMediaType = "physical"
)
Defines values for EntryCreateMediaType.
func (EntryCreateMediaType) Valid ¶
func (e EntryCreateMediaType) Valid() bool
Valid indicates whether the value is a known member of the EntryCreateMediaType enum.
type EntryGroup ¶
type EntryGroup struct {
Entries []Entry `json:"entries"`
Key string `json:"key"`
Label string `json:"label"`
}
EntryGroup defines model for EntryGroup.
type EntryList ¶
type EntryList struct {
Entries *[]Entry `json:"entries,omitempty"`
Groups *[]EntryGroup `json:"groups,omitempty"`
// PricingAvailable False when enrichment was unreachable; every value_cents is null.
PricingAvailable bool `json:"pricing_available"`
// TotalCount Size of the full filtered set, before pagination.
TotalCount int `json:"total_count"`
}
EntryList One page of the sorted, filtered sequence. Exactly one of entries/groups is present (groups when group_by was requested, partitioning this page only).
type EntryPlatform ¶
type EntryPlatform struct {
// IgdbPlatformId Absent on name-only custom entries.
IgdbPlatformId *int64 `json:"igdb_platform_id,omitempty"`
Name string `json:"name"`
}
EntryPlatform The entry's platform: a creation-time snapshot of the product's platform (both fields) on product-backed entries, or a user-supplied platform on custom entries - both fields when picked from the catalog or normalized by the admin lever, name-only for escape-hatch free text. Absent when neither exists.
type EntrySource ¶
type EntrySource string
EntrySource defines model for Entry.Source.
const ( Epic EntrySource = "epic" Manual EntrySource = "manual" Psn EntrySource = "psn" Steam EntrySource = "steam" )
Defines values for EntrySource.
func (EntrySource) Valid ¶
func (e EntrySource) Valid() bool
Valid indicates whether the value is a known member of the EntrySource enum.
type EntryStatus ¶
type EntryStatus string
EntryStatus defines model for EntryStatus.
const ( Backlog EntryStatus = "backlog" Beaten EntryStatus = "beaten" Completed EntryStatus = "completed" Dropped EntryStatus = "dropped" Playing EntryStatus = "playing" Shelved EntryStatus = "shelved" )
Defines values for EntryStatus.
func (EntryStatus) Valid ¶
func (e EntryStatus) Valid() bool
Valid indicates whether the value is a known member of the EntryStatus enum.
type EntryUpdate ¶
type EntryUpdate struct {
BoxCondition *ItemCondition `json:"box_condition,omitempty"`
// CoverUrl Custom entries only; an https cover image URL (validated by shape, never fetched).
CoverUrl *string `json:"cover_url,omitempty"`
Currency *string `json:"currency,omitempty"`
CustomValueCents *int64 `json:"custom_value_cents,omitempty"`
CustomValueEnteredCents *int64 `json:"custom_value_entered_cents,omitempty"`
CustomValueEnteredCurrency *string `json:"custom_value_entered_currency,omitempty"`
// Developers Custom entries only; developer company names, one per element (full replacement).
Developers *[]string `json:"developers,omitempty"`
// DisplayName Custom entries only (required there).
DisplayName *string `json:"display_name,omitempty"`
// Edition Per-copy variant note; the idiom for variants of cataloged items.
Edition *string `json:"edition,omitempty"`
// FirstReleaseDate Custom entries only.
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
HasBox *bool `json:"has_box,omitempty"`
HasManual *bool `json:"has_manual,omitempty"`
ItemCondition *ItemCondition `json:"item_condition,omitempty"`
ManualCondition *ItemCondition `json:"manual_condition,omitempty"`
Notes *string `json:"notes,omitempty"`
Packaging Packaging `json:"packaging"`
Pinned bool `json:"pinned"`
// PlatformIgdbId Custom entries only; the canonical platform id from the picker.
PlatformIgdbId *int64 `json:"platform_igdb_id,omitempty"`
// PlatformName Custom entries only.
PlatformName *string `json:"platform_name,omitempty"`
PricePaidCents *int64 `json:"price_paid_cents,omitempty"`
PricingMode PricingMode `json:"pricing_mode"`
PricingProductId *openapi_types.UUID `json:"pricing_product_id,omitempty"`
// ProductId Narrow re-match. Accepted only when the entry is product-backed with pricing_mode auto, its current product is a game with no price mapping, and the new product is a game of the same family (same igdb game and platform); the same id as the entry already has is a no-op. Anything else answers 400 code invalid_product_change; enrichment unreachable answers 502 code enrichment_unavailable and leaves the entry unchanged. Snapshotted display fields stay as they are.
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
// Publishers Custom entries only; publisher company names, one per element (full replacement).
Publishers *[]string `json:"publishers,omitempty"`
PurchasedAt *openapi_types.Date `json:"purchased_at,omitempty"`
PurchasedFrom *string `json:"purchased_from,omitempty"`
Rating *int `json:"rating,omitempty"`
// Region Entry region. Known values ntsc_u, ntsc_j, pal, region_free, korea, brazil and china are first-class: labeled in the UI, filterable, normalize-lever promotion targets, with release-date chains, availability rows, and localized display snapshots per region (ntsc_u and region_free render the canonical presentation by design). korea, brazil and china have no PriceCharting axis, so they price from base listings as their deliberate proxy. Any other non-empty string is stored verbatim as a display fact and prices like ntsc_u until the value graduates to the known set. On an auto-provenance game entry, a region change repoints the entry to the sibling catalog product whose listing prices that region; snapshotted display fields re-derive from it.
Region string `json:"region"`
Status EntryStatus `json:"status"`
StorageLocation *string `json:"storage_location,omitempty"`
TagIds *[]openapi_types.UUID `json:"tag_ids,omitempty"`
}
EntryUpdate Full replacement of the mutable state; an absent optional field is cleared (the edit form holds the whole entry). media_type and custom-ness are immutable. product_id accepts one narrow change - re-matching an auto-priced entry off an unmatched game product onto a product of the same game and platform (see the field description); anything else answers 400 code invalid_product_change. That re-match stamps match_provenance=user; automated region repoints only ever run on match_provenance=auto entries. On custom entries display_name is required and platform_name/first_release_date replace like any optional field; on product-backed entries all three are rejected. tag_ids replaces the tag set; absent means no tags. custom_value_cents is required when pricing_mode is custom.
type FXRates ¶
type FXRates struct {
// Base Always USD.
Base string `json:"base"`
// Date Upstream snapshot date (YYYY-MM-DD), not the fetch time.
Date string `json:"date"`
// Rates Target-units-per-USD by ISO 4217 code. USD itself is omitted (it is the base; conversion short-circuits).
Rates map[string]float64 `json:"rates"`
}
FXRates defines model for FXRates.
type GroupBy ¶
type GroupBy string
GroupBy defines model for groupBy.
type Identities ¶
type Identities struct {
Identities []Identity `json:"identities"`
}
Identities defines model for Identities.
type Identity ¶
type Identity struct {
CreatedAt time.Time `json:"created_at"`
// Email Informational; the email the provider asserted when this identity last signed in.
Email *string `json:"email,omitempty"`
Id openapi_types.UUID `json:"id"`
Provider string `json:"provider"`
}
Identity defines model for Identity.
type IgdbMeta ¶
type IgdbMeta struct {
Companies []CompanyCredit `json:"companies"`
CoverUrl *string `json:"cover_url,omitempty"`
FetchedAt time.Time `json:"fetched_at"`
// FirstReleaseDate Earliest date for the product's platform; the game-level first release when IGDB lists no dated rows for the platform.
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
Franchises []string `json:"franchises"`
GameId int64 `json:"game_id"`
Genres []string `json:"genres"`
// Localizations Per-region presentations; absent both on projections predating the feature and on games with no localizations at all (an empty slice is omitted rather than sent).
Localizations *[]Localization `json:"localizations,omitempty"`
Name string `json:"name"`
// ReleaseDates Per-region release dates for the product's platform, the earliest concrete date per region. Region values are canonical IGDB names (europe, north_america, australia, new_zealand, japan, china, asia, worldwide, korea, brazil). JP twin platforms fold into their sibling (SNES/Super Famicom, NES/Famicom).
ReleaseDates *[]ReleaseDate `json:"release_dates,omitempty"`
SimilarGames []int64 `json:"similar_games"`
Themes []string `json:"themes"`
}
IgdbMeta Projection of the raw IGDB payload held in igdb_raw; refreshed on its own cadence.
type ItemCondition ¶
type ItemCondition string
ItemCondition defines model for ItemCondition.
const ( Acceptable ItemCondition = "acceptable" Good ItemCondition = "good" Mint ItemCondition = "mint" NearMint ItemCondition = "near_mint" Poor ItemCondition = "poor" VeryGood ItemCondition = "very_good" )
Defines values for ItemCondition.
func (ItemCondition) Valid ¶
func (e ItemCondition) Valid() bool
Valid indicates whether the value is a known member of the ItemCondition enum.
type ItemType ¶
type ItemType string
ItemType defines model for ItemType.
type LandingPage ¶
type LandingPage string
LandingPage defines model for LandingPage.
const ( Collection LandingPage = "collection" Explore LandingPage = "explore" Feed LandingPage = "feed" )
Defines values for LandingPage.
func (LandingPage) Valid ¶
func (e LandingPage) Valid() bool
Valid indicates whether the value is a known member of the LandingPage enum.
type LibraryEntry ¶
type LibraryEntry struct {
IgdbGameId int64 `json:"igdb_game_id"`
Rating *int `json:"rating,omitempty"`
// Status The caller's own status vocabulary; scoring only distinguishes "dropped".
Status *string `json:"status,omitempty"`
}
LibraryEntry defines model for LibraryEntry.
type Localization ¶
type Localization struct {
CoverUrl *string `json:"cover_url,omitempty"`
Name *string `json:"name,omitempty"`
Region string `json:"region"`
Translit *string `json:"translit,omitempty"`
}
Localization One region's presentation of the game, merged from IGDB game_localizations and tagged alternative names. region is an IGDB region identifier served verbatim (ja-JP, EU, ko-KR, zh-CN, zh-TW, pt-BR; open-world - new identifiers pass through). name is the native-script title, translit its latin transliteration, cover_url the region's own box art; each is independently optional (rows are sparse - readers fall back per field).
type MappingRequest ¶
type MappingRequest struct {
// PcProductId Null clears the mapping (the product becomes unmatched and held).
PcProductId *int64 `json:"pc_product_id"`
}
MappingRequest defines model for MappingRequest.
type MediaType ¶
type MediaType string
MediaType defines model for MediaType.
Defines values for MediaType.
type NormalizeResult ¶
type NormalizeResult struct {
Normalized int `json:"normalized"`
Scanned int `json:"scanned"`
Skipped int `json:"skipped"`
}
NormalizeResult defines model for NormalizeResult.
type Packaging ¶
type Packaging string
Packaging defines model for Packaging.
Defines values for Packaging.
type PlatformCatalog ¶
type PlatformCatalog struct {
Platforms []CatalogPlatform `json:"platforms"`
}
PlatformCatalog defines model for PlatformCatalog.
type PlatformCount ¶
PlatformCount defines model for PlatformCount.
type PlatformRef ¶
type PlatformRef struct {
IgdbPlatformId int64 `json:"igdb_platform_id"`
// LogoUrl IGDB platform logo; the display fallback for products without cover art.
LogoUrl *string `json:"logo_url,omitempty"`
Name string `json:"name"`
// ReleaseRegions Distinct canonical IGDB release regions for this game on this platform (japan, north_america, europe, ...), ordered by that region's earliest release date on the platform (dateless rows last, then alphabetical). Platform-exact: JP twin platforms are NOT folded here (a Famicom row stays on Famicom), unlike the product projection's date fold - the physical release is platform-specific. Populated on game search results only; absent on product payloads and hardware results.
ReleaseRegions *[]ReleaseRegion `json:"release_regions,omitempty"`
}
PlatformRef defines model for PlatformRef.
type PricechartingMeta ¶
type PricechartingMeta struct {
AsOf time.Time `json:"as_of"`
CibCents *int64 `json:"cib_cents,omitempty"`
ConsoleName string `json:"console_name"`
LooseCents *int64 `json:"loose_cents,omitempty"`
MatchConfidence float64 `json:"match_confidence"`
NewCents *int64 `json:"new_cents,omitempty"`
PcName string `json:"pc_name"`
PcProductId int64 `json:"pc_product_id"`
Verified bool `json:"verified"`
}
PricechartingMeta The PriceCharting mapping and current prices; refreshed daily. Absent from a product when no candidate cleared the match confidence threshold (no guessing) and the mapping has not been corrected by an admin.
type PricingMode ¶
type PricingMode string
PricingMode defines model for PricingMode.
const ( PricingModeAuto PricingMode = "auto" PricingModeCustom PricingMode = "custom" PricingModeDisabled PricingMode = "disabled" PricingModeProxy PricingMode = "proxy" )
Defines values for PricingMode.
func (PricingMode) Valid ¶
func (e PricingMode) Valid() bool
Valid indicates whether the value is a known member of the PricingMode enum.
type Problem ¶
type Problem struct {
// Code The full house code vocabulary across every service (Problem is shared, and the bff relays upstream codes verbatim).
Code *ProblemCode `json:"code,omitempty"`
Detail *string `json:"detail,omitempty"`
Instance *string `json:"instance,omitempty"`
Status int `json:"status"`
Title string `json:"title"`
Type string `json:"type"`
}
Problem defines model for Problem.
type ProblemCode ¶
type ProblemCode string
ProblemCode The full house code vocabulary across every service (Problem is shared, and the bff relays upstream codes verbatim).
const ( CapExceeded ProblemCode = "cap_exceeded" CommentNotFound ProblemCode = "comment_not_found" ConflictingOrder ProblemCode = "conflicting_order" EmailUnverified ProblemCode = "email_unverified" EntryNotCustom ProblemCode = "entry_not_custom" EntryNotFound ProblemCode = "entry_not_found" Forbidden ProblemCode = "forbidden" HandleCooldown ProblemCode = "handle_cooldown" HandleTaken ProblemCode = "handle_taken" IdentityAlreadyLinked ProblemCode = "identity_already_linked" IdentityNotFound ProblemCode = "identity_not_found" IdentityTaken ProblemCode = "identity_taken" Internal ProblemCode = "internal" InvalidBody ProblemCode = "invalid_body" InvalidCallback ProblemCode = "invalid_callback" InvalidInternalToken ProblemCode = "invalid_internal_token" InvalidParam ProblemCode = "invalid_param" InvalidProductChange ProblemCode = "invalid_product_change" InvalidRefresh ProblemCode = "invalid_refresh" InvalidState ProblemCode = "invalid_state" InvalidToken ProblemCode = "invalid_token" LastIdentity ProblemCode = "last_identity" LinkEmailUnverified ProblemCode = "link_email_unverified" LinkFailed ProblemCode = "link_failed" MissingToken ProblemCode = "missing_token" NotFound ProblemCode = "not_found" NotInBacklog ProblemCode = "not_in_backlog" NotReady ProblemCode = "not_ready" OriginForbidden ProblemCode = "origin_forbidden" ProductMatched ProblemCode = "product_matched" ProductNotCommunity ProblemCode = "product_not_community" ProductNotFound ProblemCode = "product_not_found" ProductNotProvider ProblemCode = "product_not_provider" ProductReferenced ProblemCode = "product_referenced" ProfileNotFound ProblemCode = "profile_not_found" ProviderError ProblemCode = "provider_error" RefreshInProgress ProblemCode = "refresh_in_progress" RefreshReused ProblemCode = "refresh_reused" RematchInProgress ProblemCode = "rematch_in_progress" SelfFollow ProblemCode = "self_follow" ShelfNotFound ProblemCode = "shelf_not_found" SubmissionNotFound ProblemCode = "submission_not_found" SubmissionPending ProblemCode = "submission_pending" SubmissionRateLimited ProblemCode = "submission_rate_limited" SubmissionResolved ProblemCode = "submission_resolved" TagCapExceeded ProblemCode = "tag_cap_exceeded" TagExists ProblemCode = "tag_exists" TagNotFound ProblemCode = "tag_not_found" TooManyPendingSubmissions ProblemCode = "too_many_pending_submissions" Unauthenticated ProblemCode = "unauthenticated" UnknownFixture ProblemCode = "unknown_fixture" UnknownGame ProblemCode = "unknown_game" UnknownPcProduct ProblemCode = "unknown_pc_product" UnknownPricingProduct ProblemCode = "unknown_pricing_product" UnknownProduct ProblemCode = "unknown_product" UnknownProvider ProblemCode = "unknown_provider" UpstreamError ProblemCode = "upstream_error" UserNotFound ProblemCode = "user_not_found" UserServiceError ProblemCode = "user_service_error" ViewExists ProblemCode = "view_exists" ViewNotFound ProblemCode = "view_not_found" )
Defines values for ProblemCode.
func (ProblemCode) Valid ¶
func (e ProblemCode) Valid() bool
Valid indicates whether the value is a known member of the ProblemCode enum.
type Product ¶
type Product struct {
// Community Facts curated at community mint time; retained after promotion as gap-fill (provider blocks win per-field where present).
Community *CommunityMeta `json:"community,omitempty"`
CreatedAt time.Time `json:"created_at"`
Edition *string `json:"edition,omitempty"`
Id openapi_types.UUID `json:"id"`
// Igdb Projection of the raw IGDB payload held in igdb_raw; refreshed on its own cadence.
Igdb *IgdbMeta `json:"igdb,omitempty"`
// MatchHold Present true when an admin clear holds this product's mapping against a future automated match (resolve, or the entry-side re-match).
MatchHold *bool `json:"match_hold,omitempty"`
Name string `json:"name"`
// Origin Emitted only for admin-minted community products (absent means provider-identified). Community products live outside the provider identity indexes; their curated name is their identity.
Origin *ProductOrigin `json:"origin,omitempty"`
Platform *PlatformRef `json:"platform,omitempty"`
// Pricecharting The PriceCharting mapping and current prices; refreshed daily. Absent from a product when no candidate cleared the match confidence threshold (no guessing) and the mapping has not been corrected by an admin.
Pricecharting *PricechartingMeta `json:"pricecharting,omitempty"`
// Region Provider hardware identity fact; community products carry their region under community.region instead.
Region *string `json:"region,omitempty"`
Type ProductType `json:"type"`
UpdatedAt time.Time `json:"updated_at"`
Variant *string `json:"variant,omitempty"`
}
Product defines model for Product.
type ProductOrigin ¶
type ProductOrigin string
ProductOrigin defines model for ProductOrigin.
const (
Community ProductOrigin = "community"
)
Defines values for ProductOrigin.
func (ProductOrigin) Valid ¶
func (e ProductOrigin) Valid() bool
Valid indicates whether the value is a known member of the ProductOrigin enum.
type ProductType ¶
type ProductType string
ProductType defines model for ProductType.
const ( ProductTypeAccessory ProductType = "accessory" ProductTypeConsole ProductType = "console" ProductTypeGame ProductType = "game" ProductTypePcListing ProductType = "pc_listing" )
Defines values for ProductType.
func (ProductType) Valid ¶
func (e ProductType) Valid() bool
Valid indicates whether the value is a known member of the ProductType enum.
type ProfileCard ¶
type ProfileCard struct {
AvatarUrl *string `json:"avatar_url,omitempty"`
Handle Handle `json:"handle"`
ProfileVisibility Visibility `json:"profile_visibility"`
UserId openapi_types.UUID `json:"user_id"`
}
ProfileCard The cross-user projection of a user. Never email, never roles.
type ProfileSocialSummary ¶
type ProfileSocialSummary struct {
FollowerCount int `json:"follower_count"`
FollowingCount int `json:"following_count"`
ViewerFollows bool `json:"viewer_follows"`
}
ProfileSocialSummary defines model for ProfileSocialSummary.
type PromoteCandidate ¶
type PromoteCandidate struct {
FoundAt time.Time `json:"found_at"`
Name string `json:"name"`
Provider CatalogProvider `json:"provider"`
ProviderId int64 `json:"provider_id"`
Score float64 `json:"score"`
}
PromoteCandidate defines model for PromoteCandidate.
type PromoteCandidateProduct ¶
type PromoteCandidateProduct struct {
Candidates []PromoteCandidate `json:"candidates"`
Product Product `json:"product"`
}
PromoteCandidateProduct defines model for PromoteCandidateProduct.
type PromoteCandidatesPage ¶
type PromoteCandidatesPage struct {
Products []PromoteCandidateProduct `json:"products"`
// TotalCount Full count of flagged community products.
TotalCount int64 `json:"total_count"`
}
PromoteCandidatesPage defines model for PromoteCandidatesPage.
type PromoteRequest ¶
type PromoteRequest struct {
IgdbGameId *int64 `json:"igdb_game_id,omitempty"`
PcProductId *int64 `json:"pc_product_id,omitempty"`
PlatformIgdbId *int64 `json:"platform_igdb_id,omitempty"`
}
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 Providers ¶
type Providers struct {
// Providers Subset of: google, twitch, dev
Providers []string `json:"providers"`
}
Providers defines model for Providers.
type Recommendation ¶
type Recommendation struct {
CoverUrl *string `json:"cover_url,omitempty"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
Genres []string `json:"genres"`
IgdbGameId int64 `json:"igdb_game_id"`
Name string `json:"name"`
Score float64 `json:"score"`
}
Recommendation defines model for Recommendation.
type RefreshAccepted ¶
type RefreshAccepted struct {
Status AcceptedStatus `json:"status"`
}
RefreshAccepted defines model for RefreshAccepted.
type ReleaseDate ¶
type ReleaseDate struct {
Date openapi_types.Date `json:"date"`
Region ReleaseRegion `json:"region"`
}
ReleaseDate defines model for ReleaseDate.
type ReleaseRegion ¶
type ReleaseRegion string
ReleaseRegion defines model for ReleaseRegion.
const ( Asia ReleaseRegion = "asia" Australia ReleaseRegion = "australia" Brazil ReleaseRegion = "brazil" China ReleaseRegion = "china" Europe ReleaseRegion = "europe" Japan ReleaseRegion = "japan" Korea ReleaseRegion = "korea" NewZealand ReleaseRegion = "new_zealand" NorthAmerica ReleaseRegion = "north_america" Worldwide ReleaseRegion = "worldwide" )
Defines values for ReleaseRegion.
func (ReleaseRegion) Valid ¶
func (e ReleaseRegion) Valid() bool
Valid indicates whether the value is a known member of the ReleaseRegion enum.
type RematchAccepted ¶
type RematchAccepted struct {
Status AcceptedStatus `json:"status"`
}
RematchAccepted defines model for RematchAccepted.
type ReorderRequest ¶
type ReorderRequest struct {
AfterId *openapi_types.UUID `json:"after_id,omitempty"`
BeforeId *openapi_types.UUID `json:"before_id,omitempty"`
}
ReorderRequest Neighbor entry ids around the drop slot; null marks a list edge. Both null is invalid.
type ResnapshotResult ¶
type ResnapshotResult struct {
EntriesUpdated int `json:"entries_updated"`
ProductsFailed int `json:"products_failed"`
ProductsSeen int `json:"products_seen"`
}
ResnapshotResult defines model for ResnapshotResult.
type ResolveRequest ¶
type ResolveRequest struct {
Edition *string `json:"edition,omitempty"`
IgdbGameId *int64 `json:"igdb_game_id,omitempty"`
MatchHint *string `json:"match_hint,omitempty"`
PcProductId *int64 `json:"pc_product_id,omitempty"`
PlatformIgdbId *int64 `json:"platform_igdb_id,omitempty"`
// Region For console/accessory: part of hardware identity, distinguishing physical variants. For game: a matching input only - the entry region (ntsc_u, ntsc_j, pal, region_free, korea, brazil, china) steers which PriceCharting listing auto-match lands on (JP and PAL listings live under region-prefixed or JP-named console axes; korea, brazil and china have no provider axis and match like ntsc_u) and is never stored on the product; ignored when pc_product_id is present; unknown values behave like ntsc_u. Ignored for pc_listing.
Region *string `json:"region,omitempty"`
Type ProductType `json:"type"`
Variant *string `json:"variant,omitempty"`
}
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 SavedView ¶
type SavedView struct {
CreatedAt time.Time `json:"created_at"`
Id openapi_types.UUID `json:"id"`
Name string `json:"name"`
Params map[string]interface{} `json:"params"`
// PublishedAt Stamped on each transition into listed.
PublishedAt *time.Time `json:"published_at,omitempty"`
// Slug URL slug derived from the name (underscore transform); unique per user on its folded key.
Slug string `json:"slug"`
UpdatedAt time.Time `json:"updated_at"`
Visibility Visibility `json:"visibility"`
}
SavedView defines model for SavedView.
type ScoreResponse ¶
type ScoreResponse struct {
// Degraded True when candidate metadata fetches failed and some candidates were skipped.
Degraded bool `json:"degraded"`
Recommendations []Recommendation `json:"recommendations"`
}
ScoreResponse defines model for ScoreResponse.
type SearchResult ¶
type SearchResult struct {
Category *string `json:"category,omitempty"`
CibCents *int64 `json:"cib_cents,omitempty"`
ConsoleName *string `json:"console_name,omitempty"`
CoverUrl *string `json:"cover_url,omitempty"`
// Developers Community rows only - the curated developer names, for based-add prefill.
Developers *[]string `json:"developers,omitempty"`
FirstReleaseDate *openapi_types.Date `json:"first_release_date,omitempty"`
IgdbGameId *int64 `json:"igdb_game_id,omitempty"`
ItemType *ItemType `json:"item_type,omitempty"`
// Localizations Per-region presentations of a game result (games only).
Localizations *[]Localization `json:"localizations,omitempty"`
LooseCents *int64 `json:"loose_cents,omitempty"`
// MatchedRegion Set when the query matched a region's localized name or transliteration rather than the canonical name: that bundle's region identifier. Clients may present the region's data and preselect a matching entry region. Absent on canonical-name matches, hardware, pc_listing, and community results.
MatchedRegion *string `json:"matched_region,omitempty"`
Name string `json:"name"`
NewCents *int64 `json:"new_cents,omitempty"`
// Origin Marks an interleaved community result (admin-minted, anchor-less); absent on provider results. Community results carry product_id + item_type + platform_name for the pick, community.cover_url as cover_url, and community.region as region. They are scored against the query by name similarity and merged into results by descending score (a provider result precedes a community result of equal score), capped at 10, for game and hardware searches only (never pc_listing). The provider cache stores provider results only - community items attach fresh on every search.
Origin *ProductOrigin `json:"origin,omitempty"`
PcProductId *int64 `json:"pc_product_id,omitempty"`
PlatformName *string `json:"platform_name,omitempty"`
Platforms *[]PlatformRef `json:"platforms,omitempty"`
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
// Publishers Community rows only - the curated publisher names, for based-add prefill.
Publishers *[]string `json:"publishers,omitempty"`
// Region Community rows only - the community facts region, entry vocabulary.
Region *string `json:"region,omitempty"`
Type SearchResultType `json:"type"`
}
SearchResult Flat result with a type discriminator. Game results carry the igdb_* fields; hardware results carry the pc_* fields plus the PriceCharting category (Systems, Controllers, Accessories). pc_listing results carry the pc_* fields, the PriceCharting category (empty when the provider lists none), and the standard per-listing loose/cib/new prices so variant prints are tellable apart.
type SearchResultType ¶
type SearchResultType string
SearchResultType defines model for SearchResultType.
const ( SearchResultTypeGame SearchResultType = "game" SearchResultTypeHardware SearchResultType = "hardware" SearchResultTypePcListing SearchResultType = "pc_listing" )
Defines values for SearchResultType.
func (SearchResultType) Valid ¶
func (e SearchResultType) Valid() bool
Valid indicates whether the value is a known member of the SearchResultType enum.
type SearchResults ¶
type SearchResults struct {
// Degraded True when the provider was unreachable and the local catalog answered instead.
Degraded bool `json:"degraded"`
Results []SearchResult `json:"results"`
}
SearchResults defines model for SearchResults.
type SharedEntry ¶
type SharedEntry struct {
LocalizedCoverUrl *string `json:"localized_cover_url,omitempty"`
LocalizedName *string `json:"localized_name,omitempty"`
// LocalizedNameTranslit Latin transliteration of localized_name's title (server-derived).
// Platform The entry's platform: a creation-time snapshot of the product's platform (both fields) on product-backed entries, or a user-supplied platform on custom entries - both fields when picked from the catalog or normalized by the admin lever, name-only for escape-hatch free text. Absent when neither exists.
}
SharedEntry The cross-user entry projection - a strict whitelist. No money fields (price paid, values, currency, purchase provenance, pricing mode) and no personal fields (status, rating, notes, location, backlog rank, external refs) may ever be added here without a deliberate privacy decision.
type SharedEntryGroup ¶
type SharedEntryGroup struct {
}
SharedEntryGroup defines model for SharedEntryGroup.
type SharedEntryList ¶
type SharedEntryList struct {
}
SharedEntryList Exactly one of entries/groups is present (groups when the stored params group).
type ShelfSocialSummary ¶
type ShelfSocialSummary struct {
// CommentCount Live comments only.
CommentCount int `json:"comment_count"`
LikeCount int `json:"like_count"`
ShelfId openapi_types.UUID `json:"shelf_id"`
ViewerLikes bool `json:"viewer_likes"`
}
ShelfSocialSummary defines model for ShelfSocialSummary.
type Submission ¶
type Submission struct {
CreatedAt time.Time `json:"created_at"`
EntryId openapi_types.UUID `json:"entry_id"`
Id openapi_types.UUID `json:"id"`
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
RejectReason *string `json:"reject_reason,omitempty"`
// ResolutionAckAt When the submitter acknowledged an approved verdict (closed the approval banner). Absent until acknowledged.
ResolutionAckAt *time.Time `json:"resolution_ack_at,omitempty"`
ReviewedAt *time.Time `json:"reviewed_at,omitempty"`
Status SubmissionStatus `json:"status"`
UpdatedAt time.Time `json:"updated_at"`
}
Submission One catalog-submission lifecycle row for an entry. Rows persist as history (rejected and cancelled included; the rolling creation cap counts every attempt); deleting the entry removes them with it. product_id is the verdict's resolved product - recorded before adoption so an approve_new retry never mints twice.
type SubmissionStatus ¶
type SubmissionStatus string
SubmissionStatus defines model for SubmissionStatus.
const ( Approved SubmissionStatus = "approved" Cancelled SubmissionStatus = "cancelled" Pending SubmissionStatus = "pending" Rejected SubmissionStatus = "rejected" )
Defines values for SubmissionStatus.
func (SubmissionStatus) Valid ¶
func (e SubmissionStatus) Valid() bool
Valid indicates whether the value is a known member of the SubmissionStatus enum.
type Tag ¶
type Tag struct {
EntryCount int `json:"entry_count"`
Id openapi_types.UUID `json:"id"`
Name string `json:"name"`
}
Tag defines model for Tag.
type TagCreate ¶
type TagCreate struct {
Name string `json:"name"`
}
TagCreate defines model for TagCreate.
type TagRef ¶
type TagRef struct {
Id openapi_types.UUID `json:"id"`
Name string `json:"name"`
}
TagRef A tag as embedded on an entry (no usage count).
type UnmatchedProductsPage ¶
type UnmatchedProductsPage struct {
Products []Product `json:"products"`
// TotalCount Full count of unmatched products, beyond this page.
TotalCount int64 `json:"total_count"`
}
UnmatchedProductsPage defines model for UnmatchedProductsPage.
type ValueHistory ¶
type ValueHistory struct {
// Available False when enrichment was unreachable; points is then empty.
Available bool `json:"available"`
Points []ValuePoint `json:"points"`
}
ValueHistory defines model for ValueHistory.
type ValuePoint ¶
type ValuePoint struct {
Date openapi_types.Date `json:"date"`
ValueCents int64 `json:"value_cents"`
}
ValuePoint defines model for ValuePoint.
type VerdictRequest ¶
type VerdictRequest struct {
Action VerdictRequestAction `json:"action"`
// Product The curated fields for approve_new; mirrors the enrichment mint request (single edition field, no variant).
Product *CommunityProductSpec `json:"product,omitempty"`
ProductId *openapi_types.UUID `json:"product_id,omitempty"`
Reason *string `json:"reason,omitempty"`
}
VerdictRequest One admin verdict. approve_new requires product; approve_existing requires product_id; reject requires reason.
type VerdictRequestAction ¶
type VerdictRequestAction string
VerdictRequestAction defines model for VerdictRequest.Action.
const ( ApproveExisting VerdictRequestAction = "approve_existing" ApproveNew VerdictRequestAction = "approve_new" Reject VerdictRequestAction = "reject" )
Defines values for VerdictRequestAction.
func (VerdictRequestAction) Valid ¶
func (e VerdictRequestAction) Valid() bool
Valid indicates whether the value is a known member of the VerdictRequestAction enum.
type ViewCreate ¶
type ViewCreate struct {
Name string `json:"name"`
// Params Opaque frontend view state; at most 8192 marshaled bytes.
Params map[string]interface{} `json:"params"`
Visibility *Visibility `json:"visibility,omitempty"`
}
ViewCreate defines model for ViewCreate.
type Visibility ¶
type Visibility string
Visibility defines model for Visibility.
const ( Listed Visibility = "listed" Private Visibility = "private" Unlisted Visibility = "unlisted" )
Defines values for Visibility.
func (Visibility) Valid ¶
func (e Visibility) Valid() bool
Valid indicates whether the value is a known member of the Visibility enum.