📦 catalog.*
products (id, slug, brand_id, status)
product_variants (sku, barcode, price, size, color)
brands (slug, logo_url)
categories (parent_id, display_order)
product_images (variant_id, is_primary)
product_attributes (is_filterable)
product_attribute_values
🛒 sales.*
sales_orders (status, payment_status, address_snapshot, row_version, idempotency_key)
sales_order_items (snapshot: name, sku, price, qty, line_total)
sales_carts (customer_id, status)
sales_cart_items (variant_id, selected_options)
sales_shipments (tracking_number, carrier_name)
🏭 inventory.*
inventories (warehouse_id, variant_id, on_hand_qty, reserved_qty, available_qty, row_version)
warehouses (name, code, is_active)
stock_reservations (reference_type, reference_id, expires_at, status)
inventory_transactions (type, qty, reason, actor — append-only)
💳 payment.*
payments (order_id, amount, captured_amount, refunded_amount, status, idempotency_key, row_version)
payment_transactions (type: Authorize/Capture/Cancel/Refund)
payment_providers (name, webhook_secret, config)
payment_webhook_events (provider_event_id — idempotent)
refunds (refund_type: Full/Partial)
refund_transactions
🔑 identity.*
users (username, email citext, user_type, password_hash, status, failed_login_count, locked_at)
roles · permissions (module.resource.action)
user_roles · role_permissions
refresh_tokens (token_hash, family_id, revoke_reason)
login_sessions (ip_address inet, user_agent)
audit_logs (actor, action, details jsonb)
👤 customer.*
customers (email citext, user_id, status, is_email_verified)
customer_addresses (is_default_shipping, is_default_billing, address_type)
loyalty_points (balance, lifetime_earned, lifetime_redeemed)
loyalty_point_transactions (type: Earn/Redeem/Expire/Adjust/Reverse, idempotency_key — append-only)
👷 employee.*
employees (first_name, last_name, email citext, phone_number, status, user_id, manager_id FK self-ref)
Status: Active / Inactive / Suspended / Terminated
Circular reporting line prevention
🔔 notification.*
notification_templates (channel, type, language, subject_template, body_template)
notification_preferences (user_id, opt_out_marketing, opt_out_promotion)
notification_records (idempotency_key, channel, status, provider_message_id)
in_app_notifications (is_read, action_url)