The hierarchy
Products classify along a three-level hierarchy. Department is stable (spirits, wine, beer, rtd). Type is per-department (whiskey, tequila, vodka…). Subtype is per-type and is where the vocabulary keeps growing: bourbon, rye, Tennessee, Scotch, Irish, Canadian, Japanese, American.
- department
- enum-like text column, ~4 stable values
- primary_subtype
- text, CHECK constraint per department; the enforcement surface
- label_identity
- distinct from subtype (e.g. whiskey bottle identity vs classification)
- flavored_expression
- boolean, separates e.g. flavored whiskeys from base expressions
- review_state
- review | storefront | hidden | archived; content moderation
- storefront_status
- gate for anon-visible rows, referenced by RLS
- is_featured
- boolean, drives homepage and merchandising surfaces
- base_family
- extra classification dimension for cross-type grouping