Files
fahricansecer 2f0b85a0c7
Deploy Iddaai Backend / build-and-deploy (push) Failing after 18s
first (part 2: other directories)
2026-04-16 15:11:25 +03:00

600 lines
19 KiB
SQL
Executable File

-- CreateEnum
CREATE TYPE "Sport" AS ENUM ('football', 'basketball');
-- CreateEnum
CREATE TYPE "UserRole" AS ENUM ('user', 'superadmin');
-- CreateEnum
CREATE TYPE "SubscriptionStatus" AS ENUM ('free', 'active', 'expired');
-- CreateEnum
CREATE TYPE "PlayerPosition" AS ENUM ('goalkeeper', 'defender', 'midfielder', 'striker');
-- CreateEnum
CREATE TYPE "EventType" AS ENUM ('goal', 'card', 'substitute');
-- CreateEnum
CREATE TYPE "MatchPosition" AS ENUM ('home', 'away');
-- CreateTable
CREATE TABLE "countries" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"flag_url" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "countries_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "leagues" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"country_id" TEXT,
"sport" "Sport" NOT NULL,
"competition_slug" TEXT,
"code" TEXT,
"logo_url" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "leagues_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "teams" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"slug" TEXT,
"sport" "Sport" NOT NULL,
"logo_url" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "teams_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "players" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"slug" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "players_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "matches" (
"id" TEXT NOT NULL,
"league_id" TEXT,
"home_team_id" TEXT,
"away_team_id" TEXT,
"sport" "Sport" NOT NULL,
"match_name" TEXT,
"match_slug" TEXT,
"mst_utc" BIGINT NOT NULL,
"status" TEXT,
"state" TEXT,
"score_home" INTEGER,
"score_away" INTEGER,
"ht_score_home" INTEGER,
"ht_score_away" INTEGER,
"winner" TEXT,
"iddaa_code" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "matches_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "odd_categories" (
"db_id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"category_json_id" INTEGER,
"name" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "odd_categories_pkey" PRIMARY KEY ("db_id")
);
-- CreateTable
CREATE TABLE "odd_selections" (
"db_id" SERIAL NOT NULL,
"odd_category_db_id" INTEGER NOT NULL,
"name" TEXT,
"odd_value" TEXT,
"position" TEXT,
"sov" DOUBLE PRECISION,
"state" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "odd_selections_pkey" PRIMARY KEY ("db_id")
);
-- CreateTable
CREATE TABLE "match_team_stats" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"team_id" TEXT NOT NULL,
"possession_percentage" DOUBLE PRECISION,
"shots_on_target" INTEGER,
"shots_off_target" INTEGER,
"total_shots" INTEGER,
"total_passes" INTEGER,
"corners" INTEGER,
"fouls" INTEGER,
"offsides" INTEGER,
"points" INTEGER,
"rebounds" INTEGER,
"assists" INTEGER,
"fg_made" INTEGER,
"fg_attempted" INTEGER,
"three_pt_made" INTEGER,
"three_pt_attempted" INTEGER,
"ft_made" INTEGER,
"ft_attempted" INTEGER,
"steals" INTEGER,
"blocks" INTEGER,
"turnovers" INTEGER,
"q1_score" INTEGER,
"q2_score" INTEGER,
"q3_score" INTEGER,
"q4_score" INTEGER,
"ot_score" INTEGER,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "match_team_stats_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "match_player_participation" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"player_id" TEXT NOT NULL,
"team_id" TEXT NOT NULL,
"position" "PlayerPosition",
"shirt_number" INTEGER,
"is_starting" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "match_player_participation_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "match_player_events" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"player_id" TEXT NOT NULL,
"team_id" TEXT NOT NULL,
"event_type" "EventType" NOT NULL,
"event_subtype" TEXT,
"time_minute" TEXT NOT NULL,
"time_seconds" INTEGER,
"period_id" INTEGER,
"assist_player_id" TEXT,
"score_after" TEXT,
"player_out_id" TEXT,
"position" "MatchPosition",
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "match_player_events_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "match_player_stats" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"player_id" TEXT NOT NULL,
"team_id" TEXT NOT NULL,
"minutes" TEXT,
"points" INTEGER,
"rebounds" INTEGER,
"assists" INTEGER,
"steals" INTEGER,
"blocks" INTEGER,
"turnovers" INTEGER,
"fg_made" INTEGER,
"fg_attempted" INTEGER,
"three_pt_made" INTEGER,
"three_pt_attempted" INTEGER,
"ft_made" INTEGER,
"ft_attempted" INTEGER,
"fouls" INTEGER,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "match_player_stats_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "match_officials" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"role_id" INTEGER NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "match_officials_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "official_roles" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
CONSTRAINT "official_roles_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "live_matches" (
"id" TEXT NOT NULL,
"league_id" TEXT,
"home_team_id" TEXT,
"away_team_id" TEXT,
"sport" TEXT,
"match_name" TEXT,
"match_slug" TEXT,
"mst_utc" BIGINT,
"status" TEXT,
"state" TEXT,
"substate" TEXT,
"score_home" INTEGER,
"score_away" INTEGER,
"json_data" JSONB,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"is_processed_by_bot" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "live_matches_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "predictions" (
"match_id" TEXT NOT NULL,
"prediction_json" JSONB NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "predictions_pkey" PRIMARY KEY ("match_id")
);
-- CreateTable
CREATE TABLE "ai_predictions_log" (
"id" SERIAL NOT NULL,
"match_id" TEXT NOT NULL,
"model_version" TEXT NOT NULL,
"recommended_bets" JSONB,
"confidence_score" DOUBLE PRECISION,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"is_resolved" BOOLEAN NOT NULL DEFAULT false,
"actual_result" TEXT,
"is_correct" BOOLEAN,
"accuracy_score" DOUBLE PRECISION,
CONSTRAINT "ai_predictions_log_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "users" (
"id" TEXT NOT NULL,
"email" TEXT NOT NULL,
"password_hash" TEXT NOT NULL,
"first_name" TEXT,
"last_name" TEXT,
"role" "UserRole" NOT NULL DEFAULT 'user',
"subscription_status" "SubscriptionStatus" NOT NULL DEFAULT 'free',
"subscription_expires_at" TIMESTAMP(3),
"encrypted_api_key" TEXT,
"is_active" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"deleted_at" TIMESTAMP(3),
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "usage_limits" (
"id" SERIAL NOT NULL,
"user_id" TEXT NOT NULL,
"analysis_count" INTEGER NOT NULL DEFAULT 0,
"coupon_count" INTEGER NOT NULL DEFAULT 0,
"last_reset_date" DATE NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "usage_limits_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "analyses" (
"id" SERIAL NOT NULL,
"user_id" TEXT NOT NULL,
"match_ids" TEXT NOT NULL,
"analysis_result_json" TEXT NOT NULL,
"is_deleted" BOOLEAN NOT NULL DEFAULT false,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "analyses_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "refresh_tokens" (
"id" TEXT NOT NULL,
"token" TEXT NOT NULL,
"user_id" TEXT NOT NULL,
"expires_at" TIMESTAMP(3) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "refresh_tokens_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "app_settings" (
"key" TEXT NOT NULL,
"value" TEXT,
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "app_settings_pkey" PRIMARY KEY ("key")
);
-- CreateTable
CREATE TABLE "translations" (
"id" TEXT NOT NULL,
"key" TEXT NOT NULL,
"locale" TEXT NOT NULL,
"value" TEXT NOT NULL,
"namespace" TEXT NOT NULL DEFAULT 'common',
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "translations_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "countries_name_key" ON "countries"("name");
-- CreateIndex
CREATE INDEX "leagues_sport_idx" ON "leagues"("sport");
-- CreateIndex
CREATE INDEX "leagues_country_id_idx" ON "leagues"("country_id");
-- CreateIndex
CREATE UNIQUE INDEX "leagues_name_country_id_sport_key" ON "leagues"("name", "country_id", "sport");
-- CreateIndex
CREATE INDEX "teams_sport_idx" ON "teams"("sport");
-- CreateIndex
CREATE INDEX "teams_name_idx" ON "teams"("name");
-- CreateIndex
CREATE UNIQUE INDEX "players_slug_key" ON "players"("slug");
-- CreateIndex
CREATE INDEX "players_name_idx" ON "players"("name");
-- CreateIndex
CREATE INDEX "matches_mst_utc_idx" ON "matches"("mst_utc" DESC);
-- CreateIndex
CREATE INDEX "matches_sport_idx" ON "matches"("sport");
-- CreateIndex
CREATE INDEX "matches_state_idx" ON "matches"("state");
-- CreateIndex
CREATE INDEX "matches_league_id_idx" ON "matches"("league_id");
-- CreateIndex
CREATE INDEX "matches_home_team_id_idx" ON "matches"("home_team_id");
-- CreateIndex
CREATE INDEX "matches_away_team_id_idx" ON "matches"("away_team_id");
-- CreateIndex
CREATE INDEX "matches_iddaa_code_idx" ON "matches"("iddaa_code");
-- CreateIndex
CREATE INDEX "odd_categories_match_id_idx" ON "odd_categories"("match_id");
-- CreateIndex
CREATE INDEX "odd_selections_odd_category_db_id_idx" ON "odd_selections"("odd_category_db_id");
-- CreateIndex
CREATE INDEX "match_team_stats_match_id_idx" ON "match_team_stats"("match_id");
-- CreateIndex
CREATE INDEX "match_team_stats_team_id_idx" ON "match_team_stats"("team_id");
-- CreateIndex
CREATE UNIQUE INDEX "match_team_stats_match_id_team_id_key" ON "match_team_stats"("match_id", "team_id");
-- CreateIndex
CREATE INDEX "match_player_participation_match_id_idx" ON "match_player_participation"("match_id");
-- CreateIndex
CREATE INDEX "match_player_participation_player_id_idx" ON "match_player_participation"("player_id");
-- CreateIndex
CREATE INDEX "match_player_participation_team_id_idx" ON "match_player_participation"("team_id");
-- CreateIndex
CREATE UNIQUE INDEX "match_player_participation_match_id_player_id_team_id_key" ON "match_player_participation"("match_id", "player_id", "team_id");
-- CreateIndex
CREATE INDEX "match_player_events_match_id_idx" ON "match_player_events"("match_id");
-- CreateIndex
CREATE INDEX "match_player_events_player_id_idx" ON "match_player_events"("player_id");
-- CreateIndex
CREATE INDEX "match_player_events_team_id_idx" ON "match_player_events"("team_id");
-- CreateIndex
CREATE INDEX "match_player_events_event_type_idx" ON "match_player_events"("event_type");
-- CreateIndex
CREATE INDEX "match_player_events_assist_player_id_idx" ON "match_player_events"("assist_player_id");
-- CreateIndex
CREATE INDEX "match_player_stats_match_id_idx" ON "match_player_stats"("match_id");
-- CreateIndex
CREATE UNIQUE INDEX "match_player_stats_match_id_player_id_team_id_key" ON "match_player_stats"("match_id", "player_id", "team_id");
-- CreateIndex
CREATE INDEX "match_officials_match_id_idx" ON "match_officials"("match_id");
-- CreateIndex
CREATE INDEX "match_officials_role_id_idx" ON "match_officials"("role_id");
-- CreateIndex
CREATE UNIQUE INDEX "match_officials_match_id_name_role_id_key" ON "match_officials"("match_id", "name", "role_id");
-- CreateIndex
CREATE UNIQUE INDEX "official_roles_name_key" ON "official_roles"("name");
-- CreateIndex
CREATE INDEX "live_matches_mst_utc_idx" ON "live_matches"("mst_utc" ASC);
-- CreateIndex
CREATE INDEX "live_matches_state_idx" ON "live_matches"("state");
-- CreateIndex
CREATE INDEX "live_matches_is_processed_by_bot_idx" ON "live_matches"("is_processed_by_bot");
-- CreateIndex
CREATE INDEX "ai_predictions_log_match_id_idx" ON "ai_predictions_log"("match_id");
-- CreateIndex
CREATE INDEX "ai_predictions_log_created_at_idx" ON "ai_predictions_log"("created_at" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
-- CreateIndex
CREATE INDEX "users_email_idx" ON "users"("email");
-- CreateIndex
CREATE INDEX "users_subscription_status_subscription_expires_at_idx" ON "users"("subscription_status", "subscription_expires_at");
-- CreateIndex
CREATE UNIQUE INDEX "usage_limits_user_id_key" ON "usage_limits"("user_id");
-- CreateIndex
CREATE INDEX "usage_limits_user_id_idx" ON "usage_limits"("user_id");
-- CreateIndex
CREATE INDEX "usage_limits_last_reset_date_idx" ON "usage_limits"("last_reset_date");
-- CreateIndex
CREATE INDEX "analyses_user_id_idx" ON "analyses"("user_id");
-- CreateIndex
CREATE INDEX "analyses_created_at_idx" ON "analyses"("created_at" DESC);
-- CreateIndex
CREATE UNIQUE INDEX "refresh_tokens_token_key" ON "refresh_tokens"("token");
-- CreateIndex
CREATE INDEX "refresh_tokens_token_idx" ON "refresh_tokens"("token");
-- CreateIndex
CREATE INDEX "refresh_tokens_user_id_idx" ON "refresh_tokens"("user_id");
-- CreateIndex
CREATE INDEX "translations_key_idx" ON "translations"("key");
-- CreateIndex
CREATE INDEX "translations_locale_idx" ON "translations"("locale");
-- CreateIndex
CREATE INDEX "translations_namespace_idx" ON "translations"("namespace");
-- CreateIndex
CREATE UNIQUE INDEX "translations_key_locale_namespace_key" ON "translations"("key", "locale", "namespace");
-- AddForeignKey
ALTER TABLE "leagues" ADD CONSTRAINT "leagues_country_id_fkey" FOREIGN KEY ("country_id") REFERENCES "countries"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "matches" ADD CONSTRAINT "matches_league_id_fkey" FOREIGN KEY ("league_id") REFERENCES "leagues"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "matches" ADD CONSTRAINT "matches_home_team_id_fkey" FOREIGN KEY ("home_team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "matches" ADD CONSTRAINT "matches_away_team_id_fkey" FOREIGN KEY ("away_team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "odd_categories" ADD CONSTRAINT "odd_categories_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "odd_selections" ADD CONSTRAINT "odd_selections_odd_category_db_id_fkey" FOREIGN KEY ("odd_category_db_id") REFERENCES "odd_categories"("db_id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_team_stats" ADD CONSTRAINT "match_team_stats_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_team_stats" ADD CONSTRAINT "match_team_stats_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_participation" ADD CONSTRAINT "match_player_participation_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_participation" ADD CONSTRAINT "match_player_participation_player_id_fkey" FOREIGN KEY ("player_id") REFERENCES "players"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_participation" ADD CONSTRAINT "match_player_participation_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_events" ADD CONSTRAINT "match_player_events_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_events" ADD CONSTRAINT "match_player_events_player_id_fkey" FOREIGN KEY ("player_id") REFERENCES "players"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_events" ADD CONSTRAINT "match_player_events_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_events" ADD CONSTRAINT "match_player_events_assist_player_id_fkey" FOREIGN KEY ("assist_player_id") REFERENCES "players"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_events" ADD CONSTRAINT "match_player_events_player_out_id_fkey" FOREIGN KEY ("player_out_id") REFERENCES "players"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_stats" ADD CONSTRAINT "match_player_stats_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_stats" ADD CONSTRAINT "match_player_stats_player_id_fkey" FOREIGN KEY ("player_id") REFERENCES "players"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_player_stats" ADD CONSTRAINT "match_player_stats_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_officials" ADD CONSTRAINT "match_officials_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "match_officials" ADD CONSTRAINT "match_officials_role_id_fkey" FOREIGN KEY ("role_id") REFERENCES "official_roles"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "live_matches" ADD CONSTRAINT "live_matches_league_id_fkey" FOREIGN KEY ("league_id") REFERENCES "leagues"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "live_matches" ADD CONSTRAINT "live_matches_home_team_id_fkey" FOREIGN KEY ("home_team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "live_matches" ADD CONSTRAINT "live_matches_away_team_id_fkey" FOREIGN KEY ("away_team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "predictions" ADD CONSTRAINT "predictions_match_id_fkey" FOREIGN KEY ("match_id") REFERENCES "matches"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "usage_limits" ADD CONSTRAINT "usage_limits_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "analyses" ADD CONSTRAINT "analyses_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "refresh_tokens" ADD CONSTRAINT "refresh_tokens_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;