v0.11.0 — Plant types: the reusable "kind" record
A rich-but-all-optional reference record per kind of plant (care, sun, water, bloom & harvest windows, toxic-to-pets, edible parts, spacing), distinct from a specific planting or a group. - PlantType model + optional Plant.plantTypeId; migration + idempotent backfill that seeds 247 kinds from the built-in plant library and links plantings by species/common name (wired into the deploy entrypoint) - /api/plant-types CRUD; new "Plant types" section (browse by category, edit a kind, see every spot you've planted it) - New plants auto-link to their type on create; plant detail shows "More about…" - PlantType added to backup/restore; bump APP_VERSION 0.11.0 + changelog Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
-- v0.11.0 — Plant types (the "kind" record)
|
||||
-- A rich-but-all-optional reference record per kind of plant, plus an optional
|
||||
-- link from each planting. Seeded/linked by prisma/scripts/backfill-plant-types.ts.
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "PlantType" (
|
||||
"id" TEXT NOT NULL,
|
||||
"commonName" TEXT NOT NULL,
|
||||
"species" TEXT,
|
||||
"category" "PlantCategory" NOT NULL DEFAULT 'OTHER',
|
||||
"careNotes" TEXT,
|
||||
"sun" TEXT,
|
||||
"water" TEXT,
|
||||
"bloomStart" INTEGER,
|
||||
"bloomEnd" INTEGER,
|
||||
"harvestStart" INTEGER,
|
||||
"harvestEnd" INTEGER,
|
||||
"toxicToPets" BOOLEAN,
|
||||
"edibleParts" TEXT,
|
||||
"spacing" TEXT,
|
||||
"imageUrl" TEXT,
|
||||
"notes" TEXT,
|
||||
"active" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "PlantType_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "PlantType_commonName_idx" ON "PlantType"("commonName");
|
||||
CREATE INDEX "PlantType_category_idx" ON "PlantType"("category");
|
||||
CREATE INDEX "PlantType_active_idx" ON "PlantType"("active");
|
||||
|
||||
-- AlterTable: optional link from a planting to its kind
|
||||
ALTER TABLE "Plant" ADD COLUMN "plantTypeId" TEXT;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Plant_plantTypeId_idx" ON "Plant"("plantTypeId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Plant" ADD CONSTRAINT "Plant_plantTypeId_fkey" FOREIGN KEY ("plantTypeId") REFERENCES "PlantType"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user