-- Seed data for development environment -- Run after all migrations -- Admin user (password: admin123) INSERT INTO users (id, phone, email, password_hash, nickname, kyc_level, role, status) VALUES ('00000000-0000-0000-0000-000000000001', '13800000001', 'admin@gogenex.com', '$2b$10$XkVVYGq8R0HqL8xKxLqNnOQ.pTR9Kf5r0tB3iZxQfHqhLrM0B0xKy', 'System Admin', 3, 'admin', 'active') ON CONFLICT (id) DO NOTHING; -- Test users (password: test123) INSERT INTO users (id, phone, email, password_hash, nickname, kyc_level, role, status) VALUES ('00000000-0000-0000-0000-000000000002', '13800000002', 'user1@test.com', '$2b$10$XkVVYGq8R0HqL8xKxLqNnOQ.pTR9Kf5r0tB3iZxQfHqhLrM0B0xKy', 'Test User 1', 2, 'user', 'active'), ('00000000-0000-0000-0000-000000000003', '13800000003', 'user2@test.com', '$2b$10$XkVVYGq8R0HqL8xKxLqNnOQ.pTR9Kf5r0tB3iZxQfHqhLrM0B0xKy', 'Test User 2', 1, 'user', 'active'), ('00000000-0000-0000-0000-000000000004', '13800000004', 'issuer1@test.com', '$2b$10$XkVVYGq8R0HqL8xKxLqNnOQ.pTR9Kf5r0tB3iZxQfHqhLrM0B0xKy', 'Test Issuer 1', 3, 'issuer', 'active'), ('00000000-0000-0000-0000-000000000005', '13800000005', 'mm@test.com', '$2b$10$XkVVYGq8R0HqL8xKxLqNnOQ.pTR9Kf5r0tB3iZxQfHqhLrM0B0xKy', 'Market Maker 1', 3, 'market_maker', 'active') ON CONFLICT (id) DO NOTHING; -- Wallets for all users INSERT INTO wallets (user_id, balance, frozen, currency) VALUES ('00000000-0000-0000-0000-000000000001', 0, 0, 'USD'), ('00000000-0000-0000-0000-000000000002', 10000.00, 0, 'USD'), ('00000000-0000-0000-0000-000000000003', 5000.00, 0, 'USD'), ('00000000-0000-0000-0000-000000000004', 50000.00, 0, 'USD'), ('00000000-0000-0000-0000-000000000005', 100000.00, 0, 'USD') ON CONFLICT (user_id) DO NOTHING; -- Test issuers INSERT INTO issuers (id, user_id, company_name, business_license, credit_rating, credit_score, issuance_quota, tier, status) VALUES ('10000000-0000-0000-0000-000000000001', '00000000-0000-0000-0000-000000000004', 'Genex Coffee Co.', 'BL-2024-001', 'A', 75.00, 500000, 'gold', 'active'), ('10000000-0000-0000-0000-000000000002', NULL, 'Digital Mall Inc.', 'BL-2024-002', 'AA', 85.00, 1000000, 'platinum', 'active'), ('10000000-0000-0000-0000-000000000003', NULL, 'Fresh Mart Ltd.', 'BL-2024-003', 'BBB', 62.00, 200000, 'silver', 'active'), ('10000000-0000-0000-0000-000000000004', NULL, 'Cloud Cinema Group', 'BL-2024-004', 'AAA', 92.00, 2000000, 'diamond', 'active') ON CONFLICT (id) DO NOTHING; -- Test stores INSERT INTO stores (issuer_id, name, address, phone) VALUES ('10000000-0000-0000-0000-000000000001', 'Genex Coffee 旗舰店', '上海市浦东新区陆家嘴环路1000号', '021-12345678'), ('10000000-0000-0000-0000-000000000001', 'Genex Coffee 南京路店', '上海市黄浦区南京东路100号', '021-87654321'), ('10000000-0000-0000-0000-000000000002', 'Digital Mall 线上商城', 'https://mall.digitalmall.com', '400-123-4567'), ('10000000-0000-0000-0000-000000000003', 'Fresh Mart 超市总店', '北京市朝阳区建国路88号', '010-11223344'), ('10000000-0000-0000-0000-000000000004', 'Cloud Cinema IMAX', '深圳市南山区科技园路200号', '0755-55667788') ON CONFLICT DO NOTHING; -- Test coupons INSERT INTO coupons (id, issuer_id, name, description, face_value, current_price, issue_price, total_supply, remaining_supply, expiry_date, coupon_type, category, status) VALUES ('20000000-0000-0000-0000-000000000001', '10000000-0000-0000-0000-000000000001', '咖啡畅饮券', '任意门店任意饮品一杯', 50.00, 42.50, 45.00, 1000, 800, CURRENT_DATE + INTERVAL '180 days', 'utility', '餐饮', 'listed'), ('20000000-0000-0000-0000-000000000002', '10000000-0000-0000-0000-000000000001', '精品手冲体验券', '指定门店精品手冲咖啡体验', 128.00, 108.80, 118.00, 500, 350, CURRENT_DATE + INTERVAL '90 days', 'utility', '餐饮', 'listed'), ('20000000-0000-0000-0000-000000000003', '10000000-0000-0000-0000-000000000002', '数码商城100元代金券', '全场通用,满500可用', 100.00, 85.00, 90.00, 5000, 3200, CURRENT_DATE + INTERVAL '365 days', 'utility', '购物', 'listed'), ('20000000-0000-0000-0000-000000000004', '10000000-0000-0000-0000-000000000003', '生鲜超市50元券', '满200减50,不含酒水', 50.00, 40.00, 42.00, 2000, 1500, CURRENT_DATE + INTERVAL '60 days', 'utility', '生鲜', 'listed'), ('20000000-0000-0000-0000-000000000005', '10000000-0000-0000-0000-000000000004', 'IMAX电影票', '任意场次IMAX 3D电影一张', 120.00, 96.00, 100.00, 800, 600, CURRENT_DATE + INTERVAL '120 days', 'utility', '娱乐', 'listed'), ('20000000-0000-0000-0000-000000000006', '10000000-0000-0000-0000-000000000004', '年度影院会员卡', '全年无限次观影', 999.00, 849.15, 899.00, 200, 150, CURRENT_DATE + INTERVAL '365 days', 'utility', '娱乐', 'listed') ON CONFLICT (id) DO NOTHING; -- Test coupon rules INSERT INTO coupon_rules (coupon_id, rule_type, rule_value) VALUES ('20000000-0000-0000-0000-000000000001', 'transferable', '{"enabled": true}'), ('20000000-0000-0000-0000-000000000001', 'resale_limit', '{"max_count": 3}'), ('20000000-0000-0000-0000-000000000001', 'per_user_limit', '{"max_quantity": 5}'), ('20000000-0000-0000-0000-000000000003', 'min_purchase', '{"min_amount": 500}'), ('20000000-0000-0000-0000-000000000003', 'transferable', '{"enabled": true}'), ('20000000-0000-0000-0000-000000000003', 'resale_limit', '{"max_count": 2}'), ('20000000-0000-0000-0000-000000000004', 'store_restriction', '{"store_ids": ["all_fresh_mart"]}'), ('20000000-0000-0000-0000-000000000004', 'stacking', '{"enabled": false}') ON CONFLICT DO NOTHING; -- Test messages INSERT INTO messages (user_id, title, content, type) VALUES ('00000000-0000-0000-0000-000000000002', '欢迎加入Genex', '您已成功注册Genex账户,开始探索券金融的世界吧!', 'system'), ('00000000-0000-0000-0000-000000000002', 'KYC认证通过', '您的KYC L2认证已通过,现在可以进行更多交易。', 'kyc'), ('00000000-0000-0000-0000-000000000003', '欢迎加入Genex', '您已成功注册Genex账户。', 'system') ON CONFLICT DO NOTHING; -- Address mappings INSERT INTO address_mappings (user_id, chain_address) VALUES ('00000000-0000-0000-0000-000000000002', '0x1234567890abcdef1234567890abcdef12345678'), ('00000000-0000-0000-0000-000000000003', '0xabcdef1234567890abcdef1234567890abcdef12'), ('00000000-0000-0000-0000-000000000004', '0x567890abcdef1234567890abcdef1234567890ab'), ('00000000-0000-0000-0000-000000000005', '0x890abcdef1234567890abcdef1234567890abcdef') ON CONFLICT (user_id) DO NOTHING;