82 lines
2.2 KiB
SQL
82 lines
2.2 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "users" (
|
|
"id" UUID NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"password_hash" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "projects" (
|
|
"id" UUID NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"image_url" TEXT,
|
|
"repo_url" TEXT,
|
|
"live_url" TEXT,
|
|
"category" TEXT NOT NULL,
|
|
"is_published" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "projects_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "skills" (
|
|
"id" UUID NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"icon_name" TEXT,
|
|
"category" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "skills_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "project_skills" (
|
|
"project_id" UUID NOT NULL,
|
|
"skill_id" UUID NOT NULL,
|
|
|
|
CONSTRAINT "project_skills_pkey" PRIMARY KEY ("project_id","skill_id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "messages" (
|
|
"id" UUID NOT NULL,
|
|
"sender_name" TEXT NOT NULL,
|
|
"sender_email" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"is_read" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "messages_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "experiences" (
|
|
"id" UUID NOT NULL,
|
|
"year" TEXT NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"company" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"achievements" JSONB NOT NULL DEFAULT '[]',
|
|
"order" INTEGER NOT NULL DEFAULT 0,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "experiences_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "projects_slug_key" ON "projects"("slug");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "project_skills" ADD CONSTRAINT "project_skills_project_id_fkey" FOREIGN KEY ("project_id") REFERENCES "projects"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "project_skills" ADD CONSTRAINT "project_skills_skill_id_fkey" FOREIGN KEY ("skill_id") REFERENCES "skills"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|