-- gen_random_uuid() を利用するために必要
CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- GIN + trigramインデックスを利用するために必要
CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- ユーザー
CREATE TABLE IF NOT EXISTS users (
  id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  email VARCHAR(255) UNIQUE NOT NULL,
  name VARCHAR(100) NOT NULL,
  nickname VARCHAR(100),
  age INTEGER CHECK (age >= 0 AND age <= 150),
  gender VARCHAR(10) CHECK (gender IN ('male', 'female')),
  created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
  updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL
);

-- カテゴリ
CREATE TABLE IF NOT EXISTS categories (
  id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  parent_id INTEGER REFERENCES categories(id) ON DELETE RESTRICT,
  created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
  updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,

  UNIQUE (name, parent_id)
);

-- 商品
CREATE TABLE IF NOT EXISTS products (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  name VARCHAR(200) NOT NULL,
  description TEXT,
  price NUMERIC(10, 2) NOT NULL CHECK (price >= 0),
  discount NUMERIC(5, 2) CHECK (discount >= 0 AND discount <= 100),
  stock INTEGER DEFAULT 0 CHECK (stock >= 0),
  category_id INTEGER REFERENCES categories(id) ON DELETE SET NULL,
  attributes JSONB,
  is_active BOOLEAN DEFAULT true,
  created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
  updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL
);

-- 注文
CREATE TABLE IF NOT EXISTS orders (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
  status VARCHAR(20) DEFAULT 'pending' CHECK (status IN ('pending', 'paid', 'shipped', 'delivered', 'cancelled')),
  total_amount NUMERIC(12,2) NOT NULL CHECK (total_amount >= 0),
  ordered_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL,
  updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL
);

-- 注文明細 (多対多)
CREATE TABLE IF NOT EXISTS order_items (
  order_id UUID NOT NULL REFERENCES orders(id) ON DELETE CASCADE,
  product_id UUID NOT NULL REFERENCES products(id) ON DELETE RESTRICT,
  quantity INTEGER NOT NULL CHECK (quantity > 0),
  unit_price NUMERIC(10, 2) NOT NULL CHECK (unit_price >= 0),

  PRIMARY KEY (order_id, product_id)
);

-- インデックス
CREATE INDEX IF NOT EXISTS idx_products_category_id ON products(category_id);
CREATE INDEX IF NOT EXISTS idx_products_is_active ON products(is_active);
CREATE INDEX IF NOT EXISTS idx_products_name_trgm ON products USING GIN (lower(name) gin_trgm_ops); -- 小文字に寄せる

CREATE INDEX IF NOT EXISTS idx_orders_user_id ON orders(user_id);
CREATE INDEX IF NOT EXISTS idx_orders_ordered_at ON orders(ordered_at);
CREATE INDEX IF NOT EXISTS idx_orders_status ON orders(status);

CREATE INDEX IF NOT EXISTS idx_order_items_order_id ON order_items(order_id);
CREATE INDEX IF NOT EXISTS idx_order_items_product_id ON order_items(product_id);



CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
  NEW.updated_at = now();
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER trigger_update_updated_at_users
  BEFORE UPDATE ON users
  FOR EACH ROW
  EXECUTE FUNCTION update_updated_at();

CREATE TRIGGER trigger_update_updated_at_categories
  BEFORE UPDATE ON categories
  FOR EACH ROW
  EXECUTE FUNCTION update_updated_at();

CREATE TRIGGER trigger_update_updated_at_products
  BEFORE UPDATE ON products
  FOR EACH ROW
  EXECUTE FUNCTION update_updated_at();

CREATE TRIGGER trigger_update_updated_at_orders
  BEFORE UPDATE ON orders
  FOR EACH ROW
  EXECUTE FUNCTION update_updated_at();

-- ============================================
-- サンプルデータ
-- ============================================

-- ユーザー (50人)
INSERT INTO users (email, name, nickname, age, gender) VALUES
  ('taro.yamada@example.com', '山田太郎', 'たろさん', 45, 'male'),
  ('hanako.suzuki@example.com', '鈴木花子', 'はなちゃん', 28, 'female'),
  ('ichiro.tanaka@example.com', '田中一郎', NULL, 67, 'male'),
  ('yuki.sato@example.com', '佐藤雪', 'ゆきぴ', 19, 'female'),
  ('ken.takahashi@example.com', '高橋健', 'ケン', 52, 'male'),
  ('mai.watanabe@example.com', '渡辺舞', NULL, 34, 'female'),
  ('shota.ito@example.com', '伊藤翔太', 'しょーた', 17, 'male'),
  ('rina.yamamoto@example.com', '山本里奈', 'りなりな', 41, 'female'),
  ('daiki.nakamura@example.com', '中村大輝', 'だいき', 23, 'male'),
  ('miki.kobayashi@example.com', '小林美紀', NULL, 58, 'female'),
  ('yuta.kato@example.com', '加藤裕太', 'ゆうた', 73, 'male'),
  ('emi.yoshida@example.com', '吉田恵美', 'えみちゃん', 16, 'female'),
  ('ryo.yamashita@example.com', '山下涼', NULL, 31, 'male'),
  ('nana.matsumoto@example.com', '松本奈々', 'なな', 26, 'female'),
  ('kenji.inoue@example.com', '井上健二', NULL, 81, 'male'),
  ('sakura.kimura@example.com', '木村さくら', 'さくら', 22, 'female'),
  ('takumi.hayashi@example.com', '林拓海', 'たくみん', 38, 'male'),
  ('aoi.shimizu@example.com', '清水葵', NULL, 47, 'female'),
  ('sota.yamazaki@example.com', '山崎颯太', 'そうちゃん', 15, 'male'),
  ('haruka.mori@example.com', '森遥', 'はるる', 63, 'female'),
  ('kaito.ikeda@example.com', '池田海斗', 'かいと', 29, 'male'),
  ('misaki.hashimoto@example.com', '橋本美咲', NULL, 35, 'female'),
  ('ren.ogawa@example.com', '小川蓮', 'れん', 18, 'male'),
  ('yui.fujita@example.com', '藤田結衣', 'ゆいゆい', 24, 'female'),
  ('sho.okada@example.com', '岡田翔', NULL, 56, 'male'),
  ('hina.goto@example.com', '後藤陽菜', 'ひなた', 20, 'female'),
  ('naoki.hasegawa@example.com', '長谷川直樹', NULL, 72, 'male'),
  ('momoka.ishikawa@example.com', '石川桃花', 'ももか', 32, 'female'),
  ('yuki.maeda@example.com', '前田悠希', 'ゆうき', 44, 'male'),
  ('risa.kondo@example.com', '近藤理沙', NULL, 51, 'female'),
  ('tsubasa.fujii@example.com', '藤井翼', 'つばさ', 21, 'male'),
  ('ayaka.sakamoto@example.com', '坂本彩花', 'あやか', 37, 'female'),
  ('kenta.miura@example.com', '三浦健太', NULL, 65, 'male'),
  ('hitomi.matsuda@example.com', '松田瞳', 'ひとみん', 27, 'female'),
  ('ryota.ishida@example.com', '石田亮太', 'りょうた', 39, 'male'),
  ('chihiro.sugiyama@example.com', '杉山千尋', NULL, 54, 'female'),
  ('hayato.aoki@example.com', '青木隼人', 'はやと', 25, 'male'),
  ('nanami.endo@example.com', '遠藤七海', 'ななみ', 16, 'female'),
  ('yusuke.nishimura@example.com', '西村裕介', NULL, 48, 'male'),
  ('saki.fukuda@example.com', '福田咲', 'さきっち', 30, 'female'),
  ('kazuki.sakai@example.com', '酒井和樹', NULL, 77, 'male'),
  ('ami.nishida@example.com', '西田亜美', 'あみ', 33, 'female'),
  ('tomoya.arai@example.com', '荒井智也', 'ともや', 42, 'male'),
  ('mao.ueda@example.com', '上田真央', NULL, 19, 'female'),
  ('shun.hara@example.com', '原駿', 'しゅん', 36, 'male'),
  ('kana.takagi@example.com', '高木香奈', NULL, 61, 'female'),
  ('masaki.abe@example.com', '阿部正樹', NULL, 85, 'male'),
  ('yuka.morita@example.com', '森田由香', 'ゆかりん', 29, 'female'),
  ('hiroki.sasaki@example.com', '佐々木大樹', NULL, 69, 'male'),
  ('mei.honda@example.com', '本田芽衣', 'めいめい', 17, 'female');

-- ============================================
-- カテゴリ (3階層)
-- ============================================

-- 第1階層: 大カテゴリ (id: 1-8)
INSERT INTO categories (id, name, parent_id) VALUES
  (1, '家電', NULL),
  (2, 'ファッション', NULL),
  (3, '食品・飲料', NULL),
  (4, '本・メディア', NULL),
  (5, 'スポーツ・アウトドア', NULL),
  (6, 'ホーム・キッチン', NULL),
  (7, 'ビューティー・ヘルス', NULL),
  (8, 'おもちゃ・ゲーム', NULL);

-- 第2階層: 中カテゴリ (id: 9-35)
INSERT INTO categories (id, name, parent_id) VALUES
  -- 家電 (1) の子
  (9, 'モバイル・通信', 1),
  (10, 'PC・タブレット', 1),
  (11, 'AV機器', 1),
  (12, 'カメラ・映像機器', 1),
  -- ファッション (2) の子
  (13, 'メンズ', 2),
  (14, 'レディース', 2),
  (15, 'バッグ・シューズ', 2),
  (16, 'アクセサリー・時計', 2),
  -- 食品・飲料 (3) の子
  (17, '主食・穀物', 3),
  (18, 'スイーツ・お菓子', 3),
  (19, '飲料', 3),
  (20, '調味料・食材', 3),
  -- 本・メディア (4) の子
  (21, '書籍', 4),
  (22, 'コミック・ラノベ', 4),
  (23, '音楽・映像ソフト', 4),
  -- スポーツ・アウトドア (5) の子
  (24, 'フィットネス', 5),
  (25, 'アウトドア・キャンプ', 5),
  (26, '球技・スポーツ用品', 5),
  -- ホーム・キッチン (6) の子
  (27, '家具・インテリア', 6),
  (28, 'キッチン用品', 6),
  (29, '生活雑貨', 6),
  -- ビューティー・ヘルス (7) の子
  (30, 'スキンケア・コスメ', 7),
  (31, 'ヘアケア・ボディケア', 7),
  (32, '健康・サプリメント', 7),
  -- おもちゃ・ゲーム (8) の子
  (33, 'テレビゲーム', 8),
  (34, 'ボードゲーム・パズル', 8),
  (35, 'ホビー・コレクション', 8);

