CREATE TABLE "admin_ssh_keys" ( "id" UUID NOT NULL, "admin_id" UUID NOT NULL, "label" TEXT, "key_type" TEXT NOT NULL, "public_key" TEXT NOT NULL, "public_key_hash" TEXT NOT NULL, "fingerprint" TEXT NOT NULL, "gitea_username" TEXT, "gitea_key_id" INTEGER, "created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMPTZ(3) NOT NULL, CONSTRAINT "admin_ssh_keys_pkey" PRIMARY KEY ("id") ); CREATE UNIQUE INDEX "admin_ssh_keys_public_key_hash_key" ON "admin_ssh_keys"("public_key_hash"); CREATE INDEX "admin_ssh_keys_admin_id_created_at_idx" ON "admin_ssh_keys"("admin_id", "created_at"); CREATE INDEX "admin_ssh_keys_gitea_username_idx" ON "admin_ssh_keys"("gitea_username"); ALTER TABLE "admin_ssh_keys" ADD CONSTRAINT "admin_ssh_keys_admin_id_fkey" FOREIGN KEY ("admin_id") REFERENCES "admins"("id") ON DELETE CASCADE ON UPDATE CASCADE; COMMENT ON TABLE "admin_ssh_keys" IS '관리자 계정별 Gitea SSH 공개키 등록 정보'; COMMENT ON COLUMN "admin_ssh_keys"."id" IS '관리자 SSH 키 고유 ID'; COMMENT ON COLUMN "admin_ssh_keys"."admin_id" IS 'SSH 키를 소유한 관리자 ID'; COMMENT ON COLUMN "admin_ssh_keys"."label" IS 'SSH 키 표시명'; COMMENT ON COLUMN "admin_ssh_keys"."key_type" IS 'SSH 공개키 타입'; COMMENT ON COLUMN "admin_ssh_keys"."public_key" IS 'SSH 공개키 원문'; COMMENT ON COLUMN "admin_ssh_keys"."public_key_hash" IS 'SSH 공개키 중복 방지용 해시'; COMMENT ON COLUMN "admin_ssh_keys"."fingerprint" IS 'SSH 공개키 SHA256 fingerprint'; COMMENT ON COLUMN "admin_ssh_keys"."gitea_username" IS '키를 등록할 Gitea 사용자명'; COMMENT ON COLUMN "admin_ssh_keys"."gitea_key_id" IS 'Gitea에 등록된 SSH key ID'; COMMENT ON COLUMN "admin_ssh_keys"."created_at" IS '생성 시각'; COMMENT ON COLUMN "admin_ssh_keys"."updated_at" IS '수정 시각';