{"version":3,"sources":["../../src/collections/index.ts","../../src/collections/products.ts","../../src/collections/categories.ts","../../src/collections/orders.ts","../../src/collections/customers.ts"],"sourcesContent":["/**\n * F136 Phase 1 — Collection schema exports.\n *\n * Sites import these and add them to their cms.config.ts:\n *\n *   import { defineConfig } from '@webhouse/cms';\n *   import {\n *     productsCollection,\n *     categoriesCollection,\n *     ordersCollection,\n *     customersCollection,\n *   } from '@webhouse/cms-shop/collections';\n *\n *   export default defineConfig({\n *     collections: [\n *       productsCollection({ locales: ['da', 'en'] }),\n *       categoriesCollection({ locales: ['da', 'en'] }),\n *       ordersCollection(),\n *       customersCollection(),\n *     ],\n *   });\n */\nexport { productsCollection, type ProductsCollectionOptions } from './products';\nexport { categoriesCollection, type CategoriesCollectionOptions } from './categories';\nexport { ordersCollection, type OrdersCollectionOptions } from './orders';\nexport { customersCollection, type CustomersCollectionOptions } from './customers';\n","/**\n * F136 Phase 1 — Products collection schema.\n *\n * Imported into a site's cms.config.ts:\n *\n *   import { productsCollection } from '@webhouse/cms-shop/collections';\n *   export default defineConfig({\n *     collections: [productsCollection({ locales: ['da', 'en'] })],\n *     // …\n *   });\n *\n * Pass options to override defaults (locales, currency, extra fields).\n */\nimport { defineCollection, type CollectionConfig, type FieldConfig } from '@webhouse/cms';\n\nexport interface ProductsCollectionOptions {\n  /** Override the default name \"products\" if you need multiple product collections (e.g. per brand). */\n  name?: string;\n  label?: string;\n  /** Locales the product fields can be translated into. */\n  locales?: string[];\n  /** Source locale for translations. Defaults to the first entry in `locales`. */\n  sourceLocale?: string;\n  /** Extra fields to merge into the schema (e.g. site-specific metadata). */\n  extraFields?: FieldConfig[];\n}\n\nexport function productsCollection(opts: ProductsCollectionOptions = {}): CollectionConfig {\n  const sourceLocale = opts.sourceLocale ?? opts.locales?.[0];\n  return defineCollection({\n    name: opts.name ?? 'products',\n    label: opts.label ?? 'Products',\n    kind: 'page',\n    ...(sourceLocale ? { sourceLocale } : {}),\n    ...(opts.locales ? { locales: opts.locales } : {}),\n    description:\n      'Product catalog. Each product is a CMS document — same editor, same i18n, same AI integration. ' +\n      'Stripe sync is automatic on save (cms-shop module hook). Stockable, with variants, multi-currency pricing.',\n    fields: [\n      // Core identity\n      { name: 'title',            type: 'text',     label: 'Title', required: true },\n      { name: 'slug',             type: 'text',     label: 'Slug', required: true },\n      { name: 'description',      type: 'richtext', label: 'Description' },\n      { name: 'shortDescription', type: 'textarea', label: 'Short description (160 chars, used in cards + SEO)' },\n\n      // Type / classification\n      {\n        name: 'productType', type: 'select', label: 'Product type', required: true,\n        options: [\n          { value: 'physical',     label: 'Physical' },\n          { value: 'digital',      label: 'Digital' },\n          { value: 'subscription', label: 'Subscription' },\n          { value: 'course',       label: 'Course' },\n          { value: 'giftcard',     label: 'Gift card' },\n          { value: 'booking',      label: 'Booking' },\n        ],\n      },\n      {\n        name: 'deliveryType', type: 'select', label: 'Delivery type',\n        options: [\n          { value: 'shipping',         label: 'Shipping' },\n          { value: 'digital-download', label: 'Digital download' },\n          { value: 'pickup',           label: 'Pickup' },\n          { value: 'booking',          label: 'Booking' },\n        ],\n      },\n      { name: 'category', type: 'relation', collection: 'categories', label: 'Category', multiple: true },\n      { name: 'tags',     type: 'tags',     label: 'Tags' },\n      { name: 'brand',    type: 'text',     label: 'Brand' },\n      { name: 'sku',      type: 'text',     label: 'SKU' },\n\n      // Media\n      { name: 'images',       type: 'image-gallery', label: 'Images' },\n      { name: 'cardImageUrl', type: 'image',         label: 'Card image (used in lists, chat, recommendations)' },\n\n      // Pricing — stored as object so multi-currency is built-in.\n      // Editor sees one row per currency in a key-value editor.\n      {\n        name: 'priceByCurrency', type: 'object', label: 'Price by currency (in minor units, e.g. 12500 = 125,00 kr.)',\n        fields: [\n          { name: 'DKK', type: 'number', label: 'DKK (øre)' },\n          { name: 'EUR', type: 'number', label: 'EUR (cents)' },\n          { name: 'SEK', type: 'number', label: 'SEK (öre)' },\n          { name: 'NOK', type: 'number', label: 'NOK (øre)' },\n        ],\n      },\n      {\n        name: 'compareAtPriceByCurrency', type: 'object', label: 'Compare-at price (crossed-out reference)',\n        fields: [\n          { name: 'DKK', type: 'number', label: 'DKK (øre)' },\n          { name: 'EUR', type: 'number', label: 'EUR (cents)' },\n          { name: 'SEK', type: 'number', label: 'SEK (öre)' },\n          { name: 'NOK', type: 'number', label: 'NOK (øre)' },\n        ],\n      },\n\n      // Stock\n      { name: 'stockQuantity',     type: 'number', label: 'Stock quantity' },\n      { name: 'lowStockThreshold', type: 'number', label: 'Low-stock threshold (alert when below)' },\n      {\n        name: 'stockBehavior', type: 'select', label: 'When out of stock',\n        options: [\n          { value: 'hide',         label: 'Hide from listings' },\n          { value: 'out-of-stock', label: 'Show as out of stock' },\n          { value: 'backorder',    label: 'Allow backorder' },\n        ],\n      },\n\n      // Physical-only\n      {\n        name: 'dimensions', type: 'object', label: 'Dimensions (physical products only)',\n        fields: [\n          { name: 'lengthCm', type: 'number', label: 'Length (cm)' },\n          { name: 'widthCm',  type: 'number', label: 'Width (cm)' },\n          { name: 'heightCm', type: 'number', label: 'Height (cm)' },\n          { name: 'weightG',  type: 'number', label: 'Weight (g)' },\n        ],\n      },\n      { name: 'shippingClass', type: 'relation', collection: 'shipping-rates', label: 'Shipping class' },\n\n      // Status / scheduling\n      {\n        name: 'status', type: 'select', label: 'Status',\n        options: [\n          { value: 'draft',    label: 'Draft' },\n          { value: 'active',   label: 'Active' },\n          { value: 'archived', label: 'Archived' },\n        ],\n      },\n\n      // Stripe sync (read-only — populated by hook)\n      { name: 'stripeProductId', type: 'text', label: 'Stripe Product id (auto-synced)' },\n\n      ...(opts.extraFields ?? []),\n    ],\n  });\n}\n","/**\n * F136 Phase 1 — Categories collection schema.\n *\n * Hierarchical categories (via `parent` relation) so editors can build\n * trees like Clothing > Tops > T-shirts.\n */\nimport { defineCollection, type CollectionConfig, type FieldConfig } from '@webhouse/cms';\n\nexport interface CategoriesCollectionOptions {\n  name?: string;\n  label?: string;\n  locales?: string[];\n  sourceLocale?: string;\n  extraFields?: FieldConfig[];\n}\n\nexport function categoriesCollection(opts: CategoriesCollectionOptions = {}): CollectionConfig {\n  const sourceLocale = opts.sourceLocale ?? opts.locales?.[0];\n  const name = opts.name ?? 'categories';\n  return defineCollection({\n    name,\n    label: opts.label ?? 'Categories',\n    kind: 'data',\n    ...(sourceLocale ? { sourceLocale } : {}),\n    ...(opts.locales ? { locales: opts.locales } : {}),\n    description:\n      'Product categories. Editor-managed taxonomy — used for filtering on category pages, ' +\n      'breadcrumbs, faceted search. Self-referencing parent field allows nesting.',\n    fields: [\n      { name: 'name',            type: 'text',     label: 'Name', required: true },\n      { name: 'slug',            type: 'text',     label: 'Slug', required: true },\n      { name: 'description',     type: 'textarea', label: 'Description' },\n      { name: 'parent',          type: 'relation', collection: name, label: 'Parent category' },\n      { name: 'image',           type: 'image',    label: 'Image' },\n      { name: 'sortOrder',       type: 'number',   label: 'Sort order' },\n      { name: 'metaTitle',       type: 'text',     label: 'SEO title (optional)' },\n      { name: 'metaDescription', type: 'textarea', label: 'SEO description (optional)' },\n\n      ...(opts.extraFields ?? []),\n    ],\n  });\n}\n","/**\n * F136 Phase 1 — Orders collection schema.\n *\n * Orders are written by the checkout webhook handler — admins typically\n * READ + UPDATE (status, tracking, notes), not create. Set kind='form'\n * so AI agents don't try to generate orders.\n */\nimport { defineCollection, type CollectionConfig, type FieldConfig } from '@webhouse/cms';\n\nexport interface OrdersCollectionOptions {\n  name?: string;\n  label?: string;\n  extraFields?: FieldConfig[];\n}\n\nexport function ordersCollection(opts: OrdersCollectionOptions = {}): CollectionConfig {\n  return defineCollection({\n    name: opts.name ?? 'orders',\n    label: opts.label ?? 'Orders',\n    kind: 'form',  // read-only for AI; no SEO; no body remap\n    description:\n      'Customer orders. Created automatically by the Stripe checkout webhook. ' +\n      'Editors update status, tracking number, and notes. AI cannot create orders.',\n    fields: [\n      {\n        name: 'status', type: 'select', label: 'Status', required: true,\n        options: [\n          { value: 'pending',            label: 'Pending' },\n          { value: 'paid',               label: 'Paid' },\n          { value: 'fulfilled',          label: 'Fulfilled' },\n          { value: 'shipped',            label: 'Shipped' },\n          { value: 'delivered',          label: 'Delivered' },\n          { value: 'cancelled',          label: 'Cancelled' },\n          { value: 'refunded',           label: 'Refunded' },\n          { value: 'partially-refunded', label: 'Partially refunded' },\n          { value: 'failed',             label: 'Failed' },\n        ],\n      },\n      { name: 'email',         type: 'text',   label: 'Customer email', required: true },\n      { name: 'customerId',    type: 'relation', collection: 'customers', label: 'Customer' },\n      { name: 'currency',      type: 'text',   label: 'Currency (ISO)' },\n\n      // Items snapshot at purchase time\n      {\n        name: 'items', type: 'array', label: 'Line items',\n        fields: [\n          { name: 'productId',     type: 'text',   label: 'Product id' },\n          { name: 'variantId',     type: 'text',   label: 'Variant id' },\n          { name: 'titleSnapshot', type: 'text',   label: 'Title (at purchase)' },\n          { name: 'imageSnapshot', type: 'text',   label: 'Image (at purchase)' },\n          { name: 'unitPrice',     type: 'number', label: 'Unit price (minor units)' },\n          { name: 'quantity',      type: 'number', label: 'Quantity' },\n        ],\n      },\n\n      // Totals\n      { name: 'subtotal',       type: 'number', label: 'Subtotal' },\n      { name: 'discountTotal',  type: 'number', label: 'Discount total' },\n      { name: 'discountCode',   type: 'text',   label: 'Discount code applied' },\n      { name: 'shippingTotal',  type: 'number', label: 'Shipping total' },\n      { name: 'shippingMethod', type: 'text',   label: 'Shipping method' },\n      { name: 'taxTotal',       type: 'number', label: 'Tax total' },\n      { name: 'total',          type: 'number', label: 'Total' },\n\n      // Addresses\n      {\n        name: 'shippingAddress', type: 'object', label: 'Shipping address',\n        fields: [\n          { name: 'name',       type: 'text', label: 'Name' },\n          { name: 'line1',      type: 'text', label: 'Line 1' },\n          { name: 'line2',      type: 'text', label: 'Line 2' },\n          { name: 'postalCode', type: 'text', label: 'Postal code' },\n          { name: 'city',       type: 'text', label: 'City' },\n          { name: 'region',     type: 'text', label: 'Region/state' },\n          { name: 'country',    type: 'text', label: 'Country (ISO 3166-1 alpha-2)' },\n          { name: 'phone',      type: 'text', label: 'Phone' },\n        ],\n      },\n      {\n        name: 'billingAddress', type: 'object', label: 'Billing address',\n        fields: [\n          { name: 'name',       type: 'text', label: 'Name' },\n          { name: 'line1',      type: 'text', label: 'Line 1' },\n          { name: 'line2',      type: 'text', label: 'Line 2' },\n          { name: 'postalCode', type: 'text', label: 'Postal code' },\n          { name: 'city',       type: 'text', label: 'City' },\n          { name: 'region',     type: 'text', label: 'Region/state' },\n          { name: 'country',    type: 'text', label: 'Country (ISO 3166-1 alpha-2)' },\n          { name: 'phone',      type: 'text', label: 'Phone' },\n        ],\n      },\n\n      // Stripe / shipping ids\n      { name: 'stripeCheckoutSessionId', type: 'text', label: 'Stripe Checkout Session id' },\n      { name: 'stripePaymentIntentId',   type: 'text', label: 'Stripe Payment Intent id' },\n      { name: 'trackingNumber',          type: 'text', label: 'Tracking number' },\n      { name: 'trackingUrl',             type: 'text', label: 'Tracking URL' },\n      {\n        name: 'shippingProvider', type: 'select', label: 'Shipping provider',\n        options: [\n          { value: 'gls',      label: 'GLS' },\n          { value: 'dao',      label: 'DAO' },\n          { value: 'postnord', label: 'PostNord' },\n          { value: 'bring',    label: 'Bring' },\n          { value: 'manual',   label: 'Manual' },\n        ],\n      },\n\n      // Misc\n      { name: 'locale',       type: 'text',     label: 'Locale (drives receipt language)' },\n      { name: 'notes',        type: 'textarea', label: 'Internal notes' },\n      { name: 'placedAt',     type: 'date',     label: 'Placed at' },\n      { name: 'paidAt',       type: 'date',     label: 'Paid at' },\n      { name: 'fulfilledAt',  type: 'date',     label: 'Fulfilled at' },\n      { name: 'shippedAt',    type: 'date',     label: 'Shipped at' },\n      { name: 'deliveredAt',  type: 'date',     label: 'Delivered at' },\n      { name: 'cancelledAt',  type: 'date',     label: 'Cancelled at' },\n\n      ...(opts.extraFields ?? []),\n    ],\n  });\n}\n","/**\n * F136 Phase 1 — Customers collection schema.\n *\n * Customers are written by the checkout webhook (auto-created on first\n * order from a new email). Editors manage marketing consent, addresses,\n * notes. Lifetime value is recomputed by an order-paid hook.\n */\nimport { defineCollection, type CollectionConfig, type FieldConfig } from '@webhouse/cms';\n\nexport interface CustomersCollectionOptions {\n  name?: string;\n  label?: string;\n  extraFields?: FieldConfig[];\n}\n\nexport function customersCollection(opts: CustomersCollectionOptions = {}): CollectionConfig {\n  return defineCollection({\n    name: opts.name ?? 'customers',\n    label: opts.label ?? 'Customers',\n    kind: 'data',\n    description:\n      'Customer records. Auto-created on first order. Editors manage consent, addresses, notes. ' +\n      'Lifetime value is auto-computed on order paid.',\n    fields: [\n      { name: 'email', type: 'text',  label: 'Email', required: true },\n      { name: 'name',  type: 'text',  label: 'Name' },\n      { name: 'phone', type: 'text',  label: 'Phone' },\n\n      { name: 'stripeCustomerId',  type: 'text',    label: 'Stripe Customer id (auto-synced)' },\n      { name: 'preferredLocale',   type: 'text',    label: 'Preferred locale (drives email language)' },\n      { name: 'marketingConsent',  type: 'boolean', label: 'Marketing consent (GDPR opt-in)' },\n\n      {\n        name: 'addresses', type: 'array', label: 'Saved addresses',\n        fields: [\n          {\n            name: 'kind', type: 'select', label: 'Kind',\n            options: [\n              { value: 'shipping', label: 'Shipping' },\n              { value: 'billing',  label: 'Billing' },\n              { value: 'both',     label: 'Both' },\n            ],\n          },\n          { name: 'name',       type: 'text', label: 'Name' },\n          { name: 'line1',      type: 'text', label: 'Line 1' },\n          { name: 'line2',      type: 'text', label: 'Line 2' },\n          { name: 'postalCode', type: 'text', label: 'Postal code' },\n          { name: 'city',       type: 'text', label: 'City' },\n          { name: 'region',     type: 'text', label: 'Region/state' },\n          { name: 'country',    type: 'text', label: 'Country (ISO 3166-1 alpha-2)' },\n          { name: 'phone',      type: 'text', label: 'Phone' },\n        ],\n      },\n\n      {\n        name: 'lifetimeValue', type: 'object', label: 'Lifetime value (per currency, auto-computed)',\n        fields: [\n          { name: 'DKK', type: 'number', label: 'DKK (øre)' },\n          { name: 'EUR', type: 'number', label: 'EUR (cents)' },\n          { name: 'SEK', type: 'number', label: 'SEK (öre)' },\n          { name: 'NOK', type: 'number', label: 'NOK (øre)' },\n        ],\n      },\n      { name: 'createdAt', type: 'date', label: 'Created at' },\n\n      ...(opts.extraFields ?? []),\n    ],\n  });\n}\n"],"mappings":"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","names":["import_cms","import_cms","import_cms"]}