// Package docs Code generated by swaggo/swag. DO NOT EDIT package docs import "github.com/swaggo/swag" const docTemplate = `{ "schemes": {{ marshal .Schemes }}, "swagger": "2.0", "info": { "description": "{{escape .Description}}", "title": "{{.Title}}", "contact": {}, "version": "{{.Version}}" }, "host": "{{.Host}}", "basePath": "{{.BasePath}}", "paths": { "/api/games": { "get": { "description": "Returns a paginated list of games with optional filters and included associations.", "produces": [ "application/json" ], "tags": [ "Games" ], "summary": "Get game data", "parameters": [ { "type": "string", "description": "Filter by date (YYYY-MM-DD)", "name": "date", "in": "query" }, { "type": "string", "description": "Filter by team abbreviation (e.g., LAL)", "name": "team", "in": "query" }, { "type": "string", "description": "Filter by a specific Game ID", "name": "gameId", "in": "query" }, { "type": "boolean", "description": "Filter for playoff games", "name": "isPlayoff", "in": "query" }, { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "pageSize", "in": "query" }, { "type": "string", "default": "date", "description": "Field to sort by (e.g., date)", "name": "sortBy", "in": "query" }, { "type": "boolean", "default": false, "description": "Sort ascending", "name": "ascending", "in": "query" }, { "type": "string", "description": "Comma-separated list of associations to include (e.g., lineScores,playerGameBasicStats,teamGameAdvStats)", "name": "include", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/controllers.GamesResponse" } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/api/playeradvancedstats": { "get": { "description": "Returns filtered and paginated player advanced stats", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PlayerStats" ], "summary": "Get player advanced stats", "parameters": [ { "type": "integer", "description": "Season (e.g., 2025)", "name": "season", "in": "query" }, { "type": "string", "description": "Team abbreviation (e.g., MIL)", "name": "team", "in": "query" }, { "type": "string", "description": "Player ID (e.g., greenaj01)", "name": "playerId", "in": "query" }, { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "pageSize", "in": "query" }, { "type": "string", "default": "winShares", "description": "Field to sort by", "name": "sortBy", "in": "query" }, { "type": "boolean", "default": false, "description": "Sort ascending", "name": "ascending", "in": "query" }, { "type": "boolean", "description": "Whether playoffs?", "name": "isPlayoff", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/controllers.AdvancedStatsResponse" } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } }, "x-order": 2 } }, "/api/playershotchart": { "get": { "description": "Returns a paginated list of shot-chart points, optionally filtered by various parameters.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PlayerShotChart" ], "summary": "Get shot-chart data", "parameters": [ { "type": "integer", "description": "Page number for pagination (defaults to 1)", "name": "page", "in": "query" }, { "type": "string", "description": "Player ID (e.g., hardeja01)", "name": "playerId", "in": "query" }, { "type": "integer", "description": "Season (e.g., 2023)", "name": "season", "in": "query" }, { "type": "string", "description": "Game date (e.g., Oct 17, 2018)", "name": "date", "in": "query" }, { "type": "string", "description": "Quarter (e.g., 1st Qtr)", "name": "qtr", "in": "query" }, { "type": "boolean", "description": "Shot result (true for made, false for missed)", "name": "result", "in": "query" }, { "type": "string", "description": "Shot type (e.g., 2-pointer)", "name": "shot_type", "in": "query" }, { "type": "string", "description": "Opponent team (e.g., NOP)", "name": "opponent", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/models.PlayerShotChart" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } }, "x-order": 3 } }, "/api/playertotals": { "get": { "description": "Filter and paginate player totals", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PlayerTotals" ], "summary": "Get player total stats", "parameters": [ { "type": "integer", "description": "Season (e.g. 2000)", "name": "season", "in": "query" }, { "type": "string", "description": "Team abbreviation (e.g. LAL)", "name": "team", "in": "query" }, { "type": "string", "description": "Player ID (e.g. greenac01)", "name": "playerId", "in": "query" }, { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "pageSize", "in": "query" }, { "type": "string", "description": "Field to sort by (e.g. points, assists)", "name": "sortBy", "in": "query" }, { "type": "boolean", "description": "Sort ascending (default false)", "name": "ascending", "in": "query" }, { "type": "boolean", "description": "Whether the stats are for playoffs", "name": "isPlayoff", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } }, "x-order": 1 } } }, "definitions": { "controllers.AdvancedStatsResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/models.PlayerAdvancedStat" } }, "pagination": { "type": "object", "properties": { "page": { "type": "integer" }, "pageSize": { "type": "integer" }, "pages": { "type": "integer" }, "total": { "type": "integer" } } } } }, "controllers.GameResponseDTO": { "type": "object", "properties": { "arena": { "type": "string" }, "boxScoreUrl": { "type": "string" }, "date": { "type": "string" }, "gameDuration": { "type": "string" }, "gameId": { "type": "string" }, "homePts": { "type": "integer" }, "homeTeam": { "type": "string" }, "id": { "type": "integer" }, "isPlayoff": { "type": "boolean" }, "lineScores": { "type": "array", "items": { "$ref": "#/definitions/controllers.LineScoreDTO" } }, "playerGameAdvStats": { "type": "array", "items": { "$ref": "#/definitions/controllers.PlayerGameAdvStatDTO" } }, "playerGameBasicStats": { "type": "array", "items": { "$ref": "#/definitions/controllers.PlayerGameBasicStatDTO" } }, "startTimeET": { "type": "string" }, "teamGameAdvStats": { "type": "array", "items": { "$ref": "#/definitions/controllers.TeamGameAdvStatDTO" } }, "teamGameBasicStats": { "type": "array", "items": { "$ref": "#/definitions/controllers.TeamGameBasicStatDTO" } }, "visitorPts": { "type": "integer" }, "visitorTeam": { "type": "string" } } }, "controllers.GamesResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/controllers.GameResponseDTO" } }, "pagination": { "type": "object", "properties": { "page": { "type": "integer" }, "pageSize": { "type": "integer" }, "pages": { "type": "integer" }, "total": { "type": "integer" } } } } }, "controllers.LineScoreDTO": { "type": "object", "properties": { "ot1": { "type": "integer" }, "ot2": { "type": "integer" }, "ot3": { "type": "integer" }, "q1": { "type": "integer" }, "q2": { "type": "integer" }, "q3": { "type": "integer" }, "q4": { "type": "integer" }, "team": { "description": "Abbreviation", "type": "string" }, "total": { "type": "integer" } } }, "controllers.PlayerGameAdvStatDTO": { "type": "object", "properties": { "astPercent": { "type": "number" }, "blkPercent": { "type": "number" }, "bpm": { "type": "number" }, "dRtg": { "type": "integer" }, "drbPercent": { "type": "number" }, "efgPercent": { "type": "number" }, "fTr": { "type": "number" }, "mp": { "type": "string" }, "oRtg": { "type": "integer" }, "orbPercent": { "type": "number" }, "playerId": { "type": "string" }, "playerName": { "type": "string" }, "stlPercent": { "type": "number" }, "team": { "description": "Abbreviation", "type": "string" }, "threePAr": { "type": "number" }, "tovPercent": { "type": "number" }, "trbPercent": { "type": "number" }, "tsPercent": { "type": "number" }, "usgPercent": { "type": "number" } } }, "controllers.PlayerGameBasicStatDTO": { "type": "object", "properties": { "ast": { "type": "integer" }, "blk": { "type": "integer" }, "drb": { "type": "integer" }, "fg": { "type": "integer" }, "fgPercent": { "type": "number" }, "fga": { "type": "integer" }, "ft": { "type": "integer" }, "ftPercent": { "type": "number" }, "fta": { "type": "integer" }, "gmSc": { "type": "number" }, "mp": { "type": "string" }, "orb": { "type": "integer" }, "pf": { "type": "integer" }, "playerId": { "type": "string" }, "playerName": { "type": "string" }, "plusMinus": { "type": "integer" }, "pts": { "type": "integer" }, "status": { "type": "string" }, "stl": { "type": "integer" }, "team": { "description": "Abbreviation", "type": "string" }, "threeP": { "type": "integer" }, "threePPercent": { "type": "number" }, "threePa": { "type": "integer" }, "tov": { "type": "integer" }, "trb": { "type": "integer" } } }, "controllers.TeamGameAdvStatDTO": { "type": "object", "properties": { "astPercent": { "type": "number" }, "blkPercent": { "type": "number" }, "dRtg": { "type": "number" }, "drbPercent": { "type": "number" }, "efgPercent": { "type": "number" }, "fTr": { "type": "number" }, "oRtg": { "type": "number" }, "orbPercent": { "type": "number" }, "stlPercent": { "type": "number" }, "team": { "description": "Abbreviation", "type": "string" }, "threePAr": { "type": "number" }, "tovPercent": { "type": "number" }, "trbPercent": { "type": "number" }, "tsPercent": { "type": "number" } } }, "controllers.TeamGameBasicStatDTO": { "type": "object", "properties": { "ast": { "type": "integer" }, "blk": { "type": "integer" }, "drb": { "type": "integer" }, "fg": { "type": "integer" }, "fgPercent": { "type": "number" }, "fga": { "type": "integer" }, "ft": { "type": "integer" }, "ftPercent": { "type": "number" }, "fta": { "type": "integer" }, "orb": { "type": "integer" }, "pf": { "type": "integer" }, "pts": { "type": "integer" }, "stl": { "type": "integer" }, "team": { "description": "Abbreviation", "type": "string" }, "threeP": { "type": "integer" }, "threePPercent": { "type": "number" }, "threePa": { "type": "integer" }, "tov": { "type": "integer" }, "trb": { "type": "integer" } } }, "models.PlayerAdvancedStat": { "type": "object", "properties": { "age": { "type": "integer" }, "assistPercent": { "type": "number" }, "blockPercent": { "type": "number" }, "box": { "type": "number" }, "defensiveBox": { "type": "number" }, "defensiveRBPercent": { "type": "number" }, "defensiveWS": { "type": "number" }, "ftr": { "type": "number" }, "games": { "type": "integer" }, "id": { "type": "integer" }, "isPlayoff": { "type": "boolean" }, "minutesPlayed": { "type": "integer" }, "offensiveBox": { "type": "number" }, "offensiveRBPercent": { "type": "number" }, "offensiveWS": { "type": "number" }, "per": { "type": "number" }, "playerId": { "type": "string" }, "playerName": { "type": "string" }, "position": { "type": "string" }, "season": { "type": "integer" }, "stealPercent": { "type": "number" }, "team": { "type": "string" }, "threePAR": { "type": "number" }, "totalRBPercent": { "type": "number" }, "tsPercent": { "type": "number" }, "turnoverPercent": { "type": "number" }, "usagePercent": { "type": "number" }, "vorp": { "type": "number" }, "winShares": { "type": "number" }, "winSharesPer": { "type": "number" } } }, "models.PlayerShotChart": { "type": "object", "properties": { "date": { "type": "string" }, "distanceFt": { "type": "integer" }, "id": { "description": "Auto‑increment primary key — works in SQLite and any other DB.", "type": "integer" }, "lead": { "type": "boolean" }, "left": { "type": "integer" }, "opponent": { "type": "string" }, "opponentTeamScore": { "type": "integer" }, "playerId": { "description": "────────── \"identity\" columns (the dedup key) ──────────", "type": "string" }, "playerName": { "description": "────────── the rest of the payload ──────────", "type": "string" }, "qtr": { "type": "string" }, "result": { "type": "boolean" }, "season": { "type": "integer" }, "shotType": { "type": "string" }, "team": { "type": "string" }, "teamScore": { "type": "integer" }, "timeRemaining": { "type": "string" }, "top": { "type": "integer" } } } }, "tags": [ { "name": "Games" }, { "name": "PlayerTotals" }, { "name": "PlayerStats" }, { "name": "PlayerShotChart" } ] }` // SwaggerInfo holds exported Swagger Info so clients can modify it var SwaggerInfo = &swag.Spec{ Version: "1.0", Host: "", BasePath: "/", Schemes: []string{"https", "http"}, Title: "NBA_Go API", Description: "Stats service, now with public access!", InfoInstanceName: "swagger", SwaggerTemplate: docTemplate, LeftDelim: "{{", RightDelim: "}}", } func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) }