-- CreateTable CREATE TABLE "revoked_tokens" ( "id" TEXT NOT NULL, "token" TEXT NOT NULL, "revoked_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "revoked_tokens_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "users" ( "id" TEXT NOT NULL, "username" TEXT NOT NULL, "name" TEXT NOT NULL, "password_hash" TEXT NOT NULL, "role" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), CONSTRAINT "users_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "provinces" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), CONSTRAINT "provinces_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "cities" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "province_id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), CONSTRAINT "cities_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "hospitals" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, "hospital_code" TEXT, "type" TEXT, "ownership" TEXT, "province_id" TEXT NOT NULL, "city_id" TEXT NOT NULL, "address" TEXT, "simrs_type" TEXT, "contact" TEXT, "image" TEXT, "progress_status" TEXT, "note" TEXT, "created_by" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), CONSTRAINT "hospitals_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "user_areas" ( "id" TEXT NOT NULL, "user_id" TEXT NOT NULL, "province_id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "deletedAt" TIMESTAMP(3), CONSTRAINT "user_areas_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "provinces_name_key" ON "provinces"("name"); -- CreateIndex CREATE UNIQUE INDEX "cities_name_province_id_key" ON "cities"("name", "province_id"); -- AddForeignKey ALTER TABLE "cities" ADD CONSTRAINT "cities_province_id_fkey" FOREIGN KEY ("province_id") REFERENCES "provinces"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "hospitals" ADD CONSTRAINT "hospitals_province_id_fkey" FOREIGN KEY ("province_id") REFERENCES "provinces"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "hospitals" ADD CONSTRAINT "hospitals_city_id_fkey" FOREIGN KEY ("city_id") REFERENCES "cities"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "hospitals" ADD CONSTRAINT "hospitals_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "user_areas" ADD CONSTRAINT "user_areas_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "user_areas" ADD CONSTRAINT "user_areas_province_id_fkey" FOREIGN KEY ("province_id") REFERENCES "provinces"("id") ON DELETE RESTRICT ON UPDATE CASCADE;