-- 第3階層: 小カテゴリ (id: 36-115)
INSERT INTO categories (id, name, parent_id) VALUES
  -- モバイル・通信 (9) の子
  (36, 'スマートフォン', 9),
  (37, 'スマートウォッチ', 9),
  (38, 'モバイルアクセサリー', 9),
  -- PC・タブレット (10) の子
  (39, 'ノートPC', 10),
  (40, 'タブレット', 10),
  (41, 'PC周辺機器', 10),
  -- AV機器 (11) の子
  (42, 'テレビ', 11),
  (43, 'オーディオ・ヘッドホン', 11),
  (44, 'スピーカー', 11),
  -- カメラ・映像機器 (12) の子
  (45, 'デジタルカメラ', 12),
  (46, 'アクションカメラ', 12),
  (47, 'カメラアクセサリー', 12),
  -- メンズ (13) の子
  (48, 'メンズトップス', 13),
  (49, 'メンズボトムス', 13),
  (50, 'メンズアウター', 13),
  -- レディース (14) の子
  (51, 'レディーストップス', 14),
  (52, 'レディースボトムス', 14),
  (53, 'ワンピース・ドレス', 14),
  -- バッグ・シューズ (15) の子
  (54, 'バッグ', 15),
  (55, 'スニーカー', 15),
  (56, 'ブーツ・革靴', 15),
  -- アクセサリー・時計 (16) の子
  (57, 'ネックレス・ペンダント', 16),
  (58, '腕時計', 16),
  (59, 'サングラス・眼鏡', 16),
  -- 主食・穀物 (17) の子
  (60, '米・雑穀', 17),
  (61, 'パン', 17),
  (62, '麺類', 17),
  -- スイーツ・お菓子 (18) の子
  (63, 'チョコレート・洋菓子', 18),
  (64, '和菓子・せんべい', 18),
  (65, 'スナック菓子', 18),
  -- 飲料 (19) の子
  (66, '水・お茶・ソフトドリンク', 19),
  (67, 'コーヒー・紅茶', 19),
  (68, 'お酒', 19),
  -- 調味料・食材 (20) の子
  (69, '醤油・味噌・調味料', 20),
  (70, 'オイル・ドレッシング', 20),
  -- 書籍 (21) の子
  (71, '小説・文学', 21),
  (72, 'ビジネス・経済', 21),
  (73, '実用書・趣味', 21),
  -- コミック・ラノベ (22) の子
  (74, '少年コミック', 22),
  (75, '少女・女性コミック', 22),
  (76, 'ライトノベル', 22),
  -- 音楽・映像ソフト (23) の子
  (77, '邦楽CD', 23),
  (78, '洋楽CD', 23),
  (79, 'Blu-ray・DVD', 23),
  -- フィットネス (24) の子
  (80, 'ランニング用品', 24),
  (81, 'トレーニング用品', 24),
  (82, 'ヨガ・ピラティス', 24),
  -- アウトドア・キャンプ (25) の子
  (83, 'テント・タープ', 25),
  (84, 'シュラフ・マット', 25),
  (85, '調理器具・ランタン', 25),
  -- 球技・スポーツ用品 (26) の子
  (86, 'サッカー・フットサル', 26),
  (87, '野球・ソフトボール', 26),
  (88, 'テニス・バドミントン', 26),
  -- 家具・インテリア (27) の子
  (89, 'ソファ・椅子', 27),
  (90, 'テーブル・デスク', 27),
  (91, '収納家具', 27),
  -- キッチン用品 (28) の子
  (92, '鍋・フライパン', 28),
  (93, '包丁・調理器具', 28),
  (94, '食器・カトラリー', 28),
  -- 生活雑貨 (29) の子
  (95, '寝具', 29),
  (96, '掃除用品', 29),
  (97, '洗濯用品', 29),
  -- スキンケア・コスメ (30) の子
  (98, '化粧水・美容液', 30),
  (99, 'メイクアップ', 30),
  (100, '日焼け止め', 30),
  -- ヘアケア・ボディケア (31) の子
  (101, 'シャンプー・トリートメント', 31),
  (102, 'ドライヤー・アイロン', 31),
  (103, 'ボディソープ・入浴剤', 31),
  -- 健康・サプリメント (32) の子
  (104, 'ビタミン・ミネラル', 32),
  (105, 'ダイエットサプリ', 32),
  (106, 'プロテイン', 32),
  -- テレビゲーム (33) の子
  (107, 'ゲーム機本体', 33),
  (108, 'ゲームソフト', 33),
  (109, 'ゲーム周辺機器', 33),
  -- ボードゲーム・パズル (34) の子
  (110, 'ボードゲーム', 34),
  (111, 'カードゲーム', 34),
  (112, 'パズル', 34),
  -- ホビー・コレクション (35) の子
  (113, 'フィギュア', 35),
  (114, 'プラモデル', 35),
  (115, 'ミニカー・鉄道模型', 35);

-- シーケンスを更新（次のIDが116から始まるように）
SELECT setval('categories_id_seq', 115);

