{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/odds-api-io/json-schema/odds-api-io-dto-dropping-odds-entry-schema.json",
  "title": "dto.DroppingOddsEntry",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/odds-api-io-dropping-odds-api-openapi.yml#/components/schemas/dto.DroppingOddsEntry",
  "type": "object",
  "properties": {
    "eventId": {
      "type": "integer"
    },
    "event": {
      "$ref": "#/$defs/dto.DroppingOddsEvent"
    },
    "market": {
      "$ref": "#/$defs/dto.Market"
    },
    "betSide": {
      "type": "string",
      "enum": [
        "home",
        "away",
        "over",
        "under"
      ]
    },
    "odds": {
      "$ref": "#/$defs/dto.DroppingOddsMovement"
    },
    "lastMovedAt": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Unix milliseconds timestamp of last odds movement"
    },
    "updatedAt": {
      "type": "integer",
      "description": "Unix milliseconds timestamp of last pipeline update"
    }
  },
  "$defs": {
    "dto.DroppingOddsEvent": {
      "type": "object",
      "properties": {
        "home": {
          "type": "string"
        },
        "away": {
          "type": "string"
        },
        "date": {
          "type": "string",
          "description": "ISO 8601 date"
        },
        "sport": {
          "$ref": "#/$defs/dto.Sport"
        },
        "league": {
          "$ref": "#/$defs/dto.League"
        }
      }
    },
    "dto.DroppingOddsMovement": {
      "type": "object",
      "properties": {
        "opening": {
          "type": "number",
          "description": "Opening odds value"
        },
        "current": {
          "type": "number",
          "description": "Current odds value"
        },
        "drop": {
          "$ref": "#/$defs/dto.OddsDrop"
        }
      }
    },
    "dto.League": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      }
    },
    "dto.Market": {
      "type": "object",
      "properties": {
        "hdp": {
          "type": "number"
        },
        "label": {
          "type": "string",
          "description": "Player name for player prop markets (e.g. \"Carlos Baleba\"). Only present on player prop entries."
        },
        "name": {
          "type": "string"
        }
      }
    },
    "dto.OddsDrop": {
      "type": "object",
      "properties": {
        "sinceOpening": {
          "type": "number",
          "description": "Percentage drop since opening"
        },
        "12h": {
          "type": [
            "number",
            "null"
          ],
          "description": "Percentage drop in last 12 hours"
        },
        "24h": {
          "type": [
            "number",
            "null"
          ],
          "description": "Percentage drop in last 24 hours"
        },
        "48h": {
          "type": [
            "number",
            "null"
          ],
          "description": "Percentage drop in last 48 hours"
        }
      }
    },
    "dto.Sport": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      }
    }
  }
}