CREATE TABLE IF NOT EXISTS "season_participant_simulator_inputs" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "participant_id" uuid NOT NULL, "sports_season_id" uuid NOT NULL, "source_odds" integer, "source_elo" integer, "world_ranking" integer, "rating" numeric(10, 4), "projected_wins" numeric(6, 2), "projected_table_points" numeric(6, 2), "seed" integer, "region" varchar(100), "metadata" jsonb, "created_at" timestamp DEFAULT now() NOT NULL, "updated_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "simulator_profiles" ( "simulator_type" "simulator_type" PRIMARY KEY NOT NULL, "display_name" varchar(255) NOT NULL, "description" text, "default_config" jsonb DEFAULT '{}'::jsonb NOT NULL, "input_schema" jsonb DEFAULT '{}'::jsonb NOT NULL, "is_active" boolean DEFAULT true NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL, "updated_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "sports_season_simulator_configs" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "sports_season_id" uuid NOT NULL, "simulator_type" "simulator_type" NOT NULL, "config" jsonb DEFAULT '{}'::jsonb NOT NULL, "created_at" timestamp DEFAULT now() NOT NULL, "updated_at" timestamp DEFAULT now() NOT NULL ); --> statement-breakpoint DO $$ BEGIN ALTER TABLE "season_participant_simulator_inputs" ADD CONSTRAINT "season_participant_simulator_inputs_participant_id_season_participants_id_fk" FOREIGN KEY ("participant_id") REFERENCES "public"."season_participants"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "season_participant_simulator_inputs" ADD CONSTRAINT "season_participant_simulator_inputs_sports_season_id_sports_seasons_id_fk" FOREIGN KEY ("sports_season_id") REFERENCES "public"."sports_seasons"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "sports_season_simulator_configs" ADD CONSTRAINT "sports_season_simulator_configs_sports_season_id_sports_seasons_id_fk" FOREIGN KEY ("sports_season_id") REFERENCES "public"."sports_seasons"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint CREATE UNIQUE INDEX IF NOT EXISTS "season_participant_simulator_inputs_unique" ON "season_participant_simulator_inputs" USING btree ("participant_id","sports_season_id");--> statement-breakpoint CREATE INDEX IF NOT EXISTS "season_participant_simulator_inputs_season_idx" ON "season_participant_simulator_inputs" USING btree ("sports_season_id");--> statement-breakpoint CREATE UNIQUE INDEX IF NOT EXISTS "sports_season_simulator_config_unique" ON "sports_season_simulator_configs" USING btree ("sports_season_id");--> statement-breakpoint CREATE INDEX IF NOT EXISTS "sports_season_simulator_config_type_idx" ON "sports_season_simulator_configs" USING btree ("simulator_type");