import { PrismaClient } from '@prisma/client'
import bcrypt from 'bcrypt'

const prisma = new PrismaClient()

const PRODUCTS = [
  {
    slug: 'solar-altar',
    sortOrder: 0,
    index: 'PROJET_001',
    name: 'Solar_Altar',
    type: 'LAMPE DE TABLE',
    materials: 'BÉTON TEXTURÉ + DÔME CÉRAMIQUE LAQUÉ',
    year: '2026',
    status: 'PROTOTYPE [80%]',
    description: 'Exploration de la lumière à travers des contraintes géométriques. Le dôme sphérique en céramique laquée coiffe un corps en béton texturé peint à la main. Chaque pièce est unique.',
    specs: 'H: 45cm / Ø: 18cm\nPoids: 3.2kg\nAlimentation: 220V — E27\nCâble: tressé rouge 2m',
    notes: 'Inspiré des lampadaires soviétiques des années 60. Le béton est coulé à la main dans des moules uniques. La peinture acrylique est appliquée au spalter.',
    imagePath: '/assets/lamp-violet.jpg',
    imageAlt: 'Solar Altar — Lampe béton violet, dôme céramique bleu, REBOURS 2026',
    seoTitle: 'REBOURS — Solar Altar | Collection 001',
    seoDescription: 'Lampe de table unique. Béton texturé coulé à la main + dôme céramique laqué. Pièce unique fabriquée à Paris.',
    ogImage: 'https://rebours.studio/assets/lamp-violet.jpg',
    productDisplayName: 'Solar Altar',
    price: 180000, // 1800 EUR in cents
    currency: 'EUR',
    availability: 'https://schema.org/LimitedAvailability',
    stripePriceId: 'price_1T5SBlE5wMMoCUP5ZcjEStwe',
    stripeKey: 'lumiere_orbitale',
    isPublished: true,
  },
  {
    slug: 'table-terrazzo',
    sortOrder: 1,
    index: 'PROJET_002',
    name: 'TABLE_TERRAZZO',
    type: 'TABLE BASSE + ÉTAGÈRE MODULAIRE',
    materials: 'TERRAZZO + ACIER TUBULAIRE + RÉSINE',
    year: '2026',
    status: 'STRUCTURAL_TEST',
    description: "Collision du brutalisme et de la couleur Memphis. Le plateau en terrazzo fait à la main intègre des inclusions de marbre rose et bleu. Les colonnes cylindriques bicolores sont en acier peint au four.",
    specs: 'Table: L120 × P60 × H38cm\nPoids plateau: 28kg\nPieds: acier Ø60mm\nÉtagère: H180 × L80 × P35cm',
    notes: "Le terrazzo est réalisé dans l'atelier de Pantin. Chaque dalle est unique. L'étagère est assemblée à partir de tubes industriels récupérés et de panneaux laqués.",
    imagePath: '/assets/table-terrazzo.jpg',
    imageAlt: 'TABLE TERRAZZO — Table basse terrazzo et étagère acier, REBOURS 2026',
    seoTitle: 'REBOURS — TABLE TERRAZZO | Collection 001',
    seoDescription: 'Table basse et étagère modulaire. Terrazzo fait main + acier tubulaire. Pièce unique fabriquée à Paris.',
    ogImage: 'https://rebours.studio/assets/table-terrazzo.jpg',
    productDisplayName: 'Table Terrazzo',
    price: null,
    currency: 'EUR',
    availability: 'https://schema.org/PreOrder',
    stripePriceId: null,
    stripeKey: 'table_terrazzo',
    isPublished: true,
  },
  {
    slug: 'module-serie',
    sortOrder: 2,
    index: 'PROJET_003',
    name: 'MODULE_SÉRIE',
    type: 'LAMPES — SÉRIE LIMITÉE',
    materials: 'BÉTON COLORÉ + DÔME LAQUÉ + NÉON',
    year: '2026',
    status: 'FINAL_ASSEMBLY',
    description: "Série de 7 lampes aux corps béton colorés, chacune avec un dôme d'une couleur différente. Les néons horizontaux créent un anneau lumineux entre le dôme et le corps.",
    specs: 'H: 35–65cm (7 tailles)\nDôme: Ø15–28cm\nAnneau néon: 8W — 3000K\nÉdition: 7 ex. par coloris',
    notes: 'Les corps sont coulés en série mais peints individuellement. Les dômes sont réalisés par un souffleur de verre artisanal. Le câble tressé rouge est la signature de la série.',
    imagePath: '/assets/lampes-serie.jpg',
    imageAlt: 'MODULE SÉRIE — Collection de 7 lampes béton colorées, REBOURS 2026',
    seoTitle: 'REBOURS — MODULE SÉRIE | Collection 001',
    seoDescription: 'Série de 7 lampes béton colorées, dôme laqué et néon. Édition limitée fabriquée à Paris.',
    ogImage: 'https://rebours.studio/assets/lampes-serie.jpg',
    productDisplayName: 'Module Série',
    price: null,
    currency: 'EUR',
    availability: 'https://schema.org/PreOrder',
    stripePriceId: null,
    stripeKey: 'module_serie',
    isPublished: true,
  },
]

async function main() {
  // Seed products
  for (const product of PRODUCTS) {
    await prisma.product.upsert({
      where: { slug: product.slug },
      update: product,
      create: product,
    })
    console.log(`✓ Product: ${product.name}`)
  }

  // Seed admin user
  const email = process.env.ADMIN_EMAIL ?? 'admin@rebours.studio'
  const password = process.env.ADMIN_PASSWORD ?? 'changeme'
  const passwordHash = await bcrypt.hash(password, 10)

  await prisma.adminUser.upsert({
    where: { email },
    update: { passwordHash },
    create: { email, passwordHash },
  })
  console.log(`✓ Admin user: ${email}`)
}

main()
  .catch((e) => {
    console.error(e)
    process.exit(1)
  })
  .finally(() => prisma.$disconnect())
