# v69 Product Master

v69 upgrades the product screen from a basic catalog row into a practical product master.

## Units of measure
The Catalog backend already contained `catalog.units` and `catalog.variant_units`.
v69 exposes them in the Back Office and completes management operations:
- create/update master units
- attach units to variants
- conversion factor
- base unit
- sellable / purchasable flags
- update/remove non-base variant units

Example:
- Piece = base unit, factor 1
- Box = factor 12
- Carton = factor 144

This is intentionally variant-aware so different SKUs can use different conversion rules.

## Product images
Adds `catalog.product_media`.
- multiple images per product family
- one active primary image
- JPG/JPEG/PNG/WebP
- max 5 MB per image
- physical file stored through Laravel Filesystem
- metadata stored in PostgreSQL
- first image becomes primary automatically
- change primary image
- delete image and promote the next image when needed

`PRODUCT_MEDIA_DISK` controls the storage disk and defaults to `public` for local development.
Production can point this to object storage/S3 without changing product records.

## Product master UI
The product detail screen now contains:
- primary image
- product master data
- image gallery
- units & conversion table
- variant/SKU/barcode table

This is still one primary job: manage one product.