-- ============================================
-- 商品 (200種類)
-- ============================================
INSERT INTO products (name, description, price, discount, stock, category_id, attributes, is_active) VALUES
  -- スマートフォン (36)
  ('iPhone 15 Pro 256GB', '最新のA17 Proチップ搭載、チタニウムデザイン', 179800.00, NULL, 50, 36, '{"color": "ナチュラルチタニウム", "storage": "256GB", "brand": "Apple"}', true),
  ('Galaxy S24 Ultra', 'AIカメラ搭載の最強Androidスマホ', 189800.00, 5.00, 35, 36, '{"color": "チタニウムブラック", "storage": "512GB", "brand": "Samsung"}', true),
  ('Pixel 8 Pro', 'Google純正AIスマートフォン', 159900.00, 10.00, 40, 36, '{"color": "Obsidian", "storage": "256GB", "brand": "Google"}', true),
  ('Xperia 1 V', 'ソニーのフラッグシップモデル', 154000.00, NULL, 25, 36, '{"color": "ブラック", "storage": "256GB", "brand": "Sony"}', true),
  ('iPhone SE (第3世代)', 'コンパクトで高性能なiPhone', 62800.00, 15.00, 80, 36, '{"color": "ミッドナイト", "storage": "64GB", "brand": "Apple"}', true),
  ('Galaxy A54 5G', 'コスパ最強のミドルレンジ', 59800.00, 20.00, 60, 36, '{"color": "オーサムグラファイト", "storage": "128GB", "brand": "Samsung"}', true),

  -- スマートウォッチ (37)
  ('Apple Watch Series 9', '健康管理の決定版', 59800.00, NULL, 70, 37, '{"size": "45mm", "color": "ミッドナイト", "brand": "Apple"}', true),
  ('Apple Watch Ultra 2', 'アウトドア向け最強モデル', 128800.00, NULL, 25, 37, '{"size": "49mm", "color": "チタニウム", "brand": "Apple"}', true),
  ('Galaxy Watch 6', 'Android最高峰スマートウォッチ', 50600.00, 10.00, 40, 37, '{"size": "44mm", "color": "グラファイト", "brand": "Samsung"}', true),
  ('Garmin Forerunner 265', 'ランナー向けGPSウォッチ', 62800.00, NULL, 35, 37, '{"color": "ブラック", "gps": true, "brand": "Garmin"}', true),

  -- モバイルアクセサリー (38)
  ('Anker PowerCore 10000', 'モバイルバッテリーの定番', 3490.00, 15.00, 200, 38, '{"capacity": "10000mAh", "brand": "Anker"}', true),
  ('Anker 65W USB-C充電器', '高速充電対応', 4990.00, NULL, 150, 38, '{"output": "65W", "ports": 2, "brand": "Anker"}', true),
  ('Spigen iPhone 15 Pro ケース', '耐衝撃ケース', 2990.00, 30.00, 300, 38, '{"material": "TPU", "brand": "Spigen"}', true),

  -- ノートPC (39)
  ('MacBook Air M3', '驚異的なバッテリー持ち、超薄型軽量', 164800.00, NULL, 30, 39, '{"color": "ミッドナイト", "cpu": "M3", "memory": "16GB", "brand": "Apple"}', true),
  ('MacBook Pro 14インチ M3 Pro', 'プロ向け高性能ノートPC', 298800.00, NULL, 20, 39, '{"color": "スペースブラック", "cpu": "M3 Pro", "memory": "18GB", "brand": "Apple"}', true),
  ('ThinkPad X1 Carbon Gen 11', 'ビジネス最強のノートPC', 249800.00, 8.00, 15, 39, '{"color": "ブラック", "cpu": "Core i7", "memory": "32GB", "brand": "Lenovo"}', true),
  ('ASUS ROG Zephyrus G14', 'ゲーミングノートPC', 229800.00, 12.00, 18, 39, '{"color": "ムーンライトホワイト", "cpu": "Ryzen 9", "gpu": "RTX 4070", "brand": "ASUS"}', true),
  ('Surface Laptop 5', 'スタイリッシュなWindowsノート', 176800.00, 5.00, 22, 39, '{"color": "プラチナ", "cpu": "Core i7", "memory": "16GB", "brand": "Microsoft"}', true),

  -- タブレット (40)
  ('iPad Pro 12.9インチ M2', 'クリエイター向け大画面タブレット', 172800.00, NULL, 35, 40, '{"color": "スペースグレイ", "storage": "256GB", "brand": "Apple"}', true),
  ('iPad Air (第5世代)', 'バランスの取れた高性能タブレット', 92800.00, 10.00, 50, 40, '{"color": "スターライト", "storage": "64GB", "brand": "Apple"}', true),
  ('Galaxy Tab S9+', 'Android最高峰タブレット', 124800.00, 15.00, 20, 40, '{"color": "グラファイト", "storage": "256GB", "brand": "Samsung"}', true),
  ('Surface Pro 9', 'タブレットにもなる2in1 PC', 176800.00, NULL, 25, 40, '{"color": "プラチナ", "cpu": "Core i7", "memory": "16GB", "brand": "Microsoft"}', true),

  -- PC周辺機器 (41)
  ('ロジクール MX Master 3S', '最高峰ワイヤレスマウス', 16940.00, 10.00, 80, 41, '{"type": "マウス", "connection": "Bluetooth/USB", "brand": "Logitech"}', true),
  ('HHKB Professional HYBRID', '高級キーボード', 36850.00, NULL, 30, 41, '{"type": "キーボード", "layout": "US", "brand": "PFU"}', true),
  ('Dell U2723QE', '4K USB-Cモニター', 79800.00, 5.00, 25, 41, '{"type": "モニター", "size": "27インチ", "resolution": "4K", "brand": "Dell"}', true),
  ('CalDigit TS4 Thunderbolt 4 Dock', 'ドッキングステーション', 49800.00, NULL, 20, 41, '{"type": "ドック", "ports": 18, "brand": "CalDigit"}', true),

  -- テレビ (42)
  ('BRAVIA XR 55インチ 4K有機EL', 'ソニーの認知特性プロセッサー搭載', 298000.00, NULL, 15, 42, '{"size": "55インチ", "resolution": "4K", "type": "有機EL", "brand": "Sony"}', true),
  ('REGZA 65インチ 4K液晶', '高画質エンジン搭載大画面テレビ', 178000.00, 10.00, 20, 42, '{"size": "65インチ", "resolution": "4K", "type": "液晶", "brand": "TVS REGZA"}', true),
  ('LG OLED evo 55インチ', '自発光有機ELパネル採用', 248000.00, 15.00, 12, 42, '{"size": "55インチ", "resolution": "4K", "type": "有機EL", "brand": "LG"}', true),
  ('Hisense 50インチ 4K液晶', 'コスパ最強の4Kテレビ', 59800.00, 25.00, 40, 42, '{"size": "50インチ", "resolution": "4K", "type": "液晶", "brand": "Hisense"}', true),

  -- オーディオ・ヘッドホン (43)
  ('AirPods Pro (第2世代)', 'アクティブノイズキャンセリング搭載', 39800.00, NULL, 100, 43, '{"type": "完全ワイヤレス", "anc": true, "brand": "Apple"}', true),
  ('Sony WH-1000XM5', '業界最高クラスのノイキャンヘッドホン', 49500.00, 10.00, 60, 43, '{"type": "オーバーイヤー", "anc": true, "brand": "Sony"}', true),
  ('Bose QuietComfort Ultra', '空間オーディオ対応ヘッドホン', 59400.00, NULL, 40, 43, '{"type": "オーバーイヤー", "anc": true, "brand": "Bose"}', true),
  ('AirPods Max', 'Apple製高級ヘッドホン', 84800.00, 5.00, 25, 43, '{"type": "オーバーイヤー", "anc": true, "brand": "Apple"}', true),
  ('Sony WF-1000XM5', '最高峰の完全ワイヤレス', 41800.00, NULL, 70, 43, '{"type": "完全ワイヤレス", "anc": true, "brand": "Sony"}', true),

  -- スピーカー (44)
  ('JBL FLIP 6', '防水Bluetoothスピーカー', 14850.00, 20.00, 80, 44, '{"type": "ポータブル", "waterproof": "IP67", "brand": "JBL"}', true),
  ('Sonos Era 100', 'スマートスピーカー', 35800.00, NULL, 30, 44, '{"type": "スマートスピーカー", "assistant": "Alexa/AirPlay2", "brand": "Sonos"}', true),
  ('Bose SoundLink Flex', '高音質ポータブル', 19800.00, 15.00, 50, 44, '{"type": "ポータブル", "waterproof": "IP67", "brand": "Bose"}', true),
  ('HomePod mini', 'Apple製スマートスピーカー', 14800.00, NULL, 60, 44, '{"type": "スマートスピーカー", "assistant": "Siri", "brand": "Apple"}', true),

  -- デジタルカメラ (45)
  ('Sony α7 IV ボディ', 'フルサイズミラーレス一眼', 328900.00, NULL, 15, 45, '{"type": "ミラーレス一眼", "sensor": "フルサイズ", "megapixels": 33, "brand": "Sony"}', true),
  ('Canon EOS R6 Mark II', '高速連写対応フルサイズミラーレス', 365000.00, NULL, 12, 45, '{"type": "ミラーレス一眼", "sensor": "フルサイズ", "megapixels": 24.2, "brand": "Canon"}', true),
  ('Nikon Z8', 'フラッグシップ級の性能をコンパクトに', 598000.00, NULL, 8, 45, '{"type": "ミラーレス一眼", "sensor": "フルサイズ", "megapixels": 45.7, "brand": "Nikon"}', true),
  ('FUJIFILM X-T5', 'レトロデザインのAPS-Cミラーレス', 248600.00, 8.00, 20, 45, '{"type": "ミラーレス一眼", "sensor": "APS-C", "megapixels": 40.2, "brand": "Fujifilm"}', true),

  -- アクションカメラ (46)
  ('GoPro HERO12 Black', 'アクションカメラの定番', 62800.00, 10.00, 50, 46, '{"resolution": "5.3K", "waterproof": "10m", "brand": "GoPro"}', true),
  ('DJI Osmo Pocket 3', 'ポケットサイズのジンバルカメラ', 79200.00, NULL, 35, 46, '{"resolution": "4K", "stabilizer": "3軸ジンバル", "brand": "DJI"}', true),
  ('Insta360 X3', '360度カメラの決定版', 68000.00, 15.00, 25, 46, '{"resolution": "5.7K", "type": "360度", "brand": "Insta360"}', true),
  ('DJI Action 4', 'プロ仕様アクションカメラ', 57200.00, NULL, 40, 46, '{"resolution": "4K", "waterproof": "18m", "brand": "DJI"}', true),

  -- カメラアクセサリー (47)
  ('Sony SEL2470GM2', '標準ズームレンズの最高峰', 298100.00, NULL, 10, 47, '{"type": "レンズ", "focal": "24-70mm", "mount": "Eマウント", "brand": "Sony"}', true),
  ('Manfrotto 三脚 Befree', 'トラベル三脚', 24800.00, 20.00, 40, 47, '{"type": "三脚", "height": "150cm", "brand": "Manfrotto"}', true),
  ('Peak Design カメラストラップ', 'クイックリリース対応', 7480.00, NULL, 60, 47, '{"type": "ストラップ", "brand": "Peak Design"}', true),

  -- メンズトップス (48)
  ('無印良品 オーガニックコットンTシャツ', '肌触りの良いベーシックT', 1990.00, NULL, 300, 48, '{"size": ["S", "M", "L", "XL"], "color": "ホワイト", "brand": "無印良品"}', true),
  ('ラルフローレン ポロシャツ', 'アイコニックなポロシャツ', 16500.00, 30.00, 80, 48, '{"size": ["S", "M", "L", "XL"], "color": "ネイビー", "brand": "Ralph Lauren"}', true),
  ('チャンピオン リバースウィーブ パーカー', 'ヘビーウェイトスウェット', 14300.00, 20.00, 70, 48, '{"size": ["S", "M", "L", "XL"], "color": "グレー", "brand": "Champion"}', true),
  ('ユニクロ エアリズムポロシャツ', '快適な着心地', 2990.00, NULL, 200, 48, '{"size": ["S", "M", "L", "XL"], "color": "ブラック", "brand": "UNIQLO"}', true),

  -- メンズボトムス (49)
  ('リーバイス 501 オリジナルフィット', 'デニムの王道', 13200.00, 25.00, 100, 49, '{"size": ["28", "30", "32", "34"], "color": "インディゴ", "brand": "Levi''s"}', true),
  ('GU スウェットパンツ', 'リラックスウェア', 1990.00, NULL, 250, 49, '{"size": ["S", "M", "L", "XL"], "color": "ダークグレー", "brand": "GU"}', true),
  ('ユニクロ 感動パンツ', 'ビジネスカジュアル向け', 3990.00, 10.00, 180, 49, '{"size": ["S", "M", "L", "XL"], "color": "ネイビー", "brand": "UNIQLO"}', true),

  -- メンズアウター (50)
  ('ユニクロ ウルトラライトダウンジャケット', '軽くて暖かい定番ダウン', 6990.00, 30.00, 200, 50, '{"size": ["S", "M", "L", "XL"], "color": "ブラック", "brand": "UNIQLO"}', true),
  ('THE NORTH FACE マウンテンライトジャケット', 'GORE-TEX採用アウター', 39600.00, NULL, 50, 50, '{"size": ["S", "M", "L", "XL"], "color": "ニュートープ", "brand": "THE NORTH FACE"}', true),
  ('パタゴニア レトロX ジャケット', '人気フリースジャケット', 29700.00, NULL, 40, 50, '{"size": ["S", "M", "L", "XL"], "color": "ナチュラル", "brand": "Patagonia"}', true),

  -- レディーストップス (51)
  ('ユニクロ エアリズムブラトップ', '快適インナー', 1990.00, NULL, 200, 51, '{"size": ["S", "M", "L", "XL"], "color": "ブラック", "brand": "UNIQLO"}', true),
  ('H&M ニットカーディガン', '柔らかな着心地のカーデ', 4999.00, 40.00, 80, 51, '{"size": ["XS", "S", "M", "L"], "color": "ベージュ", "brand": "H&M"}', true),
  ('ジルスチュアート ブラウス', 'フェミニンなデザイン', 13200.00, 20.00, 35, 51, '{"size": ["0", "1", "2"], "color": "ホワイト", "brand": "JILL STUART"}', true),
  ('GRL リブニットトップス', 'プチプラで可愛い', 1299.00, 50.00, 150, 51, '{"size": ["F"], "color": "ピンク", "brand": "GRL"}', true),

  -- レディースボトムス (52)
  ('スナイデル フレアスカート', 'エレガントなシルエット', 15400.00, 30.00, 40, 52, '{"size": ["0", "1", "2"], "color": "ラベンダー", "brand": "SNIDEL"}', true),
  ('PLST ストレッチパンツ', 'オフィスカジュアルに', 6990.00, NULL, 90, 52, '{"size": ["S", "M", "L"], "color": "ネイビー", "brand": "PLST"}', true),
  ('ユニクロ スマートアンクルパンツ', 'きれいめパンツ', 3990.00, NULL, 120, 52, '{"size": ["S", "M", "L"], "color": "ブラック", "brand": "UNIQLO"}', true),

  -- ワンピース・ドレス (53)
  ('ZARA フローラルワンピース', '華やかな花柄ドレス', 7990.00, 35.00, 60, 53, '{"size": ["XS", "S", "M", "L"], "color": "マルチカラー", "brand": "ZARA"}', true),
  ('アーバンリサーチ シャツワンピース', 'カジュアルな一枚', 12100.00, NULL, 45, 53, '{"size": ["36", "38", "40"], "color": "カーキ", "brand": "URBAN RESEARCH"}', true),

  -- バッグ (54)
  ('ルイ・ヴィトン ネヴァーフルMM', 'アイコニックなトートバッグ', 253000.00, NULL, 10, 54, '{"type": "トートバッグ", "material": "モノグラムキャンバス", "brand": "Louis Vuitton"}', true),
  ('グッチ GGマーモント ショルダーバッグ', 'ダブルGが特徴的', 198000.00, NULL, 8, 54, '{"type": "ショルダーバッグ", "material": "レザー", "brand": "Gucci"}', true),
  ('コーチ シグネチャー トート', '実用的なデイリーバッグ', 59800.00, 30.00, 40, 54, '{"type": "トートバッグ", "material": "キャンバス", "brand": "Coach"}', true),
  ('アニエスベー ボヤージュ リュック', 'シンプルで使いやすい', 19800.00, NULL, 60, 54, '{"type": "リュック", "material": "ナイロン", "brand": "agnès b."}', true),
  ('ザ・ノースフェイス BCヒューズボックス', '大容量リュック', 18700.00, 15.00, 70, 54, '{"type": "リュック", "capacity": "30L", "brand": "THE NORTH FACE"}', true),

  -- スニーカー (55)
  ('ナイキ エアマックス 90', 'ストリートの定番', 16500.00, 20.00, 80, 55, '{"size": ["23.0-28.0"], "color": "ホワイト", "brand": "Nike"}', true),
  ('ニューバランス 990v6', 'Made in USAの名作', 36300.00, NULL, 40, 55, '{"size": ["23.0-28.0"], "color": "グレー", "brand": "New Balance"}', true),
  ('アディダス スタンスミス', '永遠の定番スニーカー', 14300.00, 25.00, 120, 55, '{"size": ["22.5-28.5"], "color": "ホワイト/グリーン", "brand": "adidas"}', true),
  ('コンバース オールスター', 'キャンバススニーカーの原点', 6380.00, NULL, 150, 55, '{"size": ["22.0-28.0"], "color": "ブラック", "brand": "Converse"}', true),

  -- ブーツ・革靴 (56)
  ('ドクターマーチン 1460 8ホールブーツ', 'パンクの象徴', 28600.00, 10.00, 50, 56, '{"size": ["22.0-28.0"], "color": "ブラック", "brand": "Dr. Martens"}', true),
  ('ビルケンシュトック アリゾナ', '健康サンダルの元祖', 14850.00, NULL, 70, 56, '{"size": ["35-44"], "color": "ブラウン", "brand": "Birkenstock"}', true),
  ('リーガル ストレートチップ', 'ビジネスシューズの定番', 27500.00, NULL, 40, 56, '{"size": ["24.0-27.0"], "color": "ブラック", "brand": "REGAL"}', true),

  -- ネックレス・ペンダント (57)
  ('ティファニー オープンハート ネックレス', 'エルサ・ペレッティの名作', 88000.00, NULL, 15, 57, '{"material": "シルバー", "brand": "Tiffany & Co."}', true),
  ('4℃ ダイヤモンドネックレス', 'シンプルな一粒ダイヤ', 33000.00, 15.00, 30, 57, '{"material": "K10ホワイトゴールド", "brand": "4℃"}', true),
  ('スワロフスキー クリスタルネックレス', '輝くクリスタル', 15400.00, 20.00, 45, 57, '{"material": "ロジウムコーティング", "brand": "Swarovski"}', true),

  -- 腕時計 (58)
  ('カルティエ タンクフランセーズ', 'クラシックな名作', 770000.00, NULL, 5, 58, '{"material": "ステンレススチール", "brand": "Cartier"}', true),
  ('ダニエルウェリントン クラシック', 'シンプルな腕時計', 26400.00, 30.00, 50, 58, '{"size": "40mm", "brand": "Daniel Wellington"}', true),
  ('セイコー プレザージュ', '日本製機械式', 66000.00, NULL, 25, 58, '{"movement": "自動巻き", "brand": "SEIKO"}', true),
  ('G-SHOCK GA-2100', 'カシオーク', 16500.00, 10.00, 80, 58, '{"brand": "CASIO", "water_resistant": "200m"}', true),

  -- サングラス・眼鏡 (59)
  ('レイバン ウェイファーラー', '不朽の名作サングラス', 23100.00, 15.00, 40, 59, '{"lens": "グリーンクラシック", "brand": "Ray-Ban"}', true),
  ('オークリー フロッグスキン', 'スポーツサングラス', 18700.00, NULL, 35, 59, '{"lens": "Prizm", "brand": "Oakley"}', true),

  -- 米・雑穀 (60)
  ('新潟県産コシヒカリ 5kg', '日本を代表するブランド米', 2980.00, NULL, 100, 60, '{"weight": "5kg", "origin": "新潟県"}', true),
  ('山形県産つや姫 5kg', 'つやと甘みが特徴', 3280.00, NULL, 80, 60, '{"weight": "5kg", "origin": "山形県"}', true),
  ('はくばく もち麦ごはん', '食物繊維たっぷり', 498.00, 10.00, 120, 60, '{"weight": "600g", "brand": "はくばく"}', true),

  -- パン (61)
  ('超熟 食パン 6枚切', 'もっちり食感の食パン', 198.00, NULL, 500, 61, '{"slices": 6, "brand": "Pasco"}', true),
  ('金の食パン', 'セブンプレミアムの高級食パン', 298.00, NULL, 400, 61, '{"slices": 4, "brand": "セブンプレミアム"}', true),

  -- 麺類 (62)
  ('マルちゃん正麺 醤油味 5食パック', 'まるで生麺のような食感', 498.00, NULL, 200, 62, '{"count": 5, "brand": "東洋水産"}', true),
  ('日清ラ王 豚骨 5食パック', '濃厚豚骨スープ', 548.00, NULL, 180, 62, '{"count": 5, "brand": "日清食品"}', true),
  ('揖保乃糸 素麺 300g', '播州の伝統そうめん', 398.00, NULL, 150, 62, '{"weight": "300g", "brand": "揖保乃糸"}', true),

  -- チョコレート・洋菓子 (63)
  ('ロイズ 生チョコレート オーレ', '北海道の人気チョコ', 864.00, NULL, 100, 63, '{"count": 20, "brand": "ROYCE''"}', true),
  ('白い恋人 24枚入', '北海道土産の定番', 1728.00, NULL, 80, 63, '{"count": 24, "brand": "石屋製菓"}', true),
  ('東京ばな奈 8個入', '東京土産の定番', 1188.00, NULL, 90, 63, '{"count": 8, "brand": "東京ばな奈"}', true),
  ('ゴディバ ゴールドコレクション', '高級チョコレート', 3240.00, 10.00, 40, 63, '{"count": 12, "brand": "GODIVA"}', true),

  -- 和菓子・せんべい (64)
  ('とらや 羊羹 夜の梅', '老舗の看板商品', 1728.00, NULL, 50, 64, '{"weight": "360g", "brand": "とらや"}', true),
  ('亀田製菓 ハッピーターン', '魔法の粉がクセになる', 298.00, NULL, 200, 64, '{"count": 32, "brand": "亀田製菓"}', true),

  -- スナック菓子 (65)
  ('カルビー ポテトチップス うすしお 60g', '定番ポテチ', 128.00, NULL, 500, 65, '{"weight": "60g", "brand": "カルビー"}', true),
  ('明治 きのこの山', '人気のチョコスナック', 198.00, NULL, 300, 65, '{"weight": "74g", "brand": "明治"}', true),
  ('湖池屋 プライドポテト', 'プレミアムポテチ', 198.00, NULL, 200, 65, '{"weight": "60g", "brand": "湖池屋"}', true),

  -- 水・お茶・ソフトドリンク (66)
  ('サントリー 天然水 2L×6本', 'ピュアな天然水', 498.00, NULL, 200, 66, '{"volume": "2L", "count": 6, "brand": "サントリー"}', true),
  ('コカ・コーラ 500ml×24本', '定番の炭酸飲料', 2280.00, 5.00, 150, 66, '{"volume": "500ml", "count": 24, "brand": "コカ・コーラ"}', true),
  ('伊藤園 お～いお茶 緑茶 525ml×24本', 'No.1緑茶ブランド', 2480.00, NULL, 180, 66, '{"volume": "525ml", "count": 24, "brand": "伊藤園"}', true),

  -- コーヒー・紅茶 (67)
  ('ネスカフェ ゴールドブレンド 120g', '定番インスタントコーヒー', 998.00, NULL, 150, 67, '{"weight": "120g", "brand": "ネスレ"}', true),
  ('AGF ちょっと贅沢な珈琲店', 'ドリップコーヒー', 598.00, NULL, 120, 67, '{"count": 14, "brand": "AGF"}', true),
  ('トワイニング アールグレイ', '紅茶の定番', 698.00, NULL, 100, 67, '{"count": 20, "brand": "Twinings"}', true),

  -- お酒 (68)
  ('アサヒ スーパードライ 350ml×24本', '辛口ビールの代表', 4980.00, NULL, 100, 68, '{"volume": "350ml", "count": 24, "brand": "アサヒ"}', true),
  ('獺祭 純米大吟醸45 720ml', '人気の日本酒', 3300.00, NULL, 50, 68, '{"volume": "720ml", "rice_polishing": "45%", "brand": "旭酒造"}', true),
  ('山崎 シングルモルト 700ml', '日本ウイスキーの代表', 15000.00, NULL, 20, 68, '{"volume": "700ml", "brand": "サントリー"}', true),
  ('キリン 一番搾り 350ml×24本', '一番搾り麦汁のみ使用', 4880.00, 5.00, 100, 68, '{"volume": "350ml", "count": 24, "brand": "キリン"}', true),

  -- 醤油・味噌・調味料 (69)
  ('キッコーマン 特選丸大豆しょうゆ 1L', '本醸造の醤油', 398.00, NULL, 200, 69, '{"volume": "1L", "brand": "キッコーマン"}', true),
  ('ミツカン 味ぽん 360ml', '万能調味料', 298.00, NULL, 180, 69, '{"volume": "360ml", "brand": "ミツカン"}', true),
  ('味の素 ほんだし 120g', '和食の基本だし', 398.00, NULL, 200, 69, '{"weight": "120g", "brand": "味の素"}', true),
  ('ハウス バーモントカレー 中辛 230g', '国民的カレールー', 298.00, NULL, 200, 69, '{"weight": "230g", "brand": "ハウス食品"}', true),

  -- オイル・ドレッシング (70)
  ('日清 オリーブオイル エキストラバージン 600g', '香り高いオリーブオイル', 898.00, NULL, 100, 70, '{"weight": "600g", "brand": "日清オイリオ"}', true),
  ('キューピー マヨネーズ 450g', '定番マヨ', 298.00, NULL, 250, 70, '{"weight": "450g", "brand": "キューピー"}', true),

  -- 小説・文学 (71)
  ('同志少女よ、敵を撃て', '2022年本屋大賞受賞作', 2090.00, NULL, 50, 71, '{"author": "逢坂冬馬", "publisher": "早川書房", "pages": 480}', true),
  ('汝、星のごとく', '2023年本屋大賞受賞作', 1870.00, NULL, 60, 71, '{"author": "凪良ゆう", "publisher": "講談社", "pages": 400}', true),
  ('成瀬は天下を取りにいく', '2024年本屋大賞受賞作', 1650.00, NULL, 70, 71, '{"author": "宮島未奈", "publisher": "新潮社", "pages": 272}', true),
  ('人間失格', '太宰治の名作', 308.00, NULL, 100, 71, '{"author": "太宰治", "publisher": "新潮文庫", "pages": 176}', true),

  -- ビジネス・経済 (72)
  ('嫌われる勇気', 'アドラー心理学入門', 1650.00, NULL, 80, 72, '{"author": "岸見一郎, 古賀史健", "publisher": "ダイヤモンド社", "pages": 296}', true),
  ('7つの習慣', '自己啓発の名著', 2420.00, NULL, 60, 72, '{"author": "スティーブン・R・コヴィー", "publisher": "キングベアー出版", "pages": 560}', true),
  ('イシューからはじめよ', '問題解決の技法', 1980.00, NULL, 70, 72, '{"author": "安宅和人", "publisher": "英治出版", "pages": 248}', true),

  -- 実用書・趣味 (73)
  ('料理の基本', '初心者向け料理本', 1650.00, NULL, 60, 73, '{"publisher": "オレンジページ", "pages": 200}', true),
  ('大人の語彙力ノート', '言葉の力を磨く', 1430.00, NULL, 80, 73, '{"author": "齋藤孝", "publisher": "SBクリエイティブ", "pages": 224}', true),

  -- 少年コミック (74)
  ('ONE PIECE 107巻', '国民的漫画最新刊', 528.00, NULL, 200, 74, '{"author": "尾田栄一郎", "publisher": "集英社", "volume": 107}', true),
  ('呪術廻戦 25巻', '人気ダークファンタジー', 528.00, NULL, 180, 74, '{"author": "芥見下々", "publisher": "集英社", "volume": 25}', true),
  ('チェンソーマン 16巻', '第二部連載中', 528.00, NULL, 160, 74, '{"author": "藤本タツキ", "publisher": "集英社", "volume": 16}', true),
  ('キングダム 71巻', '古代中国戦記', 715.00, NULL, 150, 74, '{"author": "原泰久", "publisher": "集英社", "volume": 71}', true),

  -- 少女・女性コミック (75)
  ('薬屋のひとりごと 13巻', '後宮ミステリー', 730.00, NULL, 100, 75, '{"author": "日向夏", "publisher": "スクウェア・エニックス", "volume": 13}', true),
  ('葬送のフリーレン 12巻', '2024年アニメ大ヒット', 550.00, NULL, 140, 75, '{"author": "山田鐘人, アベツカサ", "publisher": "小学館", "volume": 12}', true),

  -- ライトノベル (76)
  ('転生したらスライムだった件 22巻', '異世界転生の人気作', 1100.00, NULL, 80, 76, '{"author": "伏瀬", "publisher": "マイクロマガジン社"}', true),
  ('ソードアート・オンライン 27巻', 'SAOシリーズ', 693.00, NULL, 90, 76, '{"author": "川原礫", "publisher": "電撃文庫"}', true),

  -- 邦楽CD (77)
  ('あいみょん ベストアルバム', '人気曲を収録', 3300.00, NULL, 60, 77, '{"artist": "あいみょん", "tracks": 16}', true),
  ('米津玄師 LOST CORNER', '最新アルバム', 3300.00, NULL, 70, 77, '{"artist": "米津玄師", "tracks": 14}', true),
  ('Official髭男dism Editorial', '大ヒット曲収録', 3300.00, NULL, 65, 77, '{"artist": "Official髭男dism", "tracks": 12}', true),

  -- 洋楽CD (78)
  ('Taylor Swift 1989 (Taylor''s Version)', 'テイラーの再録盤', 3080.00, NULL, 50, 78, '{"artist": "Taylor Swift", "tracks": 21}', true),
  ('The Beatles Abbey Road', '名盤の50周年盤', 2750.00, NULL, 40, 78, '{"artist": "The Beatles", "tracks": 17}', true),

  -- Blu-ray・DVD (79)
  ('スラムダンク 映画 Blu-ray', '興行収入157億円の映画', 5280.00, 20.00, 80, 79, '{"title": "THE FIRST SLAM DUNK", "runtime": 124}', true),
  ('君の名は。4K ULTRA HD', '新海誠監督作品', 6380.00, NULL, 50, 79, '{"title": "君の名は。", "runtime": 107}', true),
  ('鬼滅の刃 刀鍛冶の里編 Blu-ray BOX', 'アニメシリーズ', 27500.00, 15.00, 30, 79, '{"title": "鬼滅の刃", "discs": 4}', true),

  -- ランニング用品 (80)
  ('ナイキ エアズームペガサス 40', '定番ランニングシューズ', 16500.00, 15.00, 80, 80, '{"size": ["24.0-29.0"], "brand": "Nike"}', true),
  ('アシックス ゲルカヤノ 30', '安定性重視のシューズ', 19800.00, NULL, 60, 80, '{"size": ["24.0-29.0"], "brand": "ASICS"}', true),
  ('アディダス ランニングウェア セット', '吸汗速乾素材', 8990.00, 30.00, 90, 80, '{"material": "クライマクール", "brand": "adidas"}', true),

  -- トレーニング用品 (81)
  ('ダンベル 可変式 24kg×2', '省スペース筋トレ', 29800.00, NULL, 40, 81, '{"weight": "24kg", "adjustable": true}', true),
  ('プッシュアップバー', '腕立て伏せ補助', 1980.00, NULL, 100, 81, '{"material": "スチール"}', true),
  ('トレーニングベンチ', '家庭用ベンチ', 12800.00, 10.00, 30, 81, '{"max_weight": "300kg"}', true),

  -- ヨガ・ピラティス (82)
  ('ヨガマット 6mm', 'クッション性抜群', 2980.00, NULL, 120, 82, '{"thickness": "6mm", "material": "TPE"}', true),
  ('ヨガブロック 2個セット', 'ポーズの補助に', 1680.00, NULL, 80, 82, '{"material": "EVA"}', true),

  -- テント・タープ (83)
  ('コールマン ツーリングドーム ST', '一人用テント', 19800.00, 20.00, 50, 83, '{"capacity": 1, "brand": "Coleman"}', true),
  ('スノーピーク アメニティドームM', 'ファミリーテント', 49800.00, NULL, 30, 83, '{"capacity": 5, "brand": "Snow Peak"}', true),

  -- シュラフ・マット (84)
  ('モンベル ダウンハガー800 #3', '3シーズン用寝袋', 34100.00, NULL, 40, 84, '{"comfort_temp": -2, "brand": "mont-bell"}', true),
  ('キャプテンスタッグ EVAフォームマット', '銀マット', 1980.00, NULL, 100, 84, '{"size": "182x56cm", "brand": "CAPTAIN STAG"}', true),

  -- 調理器具・ランタン (85)
  ('イワタニ カセットフー タフまる', 'アウトドアコンロ', 9980.00, NULL, 60, 85, '{"output": "3.3kW", "brand": "Iwatani"}', true),
  ('ジェントス LEDランタン', '1000ルーメンの明るさ', 5480.00, 15.00, 80, 85, '{"lumens": 1000, "brand": "GENTOS"}', true),

  -- サッカー・フットサル (86)
  ('アディダス サッカーボール 5号', 'FIFA公認球', 5990.00, NULL, 70, 86, '{"size": 5, "brand": "adidas"}', true),
  ('ナイキ マーキュリアル', 'サッカースパイク', 14300.00, 25.00, 50, 86, '{"brand": "Nike"}', true),

  -- 野球・ソフトボール (87)
  ('ミズノ 軟式グローブ', '内野手用', 16500.00, NULL, 35, 87, '{"position": "内野手", "brand": "MIZUNO"}', true),
  ('SSK 軟式バット', 'カーボン製', 12800.00, NULL, 40, 87, '{"material": "カーボン", "brand": "SSK"}', true),

  -- テニス・バドミントン (88)
  ('ウィルソン 硬式テニスラケット', '初心者向け', 12800.00, NULL, 40, 88, '{"weight": "285g", "brand": "Wilson"}', true),
  ('ヨネックス バドミントンラケット', 'オールラウンドモデル', 15400.00, NULL, 45, 88, '{"balance": "イーブン", "brand": "YONEX"}', true),

  -- ソファ・椅子 (89)
  ('ニトリ 3人掛けソファ', 'ファブリック素材', 39900.00, 15.00, 20, 89, '{"seats": 3, "material": "ファブリック", "brand": "ニトリ"}', true),
  ('オフィスチェア メッシュ', 'ランバーサポート付き', 19800.00, 20.00, 45, 89, '{"material": "メッシュ", "lumbar": true}', true),

  -- テーブル・デスク (90)
  ('デスク 120cm幅', 'ホームオフィス向け', 12800.00, NULL, 50, 90, '{"width": "120cm", "material": "合板"}', true),
  ('IKEA LACK コーヒーテーブル', 'シンプルデザイン', 1999.00, NULL, 80, 90, '{"size": "90x55cm", "brand": "IKEA"}', true),

  -- 収納家具 (91)
  ('IKEA KALLAX シェルフユニット', '4x4マス収納', 14990.00, NULL, 35, 91, '{"size": "147x147cm", "brand": "IKEA"}', true),
  ('カラーボックス 3段', '収納の定番', 1490.00, NULL, 200, 91, '{"tiers": 3, "brand": "ニトリ"}', true),

  -- 鍋・フライパン (92)
  ('ティファール フライパンセット', '取っ手の取れる 9点セット', 16800.00, 25.00, 50, 92, '{"pieces": 9, "brand": "T-fal"}', true),
  ('ル・クルーゼ ココット 22cm', '鋳物ホーロー鍋', 39600.00, NULL, 20, 92, '{"size": "22cm", "material": "鋳物ホーロー", "brand": "Le Creuset"}', true),
  ('バーミキュラ ライスポット', '究極の炊飯鍋', 86680.00, NULL, 15, 92, '{"capacity": "5合", "brand": "Vermicular"}', true),

  -- 包丁・調理器具 (93)
  ('貝印 関孫六 三徳包丁', '日本製包丁', 4980.00, NULL, 80, 93, '{"blade": "165mm", "brand": "貝印"}', true),
  ('OXO 計量カップ', '傾斜計量カップ', 1980.00, NULL, 100, 93, '{"capacity": "500ml", "brand": "OXO"}', true),

  -- 食器・カトラリー (94)
  ('サーモス 真空断熱タンブラー', '保温保冷', 2480.00, NULL, 120, 94, '{"capacity": "420ml", "brand": "THERMOS"}', true),
  ('野田琺瑯 ホワイトシリーズ', '保存容器 4点セット', 5980.00, NULL, 40, 94, '{"pieces": 4, "material": "琺瑯", "brand": "野田琺瑯"}', true),

  -- 寝具 (95)
  ('西川 羽毛布団 シングル', 'ホワイトダックダウン90%', 39800.00, 20.00, 30, 95, '{"size": "シングル", "fill": "ダウン90%", "brand": "西川"}', true),
  ('エアウィーヴ マットレス', '高反発マットレス', 99000.00, NULL, 20, 95, '{"size": "シングル", "brand": "airweave"}', true),
  ('テンピュール 枕', '低反発枕', 19800.00, 10.00, 50, 95, '{"material": "低反発", "brand": "TEMPUR"}', true),

  -- 掃除用品 (96)
  ('ダイソン V15 Detect', 'レーザー搭載掃除機', 98800.00, 10.00, 25, 96, '{"runtime": "60分", "brand": "Dyson"}', true),
  ('iRobot ルンバ j7+', 'お掃除ロボット', 129800.00, NULL, 20, 96, '{"self_empty": true, "brand": "iRobot"}', true),
  ('クイックルワイパー 本体', '床掃除の定番', 1280.00, NULL, 150, 96, '{"brand": "花王"}', true),

  -- 洗濯用品 (97)
  ('花王 アタックZERO 本体', '抗菌EX洗剤', 398.00, NULL, 200, 97, '{"volume": "400g", "brand": "花王"}', true),
  ('アイリスオーヤマ 衣類乾燥除湿機', '部屋干し対応', 19800.00, 15.00, 40, 97, '{"capacity": "6.5L/日", "brand": "アイリスオーヤマ"}', true),

  -- 化粧水・美容液 (98)
  ('SK-II フェイシャルトリートメントエッセンス', '話題の化粧水', 24200.00, NULL, 40, 98, '{"volume": "230ml", "brand": "SK-II"}', true),
  ('ランコム ジェニフィック', '美容液', 16500.00, 15.00, 35, 98, '{"volume": "30ml", "brand": "Lancôme"}', true),
  ('無印良品 化粧水 敏感肌用', '大容量でコスパ良し', 980.00, NULL, 200, 98, '{"volume": "400ml", "brand": "無印良品"}', true),

  -- メイクアップ (99)
  ('シャネル ルージュ ココ', '人気リップ', 5500.00, NULL, 50, 99, '{"brand": "CHANEL"}', true),
  ('ディオール アディクト リップ', 'グロッシーな仕上がり', 5280.00, NULL, 55, 99, '{"brand": "Dior"}', true),
  ('キャンメイク パーフェクトスタイリストアイズ', 'プチプラアイシャドウ', 858.00, NULL, 200, 99, '{"brand": "CANMAKE"}', true),

  -- 日焼け止め (100)
  ('ビオレ UV アクアリッチ', '日焼け止め', 880.00, NULL, 180, 100, '{"spf": 50, "volume": "50g", "brand": "花王"}', true),
  ('アネッサ パーフェクトUV', '最強日焼け止め', 2640.00, NULL, 100, 100, '{"spf": 50, "volume": "60ml", "brand": "資生堂"}', true),

  -- シャンプー・トリートメント (101)
  ('ボタニスト シャンプー ダメージケア', '植物由来成分', 1540.00, NULL, 150, 101, '{"volume": "490ml", "brand": "BOTANIST"}', true),
  ('ミルボン エルジューダ', '洗い流さないトリートメント', 2860.00, NULL, 80, 101, '{"volume": "120ml", "brand": "MILBON"}', true),

  -- ドライヤー・アイロン (102)
  ('ダイソン Dyson Supersonic', '高級ドライヤー', 48800.00, 10.00, 30, 102, '{"brand": "Dyson"}', true),
  ('パナソニック ナノケア', '高浸透ナノイー搭載', 32800.00, NULL, 45, 102, '{"brand": "Panasonic"}', true),
  ('リファ ビューテック ストレートアイロン', '水・熱・圧コントロール', 22000.00, NULL, 35, 102, '{"brand": "ReFa"}', true),

  -- ボディソープ・入浴剤 (103)
  ('バスクリン 日本の名湯', '温泉気分の入浴剤', 880.00, NULL, 150, 103, '{"count": 30, "brand": "バスクリン"}', true),
  ('ダヴ ボディウォッシュ', '保湿ボディソープ', 498.00, NULL, 200, 103, '{"volume": "500g", "brand": "Dove"}', true),

  -- ビタミン・ミネラル (104)
  ('ディアナチュラ マルチビタミン', '必須ビタミン配合', 598.00, NULL, 150, 104, '{"count": 60, "brand": "Dear-Natura"}', true),
  ('DHC ビタミンC', 'ハードカプセル', 298.00, NULL, 200, 104, '{"count": 60, "brand": "DHC"}', true),
  ('ネイチャーメイド 鉄', '女性に人気', 798.00, NULL, 120, 104, '{"count": 80, "brand": "Nature Made"}', true),

  -- ダイエットサプリ (105)
  ('ファンケル カロリミット', 'ダイエットサポート', 1563.00, NULL, 100, 105, '{"count": 120, "brand": "FANCL"}', true),
  ('小林製薬 ナイシトール', '内臓脂肪対策', 3980.00, NULL, 80, 105, '{"count": 336, "brand": "小林製薬"}', true),

  -- プロテイン (106)
  ('ザバス ホエイプロテイン 1050g', '定番プロテイン', 4980.00, 20.00, 100, 106, '{"flavor": "ココア", "weight": "1050g", "brand": "SAVAS"}', true),
  ('マイプロテイン Impact ホエイ', 'コスパ最強', 3490.00, 35.00, 80, 106, '{"flavor": "ナチュラルチョコレート", "weight": "1kg", "brand": "Myprotein"}', true),

  -- ゲーム機本体 (107)
  ('Nintendo Switch (有機ELモデル)', '大画面有機EL搭載', 37980.00, NULL, 50, 107, '{"brand": "Nintendo"}', true),
  ('PlayStation 5', '次世代ゲーム機', 66980.00, NULL, 30, 107, '{"brand": "Sony"}', true),
  ('Xbox Series X', 'マイクロソフトの最新機', 59978.00, NULL, 25, 107, '{"brand": "Microsoft"}', true),

  -- ゲームソフト (108)
  ('ゼルダの伝説 ティアーズ オブ ザ キングダム', '2023年大ヒット作', 7920.00, NULL, 100, 108, '{"platform": "Switch", "brand": "Nintendo"}', true),
  ('ファイナルファンタジーXVI', 'FFシリーズ最新作', 9680.00, 30.00, 80, 108, '{"platform": "PS5", "brand": "Square Enix"}', true),
  ('マリオカート8 デラックス', '定番レースゲーム', 6578.00, NULL, 120, 108, '{"platform": "Switch", "brand": "Nintendo"}', true),
  ('スプラトゥーン3', '人気アクションゲーム', 6578.00, NULL, 90, 108, '{"platform": "Switch", "brand": "Nintendo"}', true),

  -- ゲーム周辺機器 (109)
  ('DualSense ワイヤレスコントローラー', 'PS5用コントローラー', 9480.00, NULL, 60, 109, '{"platform": "PS5", "brand": "Sony"}', true),
  ('Nintendo Switch Proコントローラー', '快適操作', 7678.00, NULL, 70, 109, '{"platform": "Switch", "brand": "Nintendo"}', true),

  -- ボードゲーム (110)
  ('カタン スタンダード版', '世界的人気ボドゲ', 4400.00, NULL, 40, 110, '{"players": "3-4人", "time": "60-90分"}', true),
  ('人生ゲーム', '定番すごろく', 4378.00, NULL, 60, 110, '{"players": "2-6人", "brand": "タカラトミー"}', true),
  ('モノポリー クラシック', '不動産取引ゲーム', 3278.00, NULL, 50, 110, '{"players": "2-8人", "brand": "Hasbro"}', true),

  -- カードゲーム (111)
  ('ドミニオン 基本セット', 'デッキ構築ゲーム', 4950.00, NULL, 35, 111, '{"players": "2-4人", "time": "30分"}', true),
  ('ウノ', '定番カードゲーム', 1100.00, NULL, 150, 111, '{"players": "2-10人", "brand": "Mattel"}', true),
  ('ナンジャモンジャ', '子供も楽しめる', 1540.00, NULL, 80, 111, '{"players": "2-6人", "age": "4歳以上"}', true),

  -- パズル (112)
  ('ルービックキューブ', '定番パズル', 2420.00, NULL, 100, 112, '{"size": "3x3", "brand": "メガハウス"}', true),
  ('レゴ クラシック 黄色のアイデアボックス', '自由に組み立て', 4480.00, NULL, 80, 112, '{"pieces": 484, "age": "4歳以上", "brand": "LEGO"}', true),

  -- フィギュア (113)
  ('ねんどろいど 初音ミク', 'デフォルメフィギュア', 5500.00, NULL, 40, 113, '{"series": "ねんどろいど", "brand": "Good Smile Company"}', true),
  ('figma 進撃の巨人 エレン', '可動フィギュア', 8800.00, NULL, 25, 113, '{"series": "figma", "brand": "Max Factory"}', true),

  -- プラモデル (114)
  ('ガンプラ RG ユニコーンガンダム', 'リアルグレード', 4950.00, NULL, 60, 114, '{"grade": "RG", "brand": "BANDAI"}', true),
  ('ガンプラ MG フリーダムガンダム', 'マスターグレード', 5500.00, NULL, 45, 114, '{"grade": "MG", "brand": "BANDAI"}', true),
  ('タミヤ ミニ四駆 PRO', 'レースホビーの定番', 1320.00, NULL, 100, 114, '{"brand": "TAMIYA"}', true),

  -- ミニカー・鉄道模型 (115)
  ('トミカ プレミアム GT-R', 'ダイキャストカー', 990.00, NULL, 80, 115, '{"scale": "1/64", "brand": "タカラトミー"}', true),
  ('プラレール 新幹線', '鉄道玩具', 2750.00, NULL, 70, 115, '{"brand": "タカラトミー"}', true);

