20260909_water_business.sql 4.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. -- 云泉智配:独立供水业务表,不覆盖旧商户、租赁订单或资金数据。
  2. CREATE TABLE IF NOT EXISTS sa_water_enterprise (
  3. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  4. name VARCHAR(120) NOT NULL, contact VARCHAR(60) NOT NULL, phone VARCHAR(30) NOT NULL,
  5. region VARCHAR(80) NOT NULL DEFAULT '', address VARCHAR(255) NOT NULL,
  6. agent_id BIGINT UNSIGNED NOT NULL DEFAULT 0, status TINYINT NOT NULL DEFAULT 1,
  7. created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  9. CREATE TABLE IF NOT EXISTS sa_water_sku (
  10. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL,
  11. liters DECIMAL(8,2) NOT NULL, available INT UNSIGNED NOT NULL DEFAULT 0,
  12. locked INT UNSIGNED NOT NULL DEFAULT 0, transit INT UNSIGNED NOT NULL DEFAULT 0,
  13. empty_qty INT UNSIGNED NOT NULL DEFAULT 0, safety_stock INT UNSIGNED NOT NULL DEFAULT 0,
  14. status TINYINT NOT NULL DEFAULT 1, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  16. CREATE TABLE IF NOT EXISTS sa_water_package (
  17. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(120) NOT NULL,
  18. sku_id BIGINT UNSIGNED NOT NULL, buckets INT UNSIGNED NOT NULL, price_cents BIGINT UNSIGNED NOT NULL,
  19. status TINYINT NOT NULL DEFAULT 1, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  21. CREATE TABLE IF NOT EXISTS sa_water_account (
  22. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, enterprise_id BIGINT UNSIGNED NOT NULL,
  23. sku_id BIGINT UNSIGNED NOT NULL, entitlement INT UNSIGNED NOT NULL DEFAULT 0,
  24. frozen INT UNSIGNED NOT NULL DEFAULT 0, full_qty INT UNSIGNED NOT NULL DEFAULT 0,
  25. empty_qty INT UNSIGNED NOT NULL DEFAULT 0, threshold_qty INT UNSIGNED NOT NULL DEFAULT 2,
  26. daily_liters DECIMAL(10,2) NULL, updated_at DATETIME NOT NULL,
  27. UNIQUE KEY enterprise_sku (enterprise_id,sku_id)
  28. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  29. CREATE TABLE IF NOT EXISTS sa_water_order (
  30. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, reference VARCHAR(100) NOT NULL,
  31. enterprise_id BIGINT UNSIGNED NOT NULL, package_id BIGINT UNSIGNED NOT NULL,
  32. sku_id BIGINT UNSIGNED NOT NULL, buckets INT UNSIGNED NOT NULL, amount_cents BIGINT UNSIGNED NOT NULL,
  33. package_name VARCHAR(120) NOT NULL, created_by BIGINT UNSIGNED NOT NULL, created_at DATETIME NOT NULL,
  34. UNIQUE KEY receipt (reference)
  35. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  36. CREATE TABLE IF NOT EXISTS sa_water_delivery (
  37. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, enterprise_id BIGINT UNSIGNED NOT NULL,
  38. sku_id BIGINT UNSIGNED NOT NULL, quantity INT UNSIGNED NOT NULL,
  39. address VARCHAR(255) NOT NULL, region VARCHAR(80) NOT NULL DEFAULT '',
  40. status VARCHAR(20) NOT NULL DEFAULT 'pending', driver VARCHAR(60) NOT NULL DEFAULT '',
  41. driver_phone VARCHAR(30) NOT NULL DEFAULT '', empty_returned INT UNSIGNED NOT NULL DEFAULT 0,
  42. active_key VARCHAR(100) NULL, created_by BIGINT UNSIGNED NOT NULL,
  43. created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, completed_at DATETIME NULL,
  44. UNIQUE KEY active_task (active_key), KEY delivery_status (status,created_at)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  46. CREATE TABLE IF NOT EXISTS sa_water_ledger (
  47. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, enterprise_id BIGINT UNSIGNED NOT NULL DEFAULT 0,
  48. sku_id BIGINT UNSIGNED NOT NULL DEFAULT 0, kind VARCHAR(30) NOT NULL,
  49. quantity INT NOT NULL DEFAULT 0, amount_cents BIGINT NOT NULL DEFAULT 0,
  50. reference VARCHAR(100) NOT NULL, note VARCHAR(255) NOT NULL DEFAULT '',
  51. created_by BIGINT UNSIGNED NOT NULL, created_at DATETIME NOT NULL,
  52. KEY ledger_kind (kind,created_at)
  53. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  54. CREATE TABLE IF NOT EXISTS sa_water_device (
  55. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, sn VARCHAR(80) NOT NULL,
  56. enterprise_id BIGINT UNSIGNED NOT NULL, sku_id BIGINT UNSIGNED NOT NULL,
  57. name VARCHAR(120) NOT NULL, firmware VARCHAR(40) NOT NULL DEFAULT '',
  58. last_seen DATETIME NULL, today_liters DECIMAL(10,2) NULL, telemetry_date DATE NULL,
  59. fault VARCHAR(255) NOT NULL DEFAULT '', created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL,
  60. UNIQUE KEY device_sn (sn)
  61. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  62. CREATE TABLE IF NOT EXISTS sa_water_content (
  63. id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, title VARCHAR(120) NOT NULL,
  64. image_url VARCHAR(500) NOT NULL DEFAULT '', target_url VARCHAR(500) NOT NULL DEFAULT '',
  65. audience VARCHAR(30) NOT NULL DEFAULT 'all', region VARCHAR(80) NOT NULL DEFAULT '',
  66. starts_at DATETIME NULL, ends_at DATETIME NULL, sort INT NOT NULL DEFAULT 0,
  67. status TINYINT NOT NULL DEFAULT 1, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL
  68. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;