mirror of
https://github.com/EdiFarcas/Car-Fuel-Tracking-App.git
synced 2026-06-22 09:00:56 +03:00
60 lines
1.6 KiB
SQL
60 lines
1.6 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "FuelType" AS ENUM ('GASOLINE', 'DIESEL', 'LPG');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "Currency" AS ENUM ('EUR', 'USD', 'RON', 'GBP');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "User" (
|
|
"id" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"hashedPassword" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Car" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"fuelType" "FuelType" NOT NULL,
|
|
|
|
CONSTRAINT "Car_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "FillUp" (
|
|
"id" TEXT NOT NULL,
|
|
"carId" TEXT NOT NULL,
|
|
"mileage" INTEGER NOT NULL,
|
|
"liters" DOUBLE PRECISION NOT NULL,
|
|
"cost" DOUBLE PRECISION NOT NULL,
|
|
"currency" "Currency" NOT NULL,
|
|
"date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "FillUp_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MileageEntry" (
|
|
"id" TEXT NOT NULL,
|
|
"carId" TEXT NOT NULL,
|
|
"mileage" INTEGER NOT NULL,
|
|
"date" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "MileageEntry_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Car" ADD CONSTRAINT "Car_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FillUp" ADD CONSTRAINT "FillUp_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "MileageEntry" ADD CONSTRAINT "MileageEntry_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|