-- ============================================
-- 注文データ (様々なステータスの注文)
-- 注文しないユーザー: 15, 27, 33, 38, 44, 47, 50
-- 各ユーザーの注文数: 1〜10件
-- ============================================
INSERT INTO orders (user_id, status, total_amount, ordered_at) VALUES
  -- user_id: 1 (10件)
  (1, 'delivered', 189800.00, NOW() - INTERVAL '350 days'),
  (1, 'delivered', 3280.00, NOW() - INTERVAL '320 days'),
  (1, 'delivered', 59800.00, NOW() - INTERVAL '280 days'),
  (1, 'delivered', 16500.00, NOW() - INTERVAL '240 days'),
  (1, 'delivered', 4980.00, NOW() - INTERVAL '200 days'),
  (1, 'delivered', 24200.00, NOW() - INTERVAL '150 days'),
  (1, 'shipped', 39600.00, NOW() - INTERVAL '45 days'),
  (1, 'paid', 12800.00, NOW() - INTERVAL '10 days'),
  (1, 'pending', 7920.00, NOW() - INTERVAL '2 days'),
  (1, 'pending', 2990.00, NOW() - INTERVAL '6 hours'),

  -- user_id: 2 (8件)
  (2, 'delivered', 164800.00, NOW() - INTERVAL '340 days'),
  (2, 'delivered', 6990.00, NOW() - INTERVAL '290 days'),
  (2, 'delivered', 13200.00, NOW() - INTERVAL '230 days'),
  (2, 'delivered', 864.00, NOW() - INTERVAL '180 days'),
  (2, 'delivered', 7990.00, NOW() - INTERVAL '120 days'),
  (2, 'shipped', 49800.00, NOW() - INTERVAL '30 days'),
  (2, 'paid', 3300.00, NOW() - INTERVAL '8 days'),
  (2, 'pending', 1650.00, NOW() - INTERVAL '1 day'),

  -- user_id: 3 (7件)
  (3, 'delivered', 298000.00, NOW() - INTERVAL '330 days'),
  (3, 'delivered', 39800.00, NOW() - INTERVAL '270 days'),
  (3, 'delivered', 16940.00, NOW() - INTERVAL '210 days'),
  (3, 'delivered', 528.00, NOW() - INTERVAL '160 days'),
  (3, 'shipped', 86680.00, NOW() - INTERVAL '25 days'),
  (3, 'paid', 5500.00, NOW() - INTERVAL '5 days'),
  (3, 'pending', 2980.00, NOW() - INTERVAL '12 hours'),

  -- user_id: 4 (6件)
  (4, 'delivered', 253000.00, NOW() - INTERVAL '310 days'),
  (4, 'delivered', 36850.00, NOW() - INTERVAL '250 days'),
  (4, 'delivered', 2420.00, NOW() - INTERVAL '190 days'),
  (4, 'shipped', 62800.00, NOW() - INTERVAL '20 days'),
  (4, 'paid', 19800.00, NOW() - INTERVAL '4 days'),
  (4, 'cancelled', 99000.00, NOW() - INTERVAL '35 days'),

  -- user_id: 5 (9件)
  (5, 'delivered', 328900.00, NOW() - INTERVAL '345 days'),
  (5, 'delivered', 49500.00, NOW() - INTERVAL '300 days'),
  (5, 'delivered', 1990.00, NOW() - INTERVAL '260 days'),
  (5, 'delivered', 14300.00, NOW() - INTERVAL '220 days'),
  (5, 'delivered', 4400.00, NOW() - INTERVAL '170 days'),
  (5, 'delivered', 598.00, NOW() - INTERVAL '130 days'),
  (5, 'shipped', 129800.00, NOW() - INTERVAL '18 days'),
  (5, 'paid', 6578.00, NOW() - INTERVAL '6 days'),
  (5, 'pending', 32800.00, NOW() - INTERVAL '1 day'),

  -- user_id: 6 (5件)
  (6, 'delivered', 179800.00, NOW() - INTERVAL '335 days'),
  (6, 'delivered', 1540.00, NOW() - INTERVAL '285 days'),
  (6, 'delivered', 4480.00, NOW() - INTERVAL '195 days'),
  (6, 'shipped', 176800.00, NOW() - INTERVAL '22 days'),
  (6, 'paid', 1320.00, NOW() - INTERVAL '3 days'),

  -- user_id: 7 (4件)
  (7, 'delivered', 159900.00, NOW() - INTERVAL '325 days'),
  (7, 'delivered', 2090.00, NOW() - INTERVAL '265 days'),
  (7, 'shipped', 39900.00, NOW() - INTERVAL '15 days'),
  (7, 'paid', 10560.00, NOW() - INTERVAL '2 days'),

  -- user_id: 8 (7件)
  (8, 'delivered', 98800.00, NOW() - INTERVAL '355 days'),
  (8, 'delivered', 5500.00, NOW() - INTERVAL '305 days'),
  (8, 'delivered', 128.00, NOW() - INTERVAL '245 days'),
  (8, 'delivered', 3490.00, NOW() - INTERVAL '185 days'),
  (8, 'shipped', 66980.00, NOW() - INTERVAL '28 days'),
  (8, 'paid', 4990.00, NOW() - INTERVAL '7 days'),
  (8, 'pending', 2990.00, NOW() - INTERVAL '8 hours'),

  -- user_id: 9 (3件)
  (9, 'delivered', 249800.00, NOW() - INTERVAL '315 days'),
  (9, 'delivered', 880.00, NOW() - INTERVAL '175 days'),
  (9, 'shipped', 16500.00, NOW() - INTERVAL '12 days'),

  -- user_id: 10 (6件)
  (10, 'delivered', 59800.00, NOW() - INTERVAL '360 days'),
  (10, 'delivered', 62800.00, NOW() - INTERVAL '295 days'),
  (10, 'delivered', 1650.00, NOW() - INTERVAL '235 days'),
  (10, 'delivered', 2980.00, NOW() - INTERVAL '165 days'),
  (10, 'shipped', 24200.00, NOW() - INTERVAL '32 days'),
  (10, 'paid', 7990.00, NOW() - INTERVAL '5 days'),

  -- user_id: 11 (8件)
  (11, 'delivered', 128800.00, NOW() - INTERVAL '348 days'),
  (11, 'delivered', 50600.00, NOW() - INTERVAL '288 days'),
  (11, 'delivered', 14850.00, NOW() - INTERVAL '228 days'),
  (11, 'delivered', 35800.00, NOW() - INTERVAL '168 days'),
  (11, 'delivered', 19800.00, NOW() - INTERVAL '108 days'),
  (11, 'shipped', 62800.00, NOW() - INTERVAL '24 days'),
  (11, 'paid', 3300.00, NOW() - INTERVAL '4 days'),
  (11, 'pending', 1870.00, NOW() - INTERVAL '10 hours'),

  -- user_id: 12 (5件)
  (12, 'delivered', 172800.00, NOW() - INTERVAL '338 days'),
  (12, 'delivered', 92800.00, NOW() - INTERVAL '258 days'),
  (12, 'delivered', 124800.00, NOW() - INTERVAL '178 days'),
  (12, 'shipped', 176800.00, NOW() - INTERVAL '19 days'),
  (12, 'paid', 49800.00, NOW() - INTERVAL '3 days'),

  -- user_id: 13 (4件)
  (13, 'delivered', 79800.00, NOW() - INTERVAL '328 days'),
  (13, 'delivered', 49800.00, NOW() - INTERVAL '218 days'),
  (13, 'cancelled', 298100.00, NOW() - INTERVAL '65 days'),
  (13, 'shipped', 24800.00, NOW() - INTERVAL '14 days'),

  -- user_id: 14 (6件)
  (14, 'delivered', 16940.00, NOW() - INTERVAL '318 days'),
  (14, 'delivered', 36850.00, NOW() - INTERVAL '248 days'),
  (14, 'delivered', 2990.00, NOW() - INTERVAL '188 days'),
  (14, 'delivered', 16500.00, NOW() - INTERVAL '128 days'),
  (14, 'shipped', 14300.00, NOW() - INTERVAL '21 days'),
  (14, 'paid', 6380.00, NOW() - INTERVAL '2 days'),

  -- user_id: 15 は注文なし

  -- user_id: 16 (7件)
  (16, 'delivered', 298800.00, NOW() - INTERVAL '358 days'),
  (16, 'delivered', 178000.00, NOW() - INTERVAL '298 days'),
  (16, 'delivered', 248000.00, NOW() - INTERVAL '238 days'),
  (16, 'delivered', 59800.00, NOW() - INTERVAL '158 days'),
  (16, 'delivered', 39800.00, NOW() - INTERVAL '98 days'),
  (16, 'shipped', 49500.00, NOW() - INTERVAL '26 days'),
  (16, 'paid', 41800.00, NOW() - INTERVAL '6 days'),

  -- user_id: 17 (3件)
  (17, 'delivered', 14850.00, NOW() - INTERVAL '308 days'),
  (17, 'delivered', 19800.00, NOW() - INTERVAL '148 days'),
  (17, 'paid', 14800.00, NOW() - INTERVAL '1 day'),

  -- user_id: 18 (9件)
  (18, 'delivered', 365000.00, NOW() - INTERVAL '352 days'),
  (18, 'delivered', 598000.00, NOW() - INTERVAL '302 days'),
  (18, 'delivered', 248600.00, NOW() - INTERVAL '252 days'),
  (18, 'delivered', 62800.00, NOW() - INTERVAL '202 days'),
  (18, 'delivered', 79200.00, NOW() - INTERVAL '152 days'),
  (18, 'delivered', 68000.00, NOW() - INTERVAL '102 days'),
  (18, 'shipped', 57200.00, NOW() - INTERVAL '33 days'),
  (18, 'paid', 7480.00, NOW() - INTERVAL '9 days'),
  (18, 'pending', 1990.00, NOW() - INTERVAL '4 hours'),

  -- user_id: 19 (1件)
  (19, 'delivered', 16500.00, NOW() - INTERVAL '278 days'),

  -- user_id: 20 (5件)
  (20, 'delivered', 2980.00, NOW() - INTERVAL '342 days'),
  (20, 'delivered', 3280.00, NOW() - INTERVAL '242 days'),
  (20, 'delivered', 498.00, NOW() - INTERVAL '142 days'),
  (20, 'shipped', 548.00, NOW() - INTERVAL '17 days'),
  (20, 'paid', 398.00, NOW() - INTERVAL '3 days'),

  -- user_id: 21 (10件)
  (21, 'delivered', 864.00, NOW() - INTERVAL '362 days'),
  (21, 'delivered', 1728.00, NOW() - INTERVAL '322 days'),
  (21, 'delivered', 1188.00, NOW() - INTERVAL '282 days'),
  (21, 'delivered', 3240.00, NOW() - INTERVAL '242 days'),
  (21, 'delivered', 1728.00, NOW() - INTERVAL '202 days'),
  (21, 'delivered', 298.00, NOW() - INTERVAL '162 days'),
  (21, 'delivered', 128.00, NOW() - INTERVAL '122 days'),
  (21, 'shipped', 198.00, NOW() - INTERVAL '38 days'),
  (21, 'paid', 198.00, NOW() - INTERVAL '8 days'),
  (21, 'pending', 498.00, NOW() - INTERVAL '16 hours'),

  -- user_id: 22 (4件)
  (22, 'delivered', 2280.00, NOW() - INTERVAL '312 days'),
  (22, 'delivered', 2480.00, NOW() - INTERVAL '212 days'),
  (22, 'shipped', 998.00, NOW() - INTERVAL '23 days'),
  (22, 'paid', 598.00, NOW() - INTERVAL '4 days'),

  -- user_id: 23 (6件)
  (23, 'delivered', 698.00, NOW() - INTERVAL '356 days'),
  (23, 'delivered', 4980.00, NOW() - INTERVAL '286 days'),
  (23, 'delivered', 3300.00, NOW() - INTERVAL '216 days'),
  (23, 'delivered', 15000.00, NOW() - INTERVAL '146 days'),
  (23, 'shipped', 4880.00, NOW() - INTERVAL '27 days'),
  (23, 'paid', 398.00, NOW() - INTERVAL '5 days'),

  -- user_id: 24 (8件)
  (24, 'delivered', 298.00, NOW() - INTERVAL '346 days'),
  (24, 'delivered', 398.00, NOW() - INTERVAL '296 days'),
  (24, 'delivered', 898.00, NOW() - INTERVAL '246 days'),
  (24, 'delivered', 298.00, NOW() - INTERVAL '196 days'),
  (24, 'delivered', 2090.00, NOW() - INTERVAL '136 days'),
  (24, 'shipped', 1870.00, NOW() - INTERVAL '31 days'),
  (24, 'paid', 1650.00, NOW() - INTERVAL '7 days'),
  (24, 'pending', 528.00, NOW() - INTERVAL '14 hours'),

  -- user_id: 25 (3件)
  (25, 'delivered', 1980.00, NOW() - INTERVAL '306 days'),
  (25, 'delivered', 2420.00, NOW() - INTERVAL '156 days'),
  (25, 'shipped', 1430.00, NOW() - INTERVAL '16 days'),

  -- user_id: 26 (7件)
  (26, 'delivered', 528.00, NOW() - INTERVAL '364 days'),
  (26, 'delivered', 730.00, NOW() - INTERVAL '304 days'),
  (26, 'delivered', 550.00, NOW() - INTERVAL '244 days'),
  (26, 'delivered', 1100.00, NOW() - INTERVAL '184 days'),
  (26, 'delivered', 693.00, NOW() - INTERVAL '124 days'),
  (26, 'shipped', 3300.00, NOW() - INTERVAL '29 days'),
  (26, 'paid', 3300.00, NOW() - INTERVAL '6 days'),

  -- user_id: 27 は注文なし

  -- user_id: 28 (5件)
  (28, 'delivered', 3080.00, NOW() - INTERVAL '334 days'),
  (28, 'delivered', 2750.00, NOW() - INTERVAL '234 days'),
  (28, 'delivered', 5280.00, NOW() - INTERVAL '134 days'),
  (28, 'shipped', 6380.00, NOW() - INTERVAL '34 days'),
  (28, 'paid', 27500.00, NOW() - INTERVAL '9 days'),

  -- user_id: 29 (4件)
  (29, 'delivered', 16500.00, NOW() - INTERVAL '324 days'),
  (29, 'delivered', 19800.00, NOW() - INTERVAL '204 days'),
  (29, 'shipped', 8990.00, NOW() - INTERVAL '13 days'),
  (29, 'paid', 29800.00, NOW() - INTERVAL '2 days'),

  -- user_id: 30 (6件)
  (30, 'delivered', 1980.00, NOW() - INTERVAL '354 days'),
  (30, 'delivered', 12800.00, NOW() - INTERVAL '274 days'),
  (30, 'delivered', 2980.00, NOW() - INTERVAL '194 days'),
  (30, 'delivered', 1680.00, NOW() - INTERVAL '114 days'),
  (30, 'shipped', 19800.00, NOW() - INTERVAL '36 days'),
  (30, 'paid', 49800.00, NOW() - INTERVAL '8 days'),

  -- user_id: 31 (8件)
  (31, 'delivered', 34100.00, NOW() - INTERVAL '344 days'),
  (31, 'delivered', 1980.00, NOW() - INTERVAL '294 days'),
  (31, 'delivered', 9980.00, NOW() - INTERVAL '244 days'),
  (31, 'delivered', 5480.00, NOW() - INTERVAL '194 days'),
  (31, 'delivered', 5990.00, NOW() - INTERVAL '144 days'),
  (31, 'delivered', 14300.00, NOW() - INTERVAL '94 days'),
  (31, 'shipped', 16500.00, NOW() - INTERVAL '22 days'),
  (31, 'paid', 12800.00, NOW() - INTERVAL '4 days'),

  -- user_id: 32 (2件)
  (32, 'delivered', 15400.00, NOW() - INTERVAL '284 days'),
  (32, 'shipped', 12800.00, NOW() - INTERVAL '18 days'),

  -- user_id: 33 は注文なし

  -- user_id: 34 (9件)
  (34, 'delivered', 39900.00, NOW() - INTERVAL '359 days'),
  (34, 'delivered', 19800.00, NOW() - INTERVAL '319 days'),
  (34, 'delivered', 12800.00, NOW() - INTERVAL '279 days'),
  (34, 'delivered', 1999.00, NOW() - INTERVAL '239 days'),
  (34, 'delivered', 14990.00, NOW() - INTERVAL '199 days'),
  (34, 'delivered', 1490.00, NOW() - INTERVAL '159 days'),
  (34, 'shipped', 16800.00, NOW() - INTERVAL '37 days'),
  (34, 'paid', 39600.00, NOW() - INTERVAL '10 days'),
  (34, 'pending', 86680.00, NOW() - INTERVAL '1 day'),

  -- user_id: 35 (5件)
  (35, 'delivered', 4980.00, NOW() - INTERVAL '329 days'),
  (35, 'delivered', 1980.00, NOW() - INTERVAL '229 days'),
  (35, 'delivered', 2480.00, NOW() - INTERVAL '129 days'),
  (35, 'shipped', 5980.00, NOW() - INTERVAL '25 days'),
  (35, 'paid', 39800.00, NOW() - INTERVAL '5 days'),

  -- user_id: 36 (4件)
  (36, 'delivered', 99000.00, NOW() - INTERVAL '349 days'),
  (36, 'delivered', 39800.00, NOW() - INTERVAL '249 days'),
  (36, 'shipped', 19800.00, NOW() - INTERVAL '35 days'),
  (36, 'paid', 32800.00, NOW() - INTERVAL '7 days'),

  -- user_id: 37 (7件)
  (37, 'delivered', 98800.00, NOW() - INTERVAL '339 days'),
  (37, 'delivered', 129800.00, NOW() - INTERVAL '289 days'),
  (37, 'delivered', 59978.00, NOW() - INTERVAL '239 days'),
  (37, 'delivered', 7920.00, NOW() - INTERVAL '189 days'),
  (37, 'delivered', 9680.00, NOW() - INTERVAL '139 days'),
  (37, 'shipped', 6578.00, NOW() - INTERVAL '28 days'),
  (37, 'paid', 6578.00, NOW() - INTERVAL '6 days'),

  -- user_id: 38 は注文なし

  -- user_id: 39 (6件)
  (39, 'delivered', 9480.00, NOW() - INTERVAL '357 days'),
  (39, 'delivered', 7678.00, NOW() - INTERVAL '287 days'),
  (39, 'delivered', 4400.00, NOW() - INTERVAL '217 days'),
  (39, 'cancelled', 4378.00, NOW() - INTERVAL '85 days'),
  (39, 'shipped', 3278.00, NOW() - INTERVAL '30 days'),
  (39, 'paid', 4950.00, NOW() - INTERVAL '8 days'),

  -- user_id: 40 (3件)
  (40, 'delivered', 1100.00, NOW() - INTERVAL '317 days'),
  (40, 'delivered', 1540.00, NOW() - INTERVAL '177 days'),
  (40, 'shipped', 2420.00, NOW() - INTERVAL '15 days'),

  -- user_id: 41 (10件)
  (41, 'delivered', 4480.00, NOW() - INTERVAL '361 days'),
  (41, 'delivered', 5500.00, NOW() - INTERVAL '321 days'),
  (41, 'delivered', 8800.00, NOW() - INTERVAL '281 days'),
  (41, 'delivered', 4950.00, NOW() - INTERVAL '241 days'),
  (41, 'delivered', 5500.00, NOW() - INTERVAL '201 days'),
  (41, 'delivered', 1320.00, NOW() - INTERVAL '161 days'),
  (41, 'delivered', 990.00, NOW() - INTERVAL '121 days'),
  (41, 'shipped', 2750.00, NOW() - INTERVAL '41 days'),
  (41, 'paid', 37980.00, NOW() - INTERVAL '11 days'),
  (41, 'pending', 66980.00, NOW() - INTERVAL '3 days'),

  -- user_id: 42 (5件)
  (42, 'delivered', 24200.00, NOW() - INTERVAL '351 days'),
  (42, 'delivered', 16500.00, NOW() - INTERVAL '251 days'),
  (42, 'delivered', 980.00, NOW() - INTERVAL '151 days'),
  (42, 'shipped', 5280.00, NOW() - INTERVAL '24 days'),
  (42, 'paid', 2860.00, NOW() - INTERVAL '4 days'),

  -- user_id: 43 (4件)
  (43, 'delivered', 48800.00, NOW() - INTERVAL '331 days'),
  (43, 'delivered', 32800.00, NOW() - INTERVAL '221 days'),
  (43, 'shipped', 22000.00, NOW() - INTERVAL '19 days'),
  (43, 'paid', 880.00, NOW() - INTERVAL '2 days'),

  -- user_id: 44 は注文なし

  -- user_id: 45 (6件)
  (45, 'delivered', 598.00, NOW() - INTERVAL '363 days'),
  (45, 'delivered', 298.00, NOW() - INTERVAL '303 days'),
  (45, 'delivered', 798.00, NOW() - INTERVAL '243 days'),
  (45, 'delivered', 1563.00, NOW() - INTERVAL '183 days'),
  (45, 'shipped', 3980.00, NOW() - INTERVAL '39 days'),
  (45, 'paid', 4980.00, NOW() - INTERVAL '9 days'),

  -- user_id: 46 (8件)
  (46, 'delivered', 3490.00, NOW() - INTERVAL '353 days'),
  (46, 'delivered', 880.00, NOW() - INTERVAL '293 days'),
  (46, 'delivered', 498.00, NOW() - INTERVAL '233 days'),
  (46, 'delivered', 2640.00, NOW() - INTERVAL '173 days'),
  (46, 'delivered', 1540.00, NOW() - INTERVAL '113 days'),
  (46, 'shipped', 2860.00, NOW() - INTERVAL '33 days'),
  (46, 'paid', 858.00, NOW() - INTERVAL '7 days'),
  (46, 'pending', 2420.00, NOW() - INTERVAL '18 hours'),

  -- user_id: 47 は注文なし

  -- user_id: 48 (3件)
  (48, 'delivered', 39800.00, NOW() - INTERVAL '313 days'),
  (48, 'delivered', 19800.00, NOW() - INTERVAL '163 days'),
  (48, 'shipped', 1280.00, NOW() - INTERVAL '20 days'),

  -- user_id: 49 (7件)
  (49, 'delivered', 398.00, NOW() - INTERVAL '343 days'),
  (49, 'delivered', 19800.00, NOW() - INTERVAL '283 days'),
  (49, 'delivered', 1280.00, NOW() - INTERVAL '223 days'),
  (49, 'delivered', 128.00, NOW() - INTERVAL '153 days'),
  (49, 'delivered', 198.00, NOW() - INTERVAL '93 days'),
  (49, 'shipped', 298.00, NOW() - INTERVAL '23 days'),
  (49, 'paid', 398.00, NOW() - INTERVAL '3 days'),

  -- user_id: 50 は注文なし

  -- 追加のcancelled注文（バランス調整）
  (4, 'cancelled', 59800.00, NOW() - INTERVAL '75 days'),
  (7, 'cancelled', 24200.00, NOW() - INTERVAL '55 days'),
  (11, 'cancelled', 16500.00, NOW() - INTERVAL '45 days'),
  (18, 'cancelled', 32800.00, NOW() - INTERVAL '70 days'),
  (23, 'cancelled', 7990.00, NOW() - INTERVAL '60 days'),
  (31, 'cancelled', 3300.00, NOW() - INTERVAL '50 days'),
  (37, 'cancelled', 49500.00, NOW() - INTERVAL '80 days'),
  (46, 'cancelled', 1990.00, NOW() - INTERVAL '68 days');

-- ============================================
-- 注文明細 (order_items)
-- ============================================
-- 各注文に1-5個の商品を紐付け
-- CROSS JOIN LATERAL:
--   右側のサブクエリが左側(orders)の各行に対して実行されます。
--   サブクエリでは左側(orders)の各行を参照できるようになります。
INSERT INTO order_items (order_id, product_id, quantity, unit_price)
SELECT
  o.id,
  p.id,
  -- 商品の価格によって購入個数を制御
  CASE
    WHEN p.price > 50000 THEN 1
    WHEN p.price > 10000 THEN floor(random() * 2 + 1)::int
    ELSE floor(random() * 4 + 1)::int
  END,
  p.price
FROM orders o
CROSS JOIN LATERAL (
  SELECT id, price
  FROM products
  WHERE o.id IS NOT NULL  -- NOTE: キャッシュされた結果が使われないように外側のテーブルを参照
  ORDER BY random()
  LIMIT (floor(random() * 5 + 1)::int)  -- 1 ~ 5件の商品を抽出
) p
ON CONFLICT DO NOTHING;