65 lines
2.0 KiB
SQL
65 lines
2.0 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "Product" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"slug" TEXT NOT NULL,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"index" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"materials" TEXT NOT NULL,
|
|
"year" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"specs" TEXT NOT NULL,
|
|
"notes" TEXT NOT NULL,
|
|
"imagePath" TEXT NOT NULL,
|
|
"imageAlt" TEXT NOT NULL DEFAULT '',
|
|
"seoTitle" TEXT NOT NULL,
|
|
"seoDescription" TEXT NOT NULL,
|
|
"ogImage" TEXT NOT NULL,
|
|
"productDisplayName" TEXT NOT NULL,
|
|
"price" INTEGER,
|
|
"currency" TEXT NOT NULL DEFAULT 'EUR',
|
|
"availability" TEXT NOT NULL DEFAULT 'https://schema.org/PreOrder',
|
|
"stripePriceId" TEXT,
|
|
"stripeKey" TEXT,
|
|
"isPublished" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Order" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"stripeSessionId" TEXT NOT NULL,
|
|
"stripePaymentIntent" TEXT,
|
|
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
"amount" INTEGER NOT NULL,
|
|
"currency" TEXT NOT NULL DEFAULT 'EUR',
|
|
"customerEmail" TEXT,
|
|
"receiptUrl" TEXT,
|
|
"productId" TEXT,
|
|
"productSlug" TEXT,
|
|
"metadata" TEXT,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "Order_productId_fkey" FOREIGN KEY ("productId") REFERENCES "Product" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "AdminUser" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"email" TEXT NOT NULL,
|
|
"passwordHash" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Product_slug_key" ON "Product"("slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Order_stripeSessionId_key" ON "Order"("stripeSessionId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "AdminUser_email_key" ON "AdminUser"("email");
|