34 lines
1.4 KiB
SQL
34 lines
1.4 KiB
SQL
CREATE TABLE "InventoryItem" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"sku" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"unitOfMeasure" TEXT NOT NULL,
|
|
"isSellable" BOOLEAN NOT NULL DEFAULT true,
|
|
"isPurchasable" BOOLEAN NOT NULL DEFAULT true,
|
|
"defaultCost" REAL,
|
|
"notes" TEXT NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "InventoryBomLine" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"parentItemId" TEXT NOT NULL,
|
|
"componentItemId" TEXT NOT NULL,
|
|
"quantity" REAL NOT NULL,
|
|
"unitOfMeasure" TEXT NOT NULL,
|
|
"notes" TEXT NOT NULL,
|
|
"position" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "InventoryBomLine_parentItemId_fkey" FOREIGN KEY ("parentItemId") REFERENCES "InventoryItem" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "InventoryBomLine_componentItemId_fkey" FOREIGN KEY ("componentItemId") REFERENCES "InventoryItem" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
);
|
|
|
|
CREATE UNIQUE INDEX "InventoryItem_sku_key" ON "InventoryItem"("sku");
|
|
CREATE INDEX "InventoryBomLine_parentItemId_position_idx" ON "InventoryBomLine"("parentItemId", "position");
|
|
CREATE INDEX "InventoryBomLine_componentItemId_idx" ON "InventoryBomLine"("componentItemId");
|