package igdb import ( "fmt" ) func (g *igdb) GetParentGameID(id uint64) (uint64, error) { detail, err := g.GetGameByID(id) if err != nil { return 0, fmt.Errorf("failed to fetch IGDB app detail for parent: %d: %w", id, err) } hasParent := false if detail.ParentGame != nil && detail.ParentGame.Id != 0 { hasParent = true detail, err = g.GetGameByID(detail.ParentGame.Id) if err != nil { return 0, fmt.Errorf("failed to fetch IGDB version parent: %d: %w", detail.VersionParent.Id, err) } } for detail.VersionParent != nil && detail.VersionParent.Id != 0 { hasParent = true detail, err = g.GetGameByID(detail.VersionParent.Id) if err != nil { return 0, fmt.Errorf("failed to fetch IGDB version parent: %d: %w", detail.VersionParent.Id, err) } } if hasParent { return detail.Id, nil } return id, nil }