diff --git a/furniture-3d-system/prisma/migrations/20261012173000_add_diy_schemes/migration.sql b/furniture-3d-system/prisma/migrations/20261012173000_add_diy_schemes/migration.sql new file mode 100644 index 00000000..c9ffa794 --- /dev/null +++ b/furniture-3d-system/prisma/migrations/20261012173000_add_diy_schemes/migration.sql @@ -0,0 +1,15 @@ +CREATE TABLE "DiyScheme" ( + "id" TEXT NOT NULL, + "code" TEXT NOT NULL, + "name" TEXT NOT NULL, + "parentCode" TEXT, + "createdBy" TEXT NOT NULL, + "snapshot" JSONB NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "DiyScheme_pkey" PRIMARY KEY ("id"), + CONSTRAINT "DiyScheme_name_not_blank" CHECK (length(btrim("name")) BETWEEN 1 AND 80), + CONSTRAINT "DiyScheme_snapshot_object" CHECK (jsonb_typeof("snapshot") = 'object') +); +CREATE UNIQUE INDEX "DiyScheme_code_key" ON "DiyScheme"("code"); +CREATE INDEX "DiyScheme_createdBy_createdAt_id_idx" ON "DiyScheme"("createdBy", "createdAt", "id"); +ALTER TABLE "DiyScheme" ADD CONSTRAINT "DiyScheme_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/furniture-3d-system/prisma/schema.prisma b/furniture-3d-system/prisma/schema.prisma index 45e0c375..2bfbc6f7 100644 --- a/furniture-3d-system/prisma/schema.prisma +++ b/furniture-3d-system/prisma/schema.prisma @@ -2740,6 +2740,19 @@ model AssistedAssemblyAiRender { @@index([status, createdAt]) } +model DiyScheme { + id String @id @default(cuid()) + code String @unique + name String + parentCode String? + createdBy String + creator User @relation("DiySchemeCreator", fields: [createdBy], references: [id], onDelete: Cascade) + snapshot Json + createdAt DateTime @default(now()) + + @@index([createdBy, createdAt, id]) +} + model AiRenderWorkbenchSpu { id String @id @default(cuid()) @@ -3290,6 +3303,7 @@ model User { createdAssetSeries AssetSeries[] @relation("AssetSeriesCreator") createdDraftGroups DraftGroup[] @relation("DraftGroupCreator") createdAiRenderWorkbenchSpus AiRenderWorkbenchSpu[] @relation("AiRenderWorkbenchSpuCreator") + createdDiySchemes DiyScheme[] @relation("DiySchemeCreator") createdAiRenderWorkbenchSkus AiRenderWorkbenchSku[] @relation("AiRenderWorkbenchSkuCreator") assistedAssemblyAiRenders AssistedAssemblyAiRender[] @relation("AssistedAssemblyAiRenderCreator") createdIntakeProductModelAssets IntakeProductModelAsset[] @relation("IntakeProductModelAssetCreator") diff --git a/furniture-3d-system/public/diy/images/access-control.png b/furniture-3d-system/public/diy/images/access-control.png new file mode 100644 index 00000000..c20fb282 Binary files /dev/null and b/furniture-3d-system/public/diy/images/access-control.png differ diff --git a/furniture-3d-system/public/diy/images/cloud-call.png b/furniture-3d-system/public/diy/images/cloud-call.png new file mode 100644 index 00000000..f2d0a755 Binary files /dev/null and b/furniture-3d-system/public/diy/images/cloud-call.png differ diff --git a/furniture-3d-system/public/diy/images/cloud-function.png b/furniture-3d-system/public/diy/images/cloud-function.png new file mode 100644 index 00000000..06c3c825 Binary files /dev/null and b/furniture-3d-system/public/diy/images/cloud-function.png differ diff --git a/furniture-3d-system/public/diy/images/collection-todos.png b/furniture-3d-system/public/diy/images/collection-todos.png new file mode 100644 index 00000000..9b9858ed Binary files /dev/null and b/furniture-3d-system/public/diy/images/collection-todos.png differ diff --git a/furniture-3d-system/public/diy/images/function-deploy.png b/furniture-3d-system/public/diy/images/function-deploy.png new file mode 100644 index 00000000..5942a90d Binary files /dev/null and b/furniture-3d-system/public/diy/images/function-deploy.png differ diff --git a/furniture-3d-system/public/diy/images/icons/copy.png b/furniture-3d-system/public/diy/images/icons/copy.png new file mode 100644 index 00000000..d2d8f618 Binary files /dev/null and b/furniture-3d-system/public/diy/images/icons/copy.png differ diff --git a/furniture-3d-system/public/diy/images/icons/examples-active.png b/furniture-3d-system/public/diy/images/icons/examples-active.png new file mode 100644 index 00000000..b6ae531f Binary files /dev/null and b/furniture-3d-system/public/diy/images/icons/examples-active.png differ diff --git a/furniture-3d-system/public/diy/images/icons/examples.png b/furniture-3d-system/public/diy/images/icons/examples.png new file mode 100644 index 00000000..743f391b Binary files /dev/null and b/furniture-3d-system/public/diy/images/icons/examples.png differ diff --git a/furniture-3d-system/public/diy/images/icons/home-active.png b/furniture-3d-system/public/diy/images/icons/home-active.png new file mode 100644 index 00000000..74a8cd47 Binary files /dev/null and b/furniture-3d-system/public/diy/images/icons/home-active.png differ diff --git a/furniture-3d-system/public/diy/images/icons/home.png b/furniture-3d-system/public/diy/images/icons/home.png new file mode 100644 index 00000000..669f0e6c Binary files /dev/null and b/furniture-3d-system/public/diy/images/icons/home.png differ diff --git a/furniture-3d-system/public/diy/images/icons/info.svg b/furniture-3d-system/public/diy/images/icons/info.svg new file mode 100644 index 00000000..9de34771 --- /dev/null +++ b/furniture-3d-system/public/diy/images/icons/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/furniture-3d-system/public/diy/images/nodejs-function.png b/furniture-3d-system/public/diy/images/nodejs-function.png new file mode 100644 index 00000000..ca88e319 Binary files /dev/null and b/furniture-3d-system/public/diy/images/nodejs-function.png differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038043.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038043.jpg new file mode 100644 index 00000000..c78155ef Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038043.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038044.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038044.jpg new file mode 100644 index 00000000..d3e004cd Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038044.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038045.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038045.jpg new file mode 100644 index 00000000..0ff24fe1 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038045.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038046.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038046.jpg new file mode 100644 index 00000000..2efe92a7 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038046.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038047.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038047.jpg new file mode 100644 index 00000000..65781a5c Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038047.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038048.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038048.jpg new file mode 100644 index 00000000..66cedc4b Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038048.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038049.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038049.jpg new file mode 100644 index 00000000..f1f4c950 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038049.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038050.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038050.jpg new file mode 100644 index 00000000..7ab9879c Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038050.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038051.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038051.jpg new file mode 100644 index 00000000..cf74464e Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038051.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038052.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038052.jpg new file mode 100644 index 00000000..39bb2d11 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038052.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038053.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038053.jpg new file mode 100644 index 00000000..b7c9e854 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038053.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038054.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038054.jpg new file mode 100644 index 00000000..8be7e599 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038054.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038055.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038055.jpg new file mode 100644 index 00000000..dd77f594 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038055.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038056.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038056.jpg new file mode 100644 index 00000000..86f6d7f1 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038056.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038057.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038057.jpg new file mode 100644 index 00000000..01c7b75a Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038057.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038058.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038058.jpg new file mode 100644 index 00000000..8a1f4b69 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038058.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038059.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038059.jpg new file mode 100644 index 00000000..4192d5c9 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038059.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038060.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038060.jpg new file mode 100644 index 00000000..535174d0 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038060.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038061.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038061.jpg new file mode 100644 index 00000000..3462b7db Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038061.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038062.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038062.jpg new file mode 100644 index 00000000..6603350f Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038062.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038063.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038063.jpg new file mode 100644 index 00000000..debce6e6 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038063.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038064.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038064.jpg new file mode 100644 index 00000000..a2689cf1 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038064.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038065.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038065.jpg new file mode 100644 index 00000000..c6544678 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038065.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038066.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038066.jpg new file mode 100644 index 00000000..7ef83886 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038066.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038067.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038067.jpg new file mode 100644 index 00000000..804663cc Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038067.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038068.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038068.jpg new file mode 100644 index 00000000..e39f91f0 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038068.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038069.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038069.jpg new file mode 100644 index 00000000..3ae3035c Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038069.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038070.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038070.jpg new file mode 100644 index 00000000..ece5c7cd Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038070.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038071.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038071.jpg new file mode 100644 index 00000000..504adcc5 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038071.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038072.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038072.jpg new file mode 100644 index 00000000..9a4fb626 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038072.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038073.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038073.jpg new file mode 100644 index 00000000..821c2ba3 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038073.jpg differ diff --git a/furniture-3d-system/public/diy/images/patterns-3d/SJ038074.jpg b/furniture-3d-system/public/diy/images/patterns-3d/SJ038074.jpg new file mode 100644 index 00000000..984bc461 Binary files /dev/null and b/furniture-3d-system/public/diy/images/patterns-3d/SJ038074.jpg differ diff --git a/furniture-3d-system/public/diy/images/quick-deploy.png b/furniture-3d-system/public/diy/images/quick-deploy.png new file mode 100644 index 00000000..076e9a7b Binary files /dev/null and b/furniture-3d-system/public/diy/images/quick-deploy.png differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0376K09.jpg b/furniture-3d-system/public/diy/images/styles/SJ0376K09.jpg new file mode 100644 index 00000000..b040b1f6 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0376K09.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K01.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K01.jpg new file mode 100644 index 00000000..4586b148 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K01.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K02.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K02.jpg new file mode 100644 index 00000000..95a174da Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K02.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K03.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K03.jpg new file mode 100644 index 00000000..6bf0f523 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K03.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K04.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K04.jpg new file mode 100644 index 00000000..0b4c5776 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K04.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K05.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K05.jpg new file mode 100644 index 00000000..137188d4 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K05.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K06.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K06.jpg new file mode 100644 index 00000000..ae31a091 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K06.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K07.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K07.jpg new file mode 100644 index 00000000..93474e65 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K07.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K08.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K08.jpg new file mode 100644 index 00000000..16cde25a Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K08.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/SJ0380K09.jpg b/furniture-3d-system/public/diy/images/styles/SJ0380K09.jpg new file mode 100644 index 00000000..f24a2534 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/SJ0380K09.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038001.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038001.jpg new file mode 100644 index 00000000..2a5ddd69 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038001.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038002.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038002.jpg new file mode 100644 index 00000000..f6053123 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038002.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038003.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038003.jpg new file mode 100644 index 00000000..0e59f00b Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038003.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038004.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038004.jpg new file mode 100644 index 00000000..10240d60 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038004.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038005.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038005.jpg new file mode 100644 index 00000000..ff159b71 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038005.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038006.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038006.jpg new file mode 100644 index 00000000..237c5c80 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038006.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038007.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038007.jpg new file mode 100644 index 00000000..c541d634 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038007.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038008.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038008.jpg new file mode 100644 index 00000000..9ccba1b8 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038008.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038009.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038009.jpg new file mode 100644 index 00000000..3d08001d Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038009.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038010.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038010.jpg new file mode 100644 index 00000000..d31890e9 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038010.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038011.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038011.jpg new file mode 100644 index 00000000..cd1dcf05 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038011.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038012.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038012.jpg new file mode 100644 index 00000000..9ac031da Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038012.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038013.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038013.jpg new file mode 100644 index 00000000..c6588b91 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038013.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038014.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038014.jpg new file mode 100644 index 00000000..4a02c12a Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038014.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038015.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038015.jpg new file mode 100644 index 00000000..a0366b63 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038015.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038016.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038016.jpg new file mode 100644 index 00000000..7213af14 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038016.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038017.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038017.jpg new file mode 100644 index 00000000..b61c61e0 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038017.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038018.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038018.jpg new file mode 100644 index 00000000..24e89aff Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038018.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038019.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038019.jpg new file mode 100644 index 00000000..6499aa7c Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038019.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038020.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038020.jpg new file mode 100644 index 00000000..9b6ace5a Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038020.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038021.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038021.jpg new file mode 100644 index 00000000..c2de3601 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038021.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038022.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038022.jpg new file mode 100644 index 00000000..b7b0e3ae Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038022.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038023.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038023.jpg new file mode 100644 index 00000000..126cc5ab Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038023.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038024.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038024.jpg new file mode 100644 index 00000000..2e38929f Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038024.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038025.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038025.jpg new file mode 100644 index 00000000..6f8747ad Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038025.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038026.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038026.jpg new file mode 100644 index 00000000..62240f7f Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038026.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038027.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038027.jpg new file mode 100644 index 00000000..61b75269 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038027.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038028.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038028.jpg new file mode 100644 index 00000000..fb5b043d Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038028.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038029.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038029.jpg new file mode 100644 index 00000000..a51a5e91 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038029.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038030.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038030.jpg new file mode 100644 index 00000000..a2c32958 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038030.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038031.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038031.jpg new file mode 100644 index 00000000..b50daea4 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038031.jpg differ diff --git a/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038032.jpg b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038032.jpg new file mode 100644 index 00000000..06164666 Binary files /dev/null and b/furniture-3d-system/public/diy/images/styles/color-thumbs/SJ038032.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038033-hd.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038033-hd.jpg new file mode 100644 index 00000000..b7bdc8bb Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038033-hd.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038033.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038033.jpg new file mode 100644 index 00000000..2de0c3c6 Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038033.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038034-hd.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038034-hd.jpg new file mode 100644 index 00000000..785d5acc Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038034-hd.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038034.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038034.jpg new file mode 100644 index 00000000..0a6c7535 Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038034.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038035-hd.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038035-hd.jpg new file mode 100644 index 00000000..82480b84 Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038035-hd.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038035.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038035.jpg new file mode 100644 index 00000000..e87e5e2e Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038035.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038036-hd.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038036-hd.jpg new file mode 100644 index 00000000..0eddf9b2 Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038036-hd.jpg differ diff --git a/furniture-3d-system/public/diy/images/textures/carcass/SJ038036.jpg b/furniture-3d-system/public/diy/images/textures/carcass/SJ038036.jpg new file mode 100644 index 00000000..8f609b2b Binary files /dev/null and b/furniture-3d-system/public/diy/images/textures/carcass/SJ038036.jpg differ diff --git a/furniture-3d-system/scripts/verify-master-data-code-boundaries.js b/furniture-3d-system/scripts/verify-master-data-code-boundaries.js index 3c164987..157860ff 100644 --- a/furniture-3d-system/scripts/verify-master-data-code-boundaries.js +++ b/furniture-3d-system/scripts/verify-master-data-code-boundaries.js @@ -211,6 +211,7 @@ const schemaJsonFieldClassifications = new Map( ['AssistedAssemblyAiRender.workspaceSnapshot', ['process-snapshot', '辅助装配工作区快照。']], ['AssistedAssemblyAiRender.assetSnapshot', ['process-snapshot', '辅助装配资产快照。']], ['AssistedAssemblyAiRender.attempts', ['process-snapshot', '辅助装配 AI 生图尝试记录。']], + ['DiyScheme.snapshot', ['process-snapshot', 'DIY 组合方案配置与几何恢复快照;不创建正式产品、SKU 或条码。']], ['PreSku.familySelection', ['compatibility-snapshot', '准 SKU 资产族选择快照;正式基础资料主读必须走 PreSkuBasicInfo。']], ['PreSku.variantSelection', ['process-snapshot', '准 SKU 规格款组合快照。']], ['PreSku.recommendedHardware', ['process-snapshot', '准 SKU 推荐五金快照。']], @@ -758,7 +759,9 @@ const rules = [ '应用层不能把本地 JSON 文件读写或导入当作主数据真相;正式资料必须进入数据库或明确的服务端契约,文件 JSON 只能作为导入载荷、迁移计划、备份或测试夹具。', pattern: /\b(?:fs\.)?(?:promises\.)?(?:readFileSync|writeFileSync|readFile|writeFile)\s*\([\s\S]{0,220}\.json['"`][\s\S]{0,180}\)|\bimport\s+[^;\n]+?\s+from\s+['"`][^'"`]+\.json['"`]|\brequire\s*\(\s*['"`][^'"`]+\.json['"`]\s*\)|\bimport\s*\(\s*['"`][^'"`]+\.json['"`]\s*\)/g, - isAllowed: ({ relativePath }) => isTestFile(relativePath), + // DIY 的两个固定样本仅提供几何预览/参考明细,方案存入 DiyScheme;禁止写正式产品、SKU 或订单。 + isAllowed: ({ relativePath, match }) => isTestFile(relativePath) || + (relativePath === 'src/lib/diy/catalog.ts' && /^import (spuData|catalogData) from '\.\/data\/(spu|catalog)-SJ0380\.json'$/.test(match[0])), }, { id: 'reference-library-item-key-id-fallback', diff --git a/furniture-3d-system/src/app/api/diy/schemes/[code]/route.ts b/furniture-3d-system/src/app/api/diy/schemes/[code]/route.ts new file mode 100644 index 00000000..995a55ee --- /dev/null +++ b/furniture-3d-system/src/app/api/diy/schemes/[code]/route.ts @@ -0,0 +1,8 @@ +import { NextRequest } from 'next/server' +import { handleRequest, jsonSuccess } from '@/server/core/response' +import { diySchemeService } from '@/server/services/diy-scheme.service' + +export async function GET(request: NextRequest, context: { params: Promise<{ code: string }> }) { + const { code } = await context.params + return handleRequest(request, async ctx => jsonSuccess(await diySchemeService.get(code, ctx.user), 200, ctx.requestId), { requireAuth: true }) +} diff --git a/furniture-3d-system/src/app/api/diy/schemes/route.ts b/furniture-3d-system/src/app/api/diy/schemes/route.ts new file mode 100644 index 00000000..300f0ba5 --- /dev/null +++ b/furniture-3d-system/src/app/api/diy/schemes/route.ts @@ -0,0 +1,19 @@ +import { NextRequest } from 'next/server' +import { handleRequest, jsonSuccess, jsonError } from '@/server/core/response' +import { ErrorCode } from '@/server/core/errors' +import { diySchemeService } from '@/server/services/diy-scheme.service' + +export async function GET(request: NextRequest) { + return handleRequest(request, async ctx => jsonSuccess( + await diySchemeService.list(ctx.user, request.nextUrl.searchParams.get('page'), request.nextUrl.searchParams.get('pageSize')), 200, ctx.requestId, + ), { requireAuth: true }) +} +export async function POST(request: NextRequest) { + return handleRequest(request, async ctx => { + const text = await request.text() + if (Buffer.byteLength(text) > 256 * 1024) return jsonError(ErrorCode.FILE_TOO_LARGE, '方案不能超过256KB', 413, ctx.requestId) + let input: unknown + try { input = JSON.parse(text) } catch { return jsonError(ErrorCode.VALIDATION_FAILED, '方案格式无效', 400, ctx.requestId) } + return jsonSuccess(await diySchemeService.create(input, ctx.user), 201, ctx.requestId) + }, { requireAuth: true }) +} diff --git a/furniture-3d-system/src/app/diy/DiyWorkbench.tsx b/furniture-3d-system/src/app/diy/DiyWorkbench.tsx new file mode 100644 index 00000000..59eaa857 --- /dev/null +++ b/furniture-3d-system/src/app/diy/DiyWorkbench.tsx @@ -0,0 +1,94 @@ +'use client' + +import { useRef, useState } from 'react' +import dynamic from 'next/dynamic' +import { History, Save, FileSpreadsheet, Camera, Plus, Move, PanelTop } from 'lucide-react' +import Button from '@/components/ui/Button' +import Modal from '@/components/ui/Modal' +import type { DiyAccess } from '@/lib/diy/types' +import { useDiyWorkbench } from './hooks/useDiyWorkbench' +import { saveDiyScheme } from './lib/api' +import { downloadDiyFile } from './lib/download' +import DiyCabinetLibrary from './components/DiyCabinetLibrary' +import DiyInspector from './components/DiyInspector' +import DiyHistoryDialog from './components/DiyHistoryDialog' +import DiyBomDialog from './components/DiyBomDialog' + +const DiyViewport=dynamic(()=>import('./components/DiyViewport'),{ssr:false,loading:()=>
每次保存生成新方案编码,保留原有历史版本。
{controller.feedback.text}
继续操作会放弃当前未保存的配置。
柜体 {c.snapshot.items.length} 件 · 柜门 {Object.keys(c.snapshot.doors).length} 扇 · 柜体与柜门分开下单、分开打包
{controller.family}
{error}
{record.code}
{new Date(record.createdAt).toLocaleString('zh-CN',{timeZone:'Asia/Shanghai'})}
还没有保存的方案
{getCatalogStyle(c.selected.code).name} · {c.selected.code}
点击画面中的柜体,查看颜色与摆放操作。
选择图案后,切换贴门并点击格口。
组合、配色,再选择柜门图案