update goods

This commit is contained in:
Kirill
2026-05-15 14:23:54 +05:00
parent ed475be289
commit 25901ae224
19 changed files with 0 additions and 217 deletions
-8
View File
@@ -8,18 +8,10 @@
"dev:classic": "node --watch src/index.js",
"start": "node src/index.js",
"db:migrate": "prisma migrate dev",
"db:migrate:test": "node --env-file=.dev_env ./node_modules/prisma/build/index.js migrate deploy",
"db:seed": "prisma db seed",
"db:seed:test": "node --env-file=.dev_env prisma/seed.js",
"db:reset:test": "node --env-file=.dev_env ./node_modules/prisma/build/index.js migrate reset --force",
"db:studio": "prisma studio",
"db:studio:test": "node --env-file=.dev_env ./node_modules/prisma/build/index.js studio",
"test": "vitest run",
"test:watch": "vitest"
},
"prisma": {
"seed": "node prisma/seed.js"
},
"dependencies": {
"@fastify/cors": "^11.2.0",
"@fastify/jwt": "^10.0.0",
-209
View File
@@ -1,209 +0,0 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
const toys = await prisma.category.upsert({
where: { slug: 'igrushki' },
update: {},
create: { name: 'Игрушки', slug: 'igrushki', sort: 1 },
})
const gifts = await prisma.category.upsert({
where: { slug: 'suveniry' },
update: {},
create: { name: 'Сувениры', slug: 'suveniry', sort: 2 },
})
await prisma.product.upsert({
where: { slug: 'myagkaya-sova' },
update: {},
create: {
title: 'Мягкая сова',
slug: 'myagkaya-sova',
shortDescription: 'Мягкая игрушка ручной работы.',
description: 'Ручная работа, хлопок и синтепон.',
materials: JSON.stringify(['хлопок', 'синтепон']),
quantity: 3,
priceCents: 189000,
imageUrl:
'https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=600&q=80',
published: true,
categoryId: toys.id,
},
})
await prisma.product.upsert({
where: { slug: 'suvenir-kolokolchik' },
update: {},
create: {
title: 'Колокольчик керамический',
slug: 'suvenir-kolokolchik',
shortDescription: 'Керамика с ручной росписью.',
description: 'Глазурь, ручная роспись.',
materials: JSON.stringify(['керамика', 'глазурь']),
quantity: 5,
priceCents: 45000,
imageUrl:
'https://images.unsplash.com/photo-1513519245088-0e12902e5a38?w=600&q=80',
published: true,
categoryId: gifts.id,
},
})
const more = [
{
title: 'Зайчик в свитере',
slug: 'zaychik-v-svitere',
shortDescription: 'Тёплый подарок — мягкий зайчик.',
description: 'Мягкая игрушка. Свитер связан вручную.',
materials: ['акрил', 'хлопок', 'синтепон'],
quantity: 2,
priceCents: 219000,
imageUrl: 'https://images.unsplash.com/photo-1543852786-1cf6624b9987?w=600&q=80',
published: true,
categoryId: toys.id,
},
{
title: 'Подвеска “Лес”',
slug: 'podveska-les',
shortDescription: 'Лёгкая подвеска из дерева и смолы.',
description: 'Фактура дерева + прозрачная смола.',
materials: ['дерево', 'эпоксидная смола'],
quantity: 8,
priceCents: 69000,
imageUrl: 'https://images.unsplash.com/photo-1522312346375-d1a52e2b99b3?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Набор открыток (3 шт.)',
slug: 'nabor-otkrytok-3',
shortDescription: 'Мини-коллекция с акварелью.',
description: 'Три открытки с авторской акварелью.',
materials: ['бумага', 'акварель'],
quantity: 12,
priceCents: 39000,
imageUrl: 'https://images.unsplash.com/photo-1524995997946-a1c2e315a42f?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Свеча “Ягоды”',
slug: 'svecha-yagody',
shortDescription: 'Ароматная свеча с ягодной нотой.',
description: 'Соевый воск, хлопковый фитиль.',
materials: ['соевый воск', 'ароматизатор', 'хлопковый фитиль'],
quantity: 10,
priceCents: 55000,
imageUrl: 'https://images.unsplash.com/photo-1542315192-1f61a2b1a3c0?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Мишка “Карамель”',
slug: 'mishka-karamel',
shortDescription: 'Плюшевый мишка с вышивкой.',
description: 'Плюш, вышивка вручную.',
materials: ['плюш', 'нитки'],
quantity: 4,
priceCents: 199000,
imageUrl: 'https://images.unsplash.com/photo-1545315003-c5ad6226c272?w=600&q=80',
published: true,
categoryId: toys.id,
},
{
title: 'Брелок макраме',
slug: 'brelok-makrame',
shortDescription: 'Мини-брелок, плетение макраме.',
description: 'Подходит на ключи или рюкзак.',
materials: ['хлопковый шнур', 'кольцо'],
quantity: 15,
priceCents: 25000,
imageUrl: 'https://images.unsplash.com/photo-1520975958225-2f3ab6f4c1c1?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Кукла “Тильда”',
slug: 'kukla-tilda',
shortDescription: 'Классическая кукла в стиле тильда.',
description: 'Платье шьётся вручную, можно выбрать цвет.',
materials: ['хлопок', 'лен', 'синтепух'],
quantity: 1,
priceCents: 349000,
imageUrl: 'https://images.unsplash.com/photo-1563906267088-b029e7101114?w=600&q=80',
published: true,
categoryId: toys.id,
},
{
title: 'Ёлочная игрушка “Звезда”',
slug: 'elochnaya-igrushka-zvezda',
shortDescription: 'Фетр, вышивка, ленточка.',
description: 'Лёгкая игрушка для ёлки или декора.',
materials: ['фетр', 'нитки'],
quantity: 20,
priceCents: 29000,
imageUrl: 'https://images.unsplash.com/photo-1543589077-47d81606c1bf?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Панно “Горы”',
slug: 'panno-gory',
shortDescription: 'Минималистичное панно на стену.',
description: 'Деревянная основа, роспись акрилом.',
materials: ['дерево', 'акрил'],
quantity: 2,
priceCents: 129000,
imageUrl: 'https://images.unsplash.com/photo-1452860606245-08befc0ff44b?w=600&q=80',
published: true,
categoryId: gifts.id,
},
{
title: 'Мягкий котик (под заказ)',
slug: 'myagkiy-kotik-pod-zakaz',
shortDescription: 'Можно выбрать цвет и имя.',
description: 'Делаем под заказ: выберите цвет и вышивку имени.',
materials: ['хлопок', 'синтепон'],
quantity: 0,
inStock: false,
leadTimeDays: 7,
priceCents: 229000,
imageUrl: 'https://images.unsplash.com/photo-1518791841217-8f162f1e1131?w=600&q=80',
published: true,
categoryId: toys.id,
},
]
for (const p of more) {
await prisma.product.upsert({
where: { slug: p.slug },
update: {},
create: {
title: p.title,
slug: p.slug,
shortDescription: p.shortDescription,
description: p.description,
materials: JSON.stringify(p.materials),
quantity: p.quantity,
priceCents: p.priceCents,
imageUrl: p.imageUrl,
published: p.published,
inStock: p.inStock ?? true,
leadTimeDays: p.leadTimeDays ?? null,
categoryId: p.categoryId,
},
})
}
console.log('Seed готов:', { toys: toys.slug, gifts: gifts.slug })
}
main()
.catch((e) => {
console.error(e)
process.exit(1)
})
.finally(async () => {
await prisma.$disconnect()
})
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 MiB

Before

Width:  |  Height:  |  Size: 393 KiB

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 15 MiB

Before

Width:  |  Height:  |  Size: 13 MiB

After

Width:  |  Height:  |  Size: 13 MiB