-- Current sql file was generated after introspecting the database -- If you want to run this migration please uncomment this code before executing migrations /* CREATE SEQUENCE "public"."auth_group_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint CREATE SEQUENCE "public"."auth_group_permissions_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint CREATE SEQUENCE "public"."auth_permission_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint CREATE SEQUENCE "public"."django_content_type_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint CREATE SEQUENCE "public"."django_migrations_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1;--> statement-breakpoint CREATE TABLE "ai_analysis" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "ai_analysis_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "provider" text NOT NULL, "data" jsonb NOT NULL, "system_prompt" text NOT NULL, "user_prompt" text NOT NULL, "analysis" text NOT NULL, "create_time" timestamp with time zone NOT NULL, "user_id" integer NOT NULL, "model" text NOT NULL, "is_pinned" boolean NOT NULL ); --> statement-breakpoint CREATE TABLE "announcement" ( "id" serial PRIMARY KEY NOT NULL, "title" text NOT NULL, "content" text NOT NULL, "create_time" timestamp with time zone NOT NULL, "last_update_time" timestamp with time zone NOT NULL, "visible" boolean NOT NULL, "created_by_id" integer NOT NULL, "tag" text NOT NULL, "top" boolean NOT NULL ); --> statement-breakpoint CREATE TABLE "achievement" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "achievement_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "rarity" text NOT NULL, "hidden" boolean DEFAULT false NOT NULL, "metric" text NOT NULL, "operator" text NOT NULL, "threshold" integer NOT NULL, "visible" boolean DEFAULT true NOT NULL, "unlock_count" integer DEFAULT 0 NOT NULL, "order" integer DEFAULT 0 NOT NULL, "create_time" timestamp with time zone NOT NULL ); --> statement-breakpoint CREATE TABLE "contest" ( "id" serial PRIMARY KEY NOT NULL, "title" text NOT NULL, "description" text NOT NULL, "password" text, "start_time" timestamp with time zone NOT NULL, "end_time" timestamp with time zone NOT NULL, "create_time" timestamp with time zone NOT NULL, "last_update_time" timestamp with time zone NOT NULL, "visible" boolean NOT NULL, "created_by_id" integer NOT NULL, "allowed_ip_ranges" jsonb NOT NULL, "tag" text NOT NULL ); --> statement-breakpoint CREATE TABLE "contest_announcement" ( "id" serial PRIMARY KEY NOT NULL, "title" text NOT NULL, "content" text NOT NULL, "create_time" timestamp with time zone NOT NULL, "contest_id" integer NOT NULL, "created_by_id" integer NOT NULL, "visible" boolean NOT NULL ); --> statement-breakpoint CREATE TABLE "flowchart_submission" ( "id" text PRIMARY KEY NOT NULL, "mermaid_code" text NOT NULL, "flowchart_data" jsonb NOT NULL, "status" integer NOT NULL, "create_time" timestamp with time zone NOT NULL, "ai_score" double precision, "ai_grade" varchar(10), "ai_feedback" text, "ai_suggestions" text, "ai_criteria_details" jsonb NOT NULL, "ai_provider" varchar(50) NOT NULL, "ai_model" varchar(50) NOT NULL, "processing_time" double precision, "evaluation_time" timestamp with time zone, "problem_id" integer NOT NULL, "user_id" integer NOT NULL ); --> statement-breakpoint CREATE TABLE "message" ( "id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "message_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "message" text NOT NULL, "create_time" timestamp with time zone NOT NULL, "recipient_id" integer NOT NULL, "sender_id" integer NOT NULL, "submission_id" text NOT NULL ); --> statement-breakpoint CREATE TABLE "judge_server" ( "id" serial PRIMARY KEY NOT NULL, "hostname" text NOT NULL, "ip" text, "judger_version" text NOT NULL, "cpu_core" integer NOT NULL, "memory_usage" double precision NOT NULL, "cpu_usage" double precision NOT NULL, "last_heartbeat" timestamp with time zone NOT NULL, "create_time" timestamp with time zone NOT NULL, "task_number" integer NOT NULL, "service_url" text, "is_disabled" boolean NOT NULL ); --> statement-breakpoint CREATE TABLE "exercise" ( "id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "exercise_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "type" varchar(16) NOT NULL, "data" jsonb NOT NULL, "order" integer NOT NULL, "created_at" timestamp with time zone NOT NULL, "tutorial_id" integer NOT NULL ); --> statement-breakpoint CREATE TABLE "options_sysoptions" ( "id" serial PRIMARY KEY NOT NULL, "key" text NOT NULL, "value" jsonb NOT NULL, CONSTRAINT "options_sysoptions_key_key" UNIQUE("key") ); --> statement-breakpoint CREATE TABLE "problemset" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "title" text NOT NULL, "description" text NOT NULL, "create_time" timestamp with time zone NOT NULL, "last_update_time" timestamp with time zone NOT NULL, "visible" boolean NOT NULL, "difficulty" text NOT NULL, "status" text NOT NULL, "created_by_id" integer NOT NULL, "end_time" timestamp with time zone ); --> statement-breakpoint CREATE TABLE "problemset_problem" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_problem_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "order" integer NOT NULL, "is_required" boolean NOT NULL, "score" integer NOT NULL, "hint" text, "problem_id" integer NOT NULL, "problemset_id" bigint NOT NULL, CONSTRAINT "unique_problemset_problem" UNIQUE("problem_id","problemset_id") ); --> statement-breakpoint CREATE TABLE "problemset_progress" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_progress_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "join_time" timestamp with time zone NOT NULL, "complete_time" timestamp with time zone, "is_completed" boolean NOT NULL, "progress_percentage" double precision NOT NULL, "completed_problems_count" integer NOT NULL, "total_problems_count" integer NOT NULL, "total_score" integer NOT NULL, "progress_detail" jsonb NOT NULL, "problemset_id" bigint NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "unique_problemset_progress_user" UNIQUE("problemset_id","user_id") ); --> statement-breakpoint CREATE TABLE "problemset_submission" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_submission_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "problem_id" integer NOT NULL, "problemset_id" bigint NOT NULL, "submission_id" text NOT NULL, "user_id" integer NOT NULL ); --> statement-breakpoint CREATE TABLE "reaction" ( "id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "reaction_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "type" varchar(20) NOT NULL, "create_time" timestamp with time zone NOT NULL, "problem_id" integer NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "reaction_problem_user_unique" UNIQUE("problem_id","user_id") ); --> statement-breakpoint CREATE TABLE "problem" ( "id" serial PRIMARY KEY NOT NULL, "title" text NOT NULL, "description" text NOT NULL, "input_description" text NOT NULL, "output_description" text NOT NULL, "samples" jsonb NOT NULL, "test_case_id" text NOT NULL, "test_case_score" jsonb NOT NULL, "hint" text, "languages" jsonb NOT NULL, "template" jsonb NOT NULL, "create_time" timestamp with time zone NOT NULL, "last_update_time" timestamp with time zone, "time_limit" integer NOT NULL, "memory_limit" integer NOT NULL, "visible" boolean DEFAULT true NOT NULL, "difficulty" text NOT NULL, "source" text, "submission_number" bigint DEFAULT 0 NOT NULL, "accepted_number" bigint DEFAULT 0 NOT NULL, "created_by_id" integer NOT NULL, "_id" text NOT NULL, "statistic_info" jsonb DEFAULT '{}'::jsonb NOT NULL, "contest_id" integer, "is_public" boolean DEFAULT false NOT NULL, "share_submission" boolean DEFAULT false NOT NULL, "prompt" text, "answers" jsonb, "allow_flowchart" boolean DEFAULT false NOT NULL, "flowchart_data" jsonb DEFAULT '{}'::jsonb NOT NULL, "flowchart_hint" text, "mermaid_code" text, "show_flowchart" boolean DEFAULT false NOT NULL, "ast_rules" jsonb, "sql_config" jsonb, "sql_display" jsonb, CONSTRAINT "unique_problem_id_contest" UNIQUE("_id","contest_id") ); --> statement-breakpoint CREATE TABLE "problem_tags" ( "id" serial PRIMARY KEY NOT NULL, "problem_id" integer NOT NULL, "problemtag_id" integer NOT NULL, CONSTRAINT "problem_tags_problem_id_problemtag_id_318459d1_uniq" UNIQUE("problem_id","problemtag_id") ); --> statement-breakpoint CREATE TABLE "problem_tag" ( "id" serial PRIMARY KEY NOT NULL, "name" text NOT NULL ); --> statement-breakpoint CREATE TABLE "submission" ( "id" text PRIMARY KEY NOT NULL, "contest_id" integer, "problem_id" integer NOT NULL, "create_time" timestamp with time zone NOT NULL, "user_id" integer NOT NULL, "code" text NOT NULL, "result" integer DEFAULT 6 NOT NULL, "info" jsonb DEFAULT '{}'::jsonb NOT NULL, "language" text NOT NULL, "shared" boolean DEFAULT false NOT NULL, "statistic_info" jsonb DEFAULT '{}'::jsonb NOT NULL, "username" text NOT NULL, "ip" text ); --> statement-breakpoint CREATE TABLE "tutorial" ( "id" integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "tutorial_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "title" varchar(128) NOT NULL, "content" text NOT NULL, "created_at" timestamp with time zone NOT NULL, "updated_at" timestamp with time zone NOT NULL, "is_public" boolean NOT NULL, "order" integer NOT NULL, "created_by_id" integer NOT NULL, "code" text, "type" varchar(10) NOT NULL ); --> statement-breakpoint CREATE TABLE "user_stat" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_stat_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "metrics" jsonb DEFAULT '{}'::jsonb NOT NULL, "update_time" timestamp with time zone NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "user_stat_user_id_key" UNIQUE("user_id") ); --> statement-breakpoint CREATE TABLE "user_achievement" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_achievement_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "unlock_time" timestamp with time zone NOT NULL, "backfilled" boolean DEFAULT false NOT NULL, "notified" boolean DEFAULT false NOT NULL, "achievement_id" bigint NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "unique_user_achievement" UNIQUE("achievement_id","user_id") ); --> statement-breakpoint CREATE TABLE "user_badge" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "user_badge_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "earned_time" timestamp with time zone NOT NULL, "badge_id" bigint NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "unique_user_badge" UNIQUE("badge_id","user_id") ); --> statement-breakpoint CREATE TABLE "user_profile" ( "id" serial PRIMARY KEY NOT NULL, "acm_problems_status" jsonb DEFAULT '{}'::jsonb NOT NULL, "avatar" text NOT NULL, "blog" varchar(200), "mood" text, "accepted_number" integer DEFAULT 0 NOT NULL, "submission_number" integer DEFAULT 0 NOT NULL, "github" text, "school" text, "major" text, "user_id" integer NOT NULL, "real_name" text, "language" text, CONSTRAINT "user_profile_user_id_key" UNIQUE("user_id") ); --> statement-breakpoint CREATE TABLE "acm_contest_rank" ( "id" serial PRIMARY KEY NOT NULL, "submission_number" integer DEFAULT 0 NOT NULL, "accepted_number" integer DEFAULT 0 NOT NULL, "total_time" integer DEFAULT 0 NOT NULL, "submission_info" jsonb DEFAULT '{}'::jsonb NOT NULL, "contest_id" integer NOT NULL, "user_id" integer NOT NULL, CONSTRAINT "unique_acm_rank_user_contest" UNIQUE("contest_id","user_id") ); --> statement-breakpoint CREATE TABLE "user" ( "id" serial PRIMARY KEY NOT NULL, "password" varchar(128) NOT NULL, "last_login" timestamp with time zone, "username" text NOT NULL, "email" text, "create_time" timestamp with time zone, "admin_type" text NOT NULL, "auth_token" text, "open_api" boolean DEFAULT false NOT NULL, "open_api_appkey" text, "is_disabled" boolean DEFAULT false NOT NULL, "problem_permission" text NOT NULL, "session_keys" jsonb DEFAULT '[]'::jsonb NOT NULL, "raw_password" varchar(20), "class_name" text, CONSTRAINT "user_username_key" UNIQUE("username") ); --> statement-breakpoint CREATE TABLE "problemset_badge" ( "id" bigint PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (sequence name "problemset_badge_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START WITH 1 CACHE 1), "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "condition_type" text NOT NULL, "condition_value" integer NOT NULL, "problemset_id" bigint NOT NULL ); --> statement-breakpoint ALTER TABLE "ai_analysis" ADD CONSTRAINT "ai_analysis_user_id_3aa23011_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "announcement" ADD CONSTRAINT "announcement_created_by_id_359ccf50_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "contest" ADD CONSTRAINT "contest_created_by_id_a763ca7e_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "contest_announcement" ADD CONSTRAINT "contest_announcement_contest_id_a8cb419f_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "contest_announcement" ADD CONSTRAINT "contest_announcement_created_by_id_469a14ce_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "flowchart_submission" ADD CONSTRAINT "flowchart_submission_problem_id_8551edbf_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "flowchart_submission" ADD CONSTRAINT "flowchart_submission_user_id_225c83e8_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "message" ADD CONSTRAINT "message_recipient_id_2aa5dd76_fk_user_id" FOREIGN KEY ("recipient_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "message" ADD CONSTRAINT "message_sender_id_a2a2e825_fk_user_id" FOREIGN KEY ("sender_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "message" ADD CONSTRAINT "message_submission_id_2fdf8a47_fk_submission_id" FOREIGN KEY ("submission_id") REFERENCES "public"."submission"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "exercise" ADD CONSTRAINT "exercise_tutorial_id_6fd04055_fk_tutorial_id" FOREIGN KEY ("tutorial_id") REFERENCES "public"."tutorial"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset" ADD CONSTRAINT "problemset_created_by_id_01b5197f_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_problem" ADD CONSTRAINT "problemset_problem_problem_id_fff2d686_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_problem" ADD CONSTRAINT "problemset_problem_problemset_id_350d17fb_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_progress" ADD CONSTRAINT "problemset_progress_problemset_id_20a9632e_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_progress" ADD CONSTRAINT "problemset_progress_user_id_c8041a80_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_problem_id_5629b105_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_problemset_id_85290e17_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_submission_id_78e2b807_fk_submission_id" FOREIGN KEY ("submission_id") REFERENCES "public"."submission"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_submission" ADD CONSTRAINT "problemset_submission_user_id_915fc9c6_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "reaction" ADD CONSTRAINT "reaction_problem_id_a7f3b9f3_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "reaction" ADD CONSTRAINT "reaction_user_id_cfa7f469_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problem" ADD CONSTRAINT "problem_contest_id_328e013a_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problem" ADD CONSTRAINT "problem_created_by_id_cb362143_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problem_tags" ADD CONSTRAINT "problem_tags_problem_id_866ecb8d_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problem_tags" ADD CONSTRAINT "problem_tags_problemtag_id_72d20571_fk_problem_tag_id" FOREIGN KEY ("problemtag_id") REFERENCES "public"."problem_tag"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "submission" ADD CONSTRAINT "submission_contest_id_775716d5_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "submission" ADD CONSTRAINT "submission_problem_id_76847b55_fk_problem_id" FOREIGN KEY ("problem_id") REFERENCES "public"."problem"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "tutorial" ADD CONSTRAINT "tutorial_created_by_id_07973cab_fk_user_id" FOREIGN KEY ("created_by_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_stat" ADD CONSTRAINT "user_stat_user_id_73337fc0_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_achievement" ADD CONSTRAINT "user_achievement_achievement_id_29db600d_fk_achievement_id" FOREIGN KEY ("achievement_id") REFERENCES "public"."achievement"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_achievement" ADD CONSTRAINT "user_achievement_user_id_b8ec7d6a_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_badge" ADD CONSTRAINT "user_badge_badge_id_92a983e9_fk_problemset_badge_id" FOREIGN KEY ("badge_id") REFERENCES "public"."problemset_badge"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_badge" ADD CONSTRAINT "user_badge_user_id_a286d718_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "user_profile" ADD CONSTRAINT "user_profile_user_id_8fdce8e2_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "acm_contest_rank" ADD CONSTRAINT "acm_contest_rank_contest_id_21030ccd_fk_contest_id" FOREIGN KEY ("contest_id") REFERENCES "public"."contest"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "acm_contest_rank" ADD CONSTRAINT "acm_contest_rank_user_id_40391ab2_fk_user_id" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint ALTER TABLE "problemset_badge" ADD CONSTRAINT "problemset_badge_problemset_id_6cb6c74f_fk_problemset_id" FOREIGN KEY ("problemset_id") REFERENCES "public"."problemset"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint CREATE INDEX "ai_analysis_user_id_3aa23011" ON "ai_analysis" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "announcement_created_by_id_359ccf50" ON "announcement" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "announcement_list_idx" ON "announcement" USING btree ("visible" bool_ops,"top" bool_ops,"create_time" bool_ops);--> statement-breakpoint CREATE INDEX "contest_created_by_id_a763ca7e" ON "contest" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "contest_announcement_contest_id_a8cb419f" ON "contest_announcement" USING btree ("contest_id" int4_ops);--> statement-breakpoint CREATE INDEX "contest_announcement_created_by_id_469a14ce" ON "contest_announcement" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "flowchart_problem_time_idx" ON "flowchart_submission" USING btree ("problem_id" int4_ops,"create_time" int4_ops);--> statement-breakpoint CREATE INDEX "flowchart_status_idx" ON "flowchart_submission" USING btree ("status" int4_ops);--> statement-breakpoint CREATE INDEX "flowchart_submission_id_0dbfc4f9_like" ON "flowchart_submission" USING btree ("id" text_pattern_ops);--> statement-breakpoint CREATE INDEX "flowchart_submission_problem_id_8551edbf" ON "flowchart_submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "flowchart_submission_user_id_225c83e8" ON "flowchart_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "flowchart_user_time_idx" ON "flowchart_submission" USING btree ("user_id" int4_ops,"create_time" int4_ops);--> statement-breakpoint CREATE INDEX "message_recipient_id_2aa5dd76" ON "message" USING btree ("recipient_id" int4_ops);--> statement-breakpoint CREATE INDEX "message_recipient_time_idx" ON "message" USING btree ("recipient_id" timestamptz_ops,"create_time" int4_ops);--> statement-breakpoint CREATE INDEX "message_sender_id_a2a2e825" ON "message" USING btree ("sender_id" int4_ops);--> statement-breakpoint CREATE INDEX "message_submission_id_2fdf8a47" ON "message" USING btree ("submission_id" text_ops);--> statement-breakpoint CREATE INDEX "message_submission_id_2fdf8a47_like" ON "message" USING btree ("submission_id" text_pattern_ops);--> statement-breakpoint CREATE INDEX "exercise_tutorial_id_6fd04055" ON "exercise" USING btree ("tutorial_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_created_by_id_01b5197f" ON "problemset" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_problem_problem_id_fff2d686" ON "problemset_problem" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_problem_problemset_id_350d17fb" ON "problemset_problem" USING btree ("problemset_id" int8_ops);--> statement-breakpoint CREATE INDEX "problemset_progress_problemset_id_20a9632e" ON "problemset_progress" USING btree ("problemset_id" int8_ops);--> statement-breakpoint CREATE INDEX "problemset_progress_user_id_c8041a80" ON "problemset_progress" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset__problem_1f39fa_idx" ON "problemset_submission" USING btree ("problemset_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset__problem_22f053_idx" ON "problemset_submission" USING btree ("problemset_id" int8_ops,"problem_id" int8_ops);--> statement-breakpoint CREATE INDEX "problemset__user_id_2f1501_idx" ON "problemset_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_submission_problem_id_5629b105" ON "problemset_submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_submission_problemset_id_85290e17" ON "problemset_submission" USING btree ("problemset_id" int8_ops);--> statement-breakpoint CREATE INDEX "problemset_submission_submission_id_78e2b807" ON "problemset_submission" USING btree ("submission_id" text_ops);--> statement-breakpoint CREATE INDEX "problemset_submission_submission_id_78e2b807_like" ON "problemset_submission" USING btree ("submission_id" text_pattern_ops);--> statement-breakpoint CREATE INDEX "problemset_submission_user_id_915fc9c6" ON "problemset_submission" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "reaction_problem_id_a7f3b9f3" ON "reaction" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "reaction_problem_type_idx" ON "reaction" USING btree ("problem_id" int4_ops,"type" int4_ops);--> statement-breakpoint CREATE INDEX "reaction_user_id_cfa7f469" ON "reaction" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "problem__id_919b1d80" ON "problem" USING btree ("_id" text_ops);--> statement-breakpoint CREATE INDEX "problem_contest_id_328e013a" ON "problem" USING btree ("contest_id" int4_ops);--> statement-breakpoint CREATE INDEX "problem_contest_visible_idx" ON "problem" USING btree ("contest_id" bool_ops,"visible" int4_ops);--> statement-breakpoint CREATE INDEX "problem_created_by_id_cb362143" ON "problem" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "problem_visible_idx" ON "problem" USING btree ("visible" bool_ops);--> statement-breakpoint CREATE INDEX "problem_tags_problem_id_866ecb8d" ON "problem_tags" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "problem_tags_problemtag_id_72d20571" ON "problem_tags" USING btree ("problemtag_id" int4_ops);--> statement-breakpoint CREATE UNIQUE INDEX "problem_tag_name_ci_unique" ON "problem_tag" USING btree (lower(name) text_ops);--> statement-breakpoint CREATE INDEX "contest_create_time_idx" ON "submission" USING btree ("contest_id" timestamptz_ops,"create_time" int4_ops);--> statement-breakpoint CREATE INDEX "problem_user_idx" ON "submission" USING btree ("problem_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint CREATE INDEX "submission_contest_id_775716d5" ON "submission" USING btree ("contest_id" int4_ops);--> statement-breakpoint CREATE INDEX "submission_problem_id_76847b55" ON "submission" USING btree ("problem_id" int4_ops);--> statement-breakpoint CREATE INDEX "submission_result_37e2f67a" ON "submission" USING btree ("result" int4_ops);--> statement-breakpoint CREATE INDEX "submission_user_id_3779a8c1" ON "submission" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "user_create_time_idx" ON "submission" USING btree ("user_id" int4_ops,"create_time" timestamptz_ops);--> statement-breakpoint CREATE INDEX "tutorial_created_by_id_07973cab" ON "tutorial" USING btree ("created_by_id" int4_ops);--> statement-breakpoint CREATE INDEX "user_achievement_achievement_id_29db600d" ON "user_achievement" USING btree ("achievement_id" int8_ops);--> statement-breakpoint CREATE INDEX "user_achievement_user_id_b8ec7d6a" ON "user_achievement" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "user_achv_notified_idx" ON "user_achievement" USING btree ("user_id" int4_ops,"notified" bool_ops);--> statement-breakpoint CREATE INDEX "user_achv_time_idx" ON "user_achievement" USING btree ("user_id" int4_ops,"unlock_time" timestamptz_ops);--> statement-breakpoint CREATE INDEX "user_badge_badge_id_92a983e9" ON "user_badge" USING btree ("badge_id" int8_ops);--> statement-breakpoint CREATE INDEX "user_badge_user_id_a286d718" ON "user_badge" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "acm_contest_rank_contest_id_21030ccd" ON "acm_contest_rank" USING btree ("contest_id" int4_ops);--> statement-breakpoint CREATE INDEX "acm_contest_rank_user_id_40391ab2" ON "acm_contest_rank" USING btree ("user_id" int4_ops);--> statement-breakpoint CREATE INDEX "acm_rank_contest_user_idx" ON "acm_contest_rank" USING btree ("contest_id" int4_ops,"user_id" int4_ops);--> statement-breakpoint CREATE INDEX "acm_rank_order_idx" ON "acm_contest_rank" USING btree ("contest_id" int4_ops,"accepted_number" int4_ops,"total_time" int4_ops);--> statement-breakpoint CREATE INDEX "problemset_badge_problemset_id_6cb6c74f" ON "problemset_badge" USING btree ("problemset_id" int8_ops); */