CREATE TABLE IF NOT EXISTS "api_tokens" ( "id" serial PRIMARY KEY NOT NULL, "user_id" integer NOT NULL, "name" text NOT NULL, "token_hash" text NOT NULL, "token_prefix" text NOT NULL, "last_used" timestamp, "expires_at" timestamp, "created_at" timestamp DEFAULT now(), "updated_at" timestamp DEFAULT now(), CONSTRAINT "api_tokens_token_hash_unique" UNIQUE("token_hash") ); --> statement-breakpoint DO $$ BEGIN ALTER TABLE "api_tokens" ADD CONSTRAINT "api_tokens_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint CREATE INDEX IF NOT EXISTS "api_tokens_user_id_idx" ON "api_tokens" USING btree ("user_id");--> statement-breakpoint CREATE INDEX IF NOT EXISTS "api_tokens_token_prefix_idx" ON "api_tokens" USING btree ("token_prefix");