-- Generated at 2026-06-11T10:58:49.589Z
-- Import e.g. via phpMyAdmin or: mysql -u USER -p DBNAME < model-directory-mysql.sql


CREATE TABLE `assets` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` TEXT NOT NULL,
  `description` TEXT,
  `category` TEXT NOT NULL,
  `url` TEXT NOT NULL,
  `icon_name` TEXT,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `assets` (`id`, `title`, `description`, `category`, `url`, `icon_name`, `created_at`) VALUES
(1, 'Style Guide 2024', 'Complete brand and style guidelines for professional shoots', 'Documentation', 'https://example.com/style-guide', 'BookOpen', '2026-06-09 09:44:19'),
(2, 'Rate Card Template', 'Standard rate card template for talent negotiations', 'Templates', 'https://example.com/rate-card', 'DollarSign', '2026-06-09 09:44:20'),
(3, 'Contract Templates', 'Model release and usage agreement templates', 'Legal', 'https://example.com/contracts', 'FileText', '2026-06-09 09:44:22'),
(4, 'Location Scouting App', 'Premium location scouting tool with 50k+ verified locations', 'Tools', 'https://example.com/locations', 'MapPin', '2026-06-09 09:44:23'),
(5, 'Photo Editing Suite', 'Professional retouching and editing tools for members', 'Tools', 'https://example.com/editing', 'Image', '2026-06-09 09:44:26'),
(6, 'Industry Contacts', 'Curated directory of casting directors, agents, and creatives', 'Network', 'https://example.com/contacts', 'Users', '2026-06-09 09:44:27'),
(7, 'Travel Insurance Guide', 'Recommended travel and equipment insurance for models', 'Documentation', 'https://example.com/insurance', 'Shield', '2026-06-09 09:44:29'),
(8, 'Portfolio Builder', 'AI-powered portfolio creation and hosting platform', 'Tools', 'https://example.com/portfolio', 'Layout', '2026-06-09 09:44:31');

CREATE TABLE `bookings` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `profile_id` INT,
  `location_id` INT,
  `status` TEXT NOT NULL,
  `notes` TEXT,
  `scheduled_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  `service_id` INT,
  `duration` TEXT,
  `location_type` TEXT,
  `total_price` INT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `bookings` (`id`, `user_id`, `profile_id`, `location_id`, `status`, `notes`, `scheduled_at`, `created_at`, `updated_at`, `service_id`, `duration`, `location_type`, `total_price`) VALUES
(2, 2, 2, 3, 'completed', 'Editorial shoot for Vogue feature.', NULL, '2026-06-09 09:45:17', '2026-06-09 09:45:17', NULL, NULL, NULL, NULL),
(3, 3, 4, 2, 'pending', 'Beauty campaign booking request.', NULL, '2026-06-09 09:45:19', '2026-06-09 09:45:19', NULL, NULL, NULL, NULL),
(5, 4, 3, 5, 'completed', 'Swimwear campaign - Miami Beach location.', NULL, '2026-06-09 09:45:22', '2026-06-09 09:45:22', NULL, NULL, NULL, NULL),
(8, 5, 1, 2, 'cancelled', '', NULL, '2026-06-09 10:45:05', '2026-06-09 10:45:07', NULL, NULL, NULL, NULL),
(11, 9, 10, NULL, 'pending', 'e2e', '2026-07-01 10:00:00', '2026-06-09 11:14:30', '2026-06-09 11:14:30', 1, 'full_day', 'customer_location', 20500),
(12, 9, 10, NULL, 'pending', NULL, '2026-07-02 10:00:00', '2026-06-09 11:14:30', '2026-06-09 11:14:30', 1, '1h', 'in_studio', 3000),
(13, 12, 12, NULL, 'pending', NULL, '2026-07-02 10:00:00', '2026-06-09 11:18:25', '2026-06-09 11:18:25', 1, '1h', 'in_studio', 3000),
(1, 2, 1, 1, 'accepted', 'Runway prep session for the spring collection.', NULL, '2026-06-09 09:45:16', '2026-06-09 09:45:16', NULL, NULL, NULL, NULL),
(4, 3, 5, 4, 'accepted', 'Street style shoot for brand launch.', NULL, '2026-06-09 09:45:21', '2026-06-09 09:45:21', NULL, NULL, NULL, NULL),
(7, 1, 1, NULL, 'accepted', NULL, '2026-06-28 14:00:00', '2026-06-09 10:43:07', '2026-06-09 10:43:07', 1, '2h', 'customer_location', 575),
(14, 24, 1, NULL, 'accepted', NULL, '2026-06-11 05:00:00', '2026-06-10 07:05:36', '2026-06-10 07:05:36', 1, '1h', 'in_studio', 3000),
(17, 32, 19, NULL, 'completed', NULL, '2026-07-01 10:00:00', '2026-06-10 09:52:22', '2026-06-10 09:52:22', 1, '2h', 'in_studio', 5500),
(16, 30, 15, NULL, 'accepted', NULL, '2026-06-16 09:00:00', '2026-06-10 09:40:58', '2026-06-10 10:38:08', 1, '1h', 'customer_location', 533),
(10, 1, 1, NULL, 'paid', NULL, '2026-06-10 10:00:00', '2026-06-09 10:54:35', '2026-06-10 10:45:56', 1, '1h', 'in_studio', 250),
(15, 30, 15, NULL, 'proof_uploaded', NULL, '2026-06-26 07:00:00', '2026-06-10 07:40:19', '2026-06-10 10:46:33', 1, '1h', 'in_studio', 33);

CREATE TABLE `favorites` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `profile_id` INT NOT NULL,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `favorites_user_profile_unique` (`user_id`, `profile_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `locations` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` TEXT NOT NULL,
  `city` TEXT NOT NULL,
  `type` TEXT NOT NULL,
  `rating` DOUBLE NOT NULL,
  `photo_url` TEXT,
  `description` TEXT,
  `address` TEXT,
  `is_featured` TINYINT(1) NOT NULL,
  `is_active` TINYINT(1) NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `locations` (`id`, `name`, `city`, `type`, `rating`, `photo_url`, `description`, `address`, `is_featured`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'The St. Regis New York', 'New York', 'hotel', 4.9, 'https://images.unsplash.com/photo-1566073771259-6a8506099945?w=400&q=80', 'Iconic luxury hotel in Midtown Manhattan. Perfect for high-end editorial shoots.', '2 E 55th St, New York, NY 10022', 1, 1, '2026-06-09 09:44:04', '2026-06-09 09:44:04'),
(2, 'Chateau Marmont', 'Los Angeles', 'hotel', 4.7, 'https://images.unsplash.com/photo-1551882547-ff40c63fe5fa?w=400&q=80', 'Legendary Hollywood hideaway. Discreet, storied, and iconic.', '8221 Sunset Blvd, Los Angeles, CA 90046', 1, 1, '2026-06-09 09:44:06', '2026-06-09 09:44:06'),
(3, 'The Lightbox Studio', 'New York', 'venue', 4.8, 'https://images.unsplash.com/photo-1598928506311-c55ded91a20c?w=400&q=80', 'State-of-the-art photography studio with 20,000 sq ft of space in Chelsea.', '259 W 30th St, New York, NY 10001', 1, 1, '2026-06-09 09:44:08', '2026-06-09 09:44:08'),
(4, 'Malibu Compound', 'Los Angeles', 'safehouse', 4.9, 'https://images.unsplash.com/photo-1613977257363-707ba9348227?w=400&q=80', 'Private oceanfront estate. Complete privacy for exclusive sessions.', 'Malibu, CA (address on booking)', 1, 1, '2026-06-09 09:44:09', '2026-06-09 09:44:09'),
(5, 'Ritz Paris', 'Paris', 'hotel', 5, 'https://images.unsplash.com/photo-1548614606-52b4451f994b?w=400&q=80', 'The definitive luxury address in Paris. Iconic Vendôme location.', '15 Pl. Vendôme, 75001 Paris, France', 1, 1, '2026-06-09 09:44:11', '2026-06-09 09:44:11'),
(6, 'Shoreditch Warehouse', 'London', 'venue', 4.6, 'https://images.unsplash.com/photo-1497366216548-37526070297c?w=400&q=80', 'Raw industrial space converted into a versatile creative studio.', 'Shoreditch, London E1 (address on booking)', 0, 1, '2026-06-09 09:44:13', '2026-06-09 09:44:13'),
(7, 'South Beach Villa', 'Miami', 'safehouse', 4.8, 'https://images.unsplash.com/photo-1512917774080-9991f1c4c750?w=400&q=80', 'Exclusive waterfront villa in South Beach. Complete privacy guaranteed.', 'Miami Beach, FL (address on booking)', 1, 1, '2026-06-09 09:44:15', '2026-06-09 09:44:15'),
(8, 'Aman Tokyo', 'Tokyo', 'hotel', 4.9, 'https://images.unsplash.com/photo-1590490360182-c33d57733427?w=400&q=80', 'Urban sanctuary above the Otemachi Tower with sweeping city views.', '1-5-6 Otemachi, Chiyoda City, Tokyo', 0, 1, '2026-06-09 09:44:17', '2026-06-09 09:44:17');

CREATE TABLE `membership_payments` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `plan_id` INT NOT NULL,
  `method` TEXT NOT NULL,
  `transaction_id` TEXT NOT NULL,
  `amount` INT NOT NULL,
  `payment_number` TEXT NOT NULL,
  `status` TEXT NOT NULL,
  `note` TEXT,
  `reviewed_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `membership_payments_one_pending_per_user` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `membership_payments` (`id`, `user_id`, `plan_id`, `method`, `transaction_id`, `amount`, `payment_number`, `status`, `note`, `reviewed_at`, `created_at`) VALUES
(1, 16, 3, 'bkash', 'TRX12345TEST', 999, '+8801XXXXXXXXX', 'approved', NULL, '2026-06-10 06:13:25', '2026-06-10 06:13:24'),
(2, 17, 2, 'nagad', 'REJTRX', 499, '+8801XXXXXXXXX', 'rejected', 'Invalid transaction', '2026-06-10 06:13:49', '2026-06-10 06:13:49'),
(3, 18, 4, 'rocket', 'HARDTRX', 1999, '+8801XXXXXXXXX', 'approved', NULL, '2026-06-10 06:17:33', '2026-06-10 06:17:32');

CREATE TABLE `memberships` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `tier` TEXT NOT NULL,
  `expires_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `memberships_user_id_unique` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `memberships` (`id`, `user_id`, `tier`, `expires_at`, `created_at`, `updated_at`) VALUES
(4, 4, 'free', NULL, '2026-06-09 09:45:14', '2026-06-09 09:45:14'),
(5, 5, 'free', NULL, '2026-06-09 10:23:07', '2026-06-09 10:23:07'),
(6, 6, 'free', NULL, '2026-06-09 11:12:30', '2026-06-09 11:12:30'),
(7, 7, 'free', NULL, '2026-06-09 11:12:42', '2026-06-09 11:12:42'),
(8, 8, 'free', NULL, '2026-06-09 11:12:54', '2026-06-09 11:12:54'),
(9, 9, 'free', NULL, '2026-06-09 11:13:45', '2026-06-09 11:13:45'),
(10, 10, 'free', NULL, '2026-06-09 11:17:49', '2026-06-09 11:17:49'),
(11, 11, 'free', NULL, '2026-06-09 11:17:50', '2026-06-09 11:17:50'),
(12, 12, 'free', NULL, '2026-06-09 11:18:23', '2026-06-09 11:18:23'),
(13, 13, 'free', NULL, '2026-06-09 11:18:24', '2026-06-09 11:18:24'),
(14, 14, 'free', NULL, '2026-06-09 11:23:05', '2026-06-09 11:23:05'),
(15, 15, 'free', NULL, '2026-06-09 11:23:05', '2026-06-09 11:23:05'),
(1, 1, 'vip', NULL, '2026-06-09 09:45:09', '2026-06-09 09:45:09'),
(2, 2, 'premium', NULL, '2026-06-09 09:45:10', '2026-06-09 09:45:10'),
(3, 3, 'basic', NULL, '2026-06-09 09:45:12', '2026-06-09 09:45:12'),
(16, 16, 'premium', '2026-07-10 06:13:25', '2026-06-10 06:13:24', '2026-06-10 06:13:25'),
(17, 17, 'free', NULL, '2026-06-10 06:13:49', '2026-06-10 06:13:49'),
(18, 18, 'vip', '2026-07-10 06:17:33', '2026-06-10 06:17:32', '2026-06-10 06:17:33'),
(22, 22, 'free', NULL, '2026-06-10 07:00:51', '2026-06-10 07:00:51'),
(24, 24, 'free', NULL, '2026-06-10 07:02:48', '2026-06-10 07:02:48'),
(30, 30, 'free', NULL, '2026-06-10 07:39:24', '2026-06-10 07:39:24'),
(31, 31, 'free', NULL, '2026-06-10 09:49:03', '2026-06-10 09:49:03'),
(32, 32, 'free', NULL, '2026-06-10 09:49:03', '2026-06-10 09:49:03'),
(33, 33, 'free', NULL, '2026-06-10 09:49:48', '2026-06-10 09:49:48'),
(35, 35, 'free', NULL, '2026-06-10 09:50:36', '2026-06-10 09:50:36');

CREATE TABLE `order_proofs` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `booking_id` INT NOT NULL,
  `user_id` INT NOT NULL,
  `photo_url` TEXT NOT NULL,
  `status` TEXT NOT NULL,
  `note` TEXT,
  `reviewed_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `order_proofs` (`id`, `booking_id`, `user_id`, `photo_url`, `status`, `note`, `reviewed_at`, `created_at`) VALUES
(4, 15, 22, '/api/storage/objects/uploads/a0b68987-add9-4038-add6-06ccd37815d2', 'pending', NULL, NULL, '2026-06-10 10:46:33');

CREATE TABLE `payment_methods` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `method` TEXT NOT NULL,
  `label` TEXT NOT NULL,
  `receiving_number` TEXT NOT NULL,
  `instructions` TEXT,
  `is_active` TINYINT(1) NOT NULL,
  `sort_order` INT NOT NULL,
  `updated_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `payment_methods_method_unique` (`method`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `payment_methods` (`id`, `method`, `label`, `receiving_number`, `instructions`, `is_active`, `sort_order`, `updated_at`) VALUES
(2, 'nagad', 'Nagad', '+8801XXXXXXXXX', 'Send Money to this Nagad number, then submit your Transaction ID.', 1, 1, '2026-06-10 06:04:43'),
(3, 'rocket', 'Rocket', '+8801XXXXXXXXX', 'Send Money to this Rocket number, then submit your Transaction ID.', 1, 2, '2026-06-10 06:04:43'),
(4, 'bank', 'Bank Transfer', '', 'Transfer to our bank account, then submit the reference/Transaction ID.', 1, 3, '2026-06-10 06:04:43'),
(1, 'bkash', 'bKash', '+8801XXXXXXXXX', 'Send Money to this bKash number, then submit your Transaction ID.', 1, 0, '2026-06-10 06:14:03');

CREATE TABLE `profile_photos` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `profile_id` INT NOT NULL,
  `url` TEXT NOT NULL,
  `sort_order` INT NOT NULL,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `profiles` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `profile_id` TEXT NOT NULL,
  `name` TEXT NOT NULL,
  `city` TEXT NOT NULL,
  `photo_url` TEXT,
  `bio` TEXT,
  `is_featured` TINYINT(1) NOT NULL,
  `is_active` TINYINT(1) NOT NULL,
  `tags` TEXT NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  `user_id` INT,
  `pro_status` TEXT,
  `price_1h` INT,
  `price_2h` INT,
  `price_full_day` INT,
  `services` TEXT,
  `contact_platform` TEXT,
  `whatsapp_number` TEXT,
  `approval_status` TEXT NOT NULL,
  `price_night` INT,
  PRIMARY KEY (`id`),
  UNIQUE KEY `profiles_profile_id_unique` (`profile_id`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `profiles` (`id`, `profile_id`, `name`, `city`, `photo_url`, `bio`, `is_featured`, `is_active`, `tags`, `created_at`, `updated_at`, `user_id`, `pro_status`, `price_1h`, `price_2h`, `price_full_day`, `services`, `contact_platform`, `whatsapp_number`, `approval_status`, `price_night`) VALUES
(1, 'MDL-0001', 'Aria Montclair', 'New York', 'https://images.unsplash.com/photo-1529626455594-4ff0802cfb7e?w=400&q=80', '15 years in editorial and runway. Specializes in high-concept fashion campaigns.', 1, 1, '["editorial","luxury","runway"]', '2026-06-09 09:43:26', '2026-06-09 09:43:26', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(2, 'MDL-0002', 'Sienna Voss', 'Los Angeles', 'https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=400&q=80', 'Commercial and fitness specialist. Based in LA, available globally.', 1, 1, '["commercial","fitness","lifestyle"]', '2026-06-09 09:43:28', '2026-06-09 09:43:28', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(3, 'MDL-0003', 'Kamille D\'Santos', 'Miami', 'https://images.unsplash.com/photo-1517841905240-472988babdf9?w=400&q=80', 'Miami-based swimwear and luxury brand specialist.', 1, 1, '["swimwear","luxury","beach"]', '2026-06-09 09:43:30', '2026-06-09 09:43:30', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(4, 'MDL-0004', 'Remy Laurent', 'Paris', 'https://images.unsplash.com/photo-1524504388940-b1c1722653e1?w=400&q=80', 'Parisian editorial model. Works with the top European houses.', 1, 1, '["haute couture","editorial"]', '2026-06-09 09:43:32', '2026-06-09 09:43:32', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(5, 'MDL-0005', 'Zoe Blake', 'London', 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=400&q=80', 'Known for bold editorial work in London\'s underground fashion scene.', 0, 1, '["street style","avant-garde","editorial"]', '2026-06-09 09:43:34', '2026-06-09 09:43:34', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(6, 'MDL-0006', 'Mila Chen', 'Tokyo', 'https://images.unsplash.com/photo-1488426862026-3ee34a7d66df?w=400&q=80', 'Tokyo-based beauty and commercial talent.', 1, 1, '["commercial","beauty","J-fashion"]', '2026-06-09 09:43:36', '2026-06-09 09:43:36', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(7, 'MDL-0007', 'Anya Petrova', 'Moscow', 'https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?w=400&q=80', 'Russian luxury model. Extensive European campaign work.', 0, 1, '["luxury","couture","editorial"]', '2026-06-09 09:43:38', '2026-06-09 09:43:38', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(8, 'MDL-0008', 'Lena Okafor', 'Lagos', 'https://images.unsplash.com/photo-1531123897727-8f129e1688ce?w=400&q=80', 'Bringing African fashion to the global stage through editorial work.', 1, 1, '["editorial","culture","lifestyle"]', '2026-06-09 09:43:40', '2026-06-09 09:43:40', NULL, 'professional', 3000, 5500, 20000, NULL, 'whatsapp', '+8801700000000', 'approved', NULL),
(10, 'MDL-0010', 'E2E Model', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-09 11:13:45', '2026-06-09 11:13:46', 9, 'professional', 3000, 5500, 20000, 'Photoshoot', 'whatsapp', '+8801700000000', 'approved', NULL),
(12, 'MDL-0012', 'Pending Model', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-09 11:18:24', '2026-06-09 11:18:25', 13, 'professional', 3000, 5500, 20000, 'x', 'whatsapp', '+880170', 'approved', NULL),
(11, 'MDL-0011', 'Pending Model', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-09 11:17:50', '2026-06-10 06:02:29', 11, 'professional', 3000, 5500, 20000, 'x', 'whatsapp', '+880170', 'approved', NULL),
(13, 'MDL-0013', 'Detail Pending', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-09 11:23:05', '2026-06-10 06:02:32', 14, 'professional', 3000, 5500, 20000, 'x', 'whatsapp', '+880170', 'approved', NULL),
(9, 'MDL-0009', 'Test Model', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-09 11:12:54', '2026-06-10 09:36:35', 8, 'professional', 3000, 5500, 20000, 'Photoshoot, Runway', 'whatsapp', '+8801700000000', 'rejected', NULL),
(15, 'MDL-0015', 'fjhauif', 'dhaka', NULL, 'te', 0, 1, '[]', '2026-06-10 07:00:51', '2026-06-10 09:40:04', 22, 'professional', 33, 535, 75785, 'ndfn', 'whatsapp', '0178455411', 'approved', NULL),
(19, 'MDL-0019', 'E2E Pay Model', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-10 09:49:03', '2026-06-10 09:49:03', 31, 'professional', 3000, 5500, 20000, 'photoshoot', 'whatsapp', '01700000000', 'approved', NULL),
(20, 'MDL-0020', 'E2E Pay Model2', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-10 09:49:48', '2026-06-10 09:49:48', 33, 'professional', 3000, 5500, 20000, 'photoshoot', 'whatsapp', '01700000000', 'approved', NULL),
(22, 'MDL-0022', 'E2E Pay M3', 'Dhaka', NULL, NULL, 0, 1, '[]', '2026-06-10 09:50:36', '2026-06-10 09:50:40', 35, 'professional', 3000, 5500, 20000, 'photoshoot', 'whatsapp', '01700000000', 'approved', NULL);

CREATE TABLE `services` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` TEXT NOT NULL,
  `description` TEXT,
  `hourly_rate` INT NOT NULL,
  `is_active` TINYINT(1) NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `services` (`id`, `name`, `description`, `hourly_rate`, `is_active`, `created_at`, `updated_at`) VALUES
(1, 'Photoshoot', 'Professional photography session for editorial, commercial, or portfolio work.', 250, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01'),
(2, 'Runway / Fashion Show', 'Runway modeling for fashion shows and live presentations.', 400, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01'),
(3, 'Brand Campaign', 'Featured talent for advertising and brand marketing campaigns.', 500, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01'),
(4, 'Video / Commercial Shoot', 'On-camera talent for video, commercials, and motion content.', 350, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01'),
(5, 'Event Appearance', 'Promotional and hosting appearances at events and launches.', 300, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01'),
(6, 'Fitting / Showroom', 'Garment fittings and showroom presentations.', 150, 1, '2026-06-09 10:34:01', '2026-06-09 10:34:01');

CREATE TABLE `wallet_deposits` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `amount` INT NOT NULL,
  `method` TEXT NOT NULL,
  `transaction_id` TEXT NOT NULL,
  `status` TEXT NOT NULL,
  `note` TEXT,
  `reviewed_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `wallet_deposits` (`id`, `user_id`, `amount`, `method`, `transaction_id`, `status`, `note`, `reviewed_at`, `created_at`) VALUES
(1, 32, 10000, 'bkash', 'TXN123', 'approved', NULL, '2026-06-10 09:49:04', '2026-06-10 09:49:04');

CREATE TABLE `wallet_transactions` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `type` TEXT NOT NULL,
  `amount` INT NOT NULL,
  `balance_after` INT NOT NULL,
  `booking_id` INT,
  `description` TEXT,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `wallet_transactions` (`id`, `user_id`, `type`, `amount`, `balance_after`, `booking_id`, `description`, `created_at`) VALUES
(1, 32, 'deposit', 10000, 10000, NULL, 'Deposit approved (bkash)', '2026-06-10 09:49:04'),
(2, 32, 'order_payment', -5500, 4500, 17, 'Payment for booking #17', '2026-06-10 09:52:22'),
(3, 31, 'earning', 4950, 4950, 17, 'Earnings from booking #17', '2026-06-10 09:52:22'),
(4, 1, 'commission', 550, 550, 17, 'Commission from booking #17', '2026-06-10 09:52:22'),
(5, 31, 'withdrawal', -4000, 950, NULL, 'Withdrawal request (bkash)', '2026-06-10 09:52:23'),
(6, 31, 'withdrawal', -500, 450, NULL, 'Withdrawal request (nagad)', '2026-06-10 09:52:23'),
(7, 31, 'refund', 500, 950, NULL, 'Withdrawal request rejected — funds returned', '2026-06-10 09:52:24'),
(13, 30, 'deposit', 20000, 20000, NULL, 'Admin credit', '2026-06-10 10:39:59'),
(14, 30, 'order_payment', -33, 19967, 15, 'Payment for order #15', '2026-06-10 10:40:24'),
(15, 1, 'escrow_in', 33, 583, 15, 'Escrow hold for order #15', '2026-06-10 10:40:24'),
(21, 1, 'order_payment', -250, 300, 10, 'Payment for order #10', '2026-06-10 10:45:56'),
(22, 1, 'escrow_in', 250, 550, 10, 'Escrow hold for order #10', '2026-06-10 10:45:56');

CREATE TABLE `wallets` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `balance` INT NOT NULL,
  `created_at` DATETIME NOT NULL,
  `updated_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `wallets_user_id_unique` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `wallets` (`id`, `user_id`, `balance`, `created_at`, `updated_at`) VALUES
(1, 22, 0, '2026-06-10 09:46:23', '2026-06-10 09:46:23'),
(3, 33, 0, '2026-06-10 09:49:49', '2026-06-10 09:49:49'),
(4, 35, 0, '2026-06-10 09:50:41', '2026-06-10 09:50:41'),
(2, 32, 4500, '2026-06-10 09:49:04', '2026-06-10 09:52:22'),
(5, 31, 950, '2026-06-10 09:52:00', '2026-06-10 09:52:24'),
(7, 30, 19967, '2026-06-10 09:59:24', '2026-06-10 10:40:24'),
(6, 1, 550, '2026-06-10 09:52:22', '2026-06-10 10:45:56');

CREATE TABLE `withdrawals` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `user_id` INT NOT NULL,
  `amount` INT NOT NULL,
  `method` TEXT NOT NULL,
  `account_number` TEXT NOT NULL,
  `status` TEXT NOT NULL,
  `note` TEXT,
  `reviewed_at` DATETIME,
  `created_at` DATETIME NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `withdrawals` (`id`, `user_id`, `amount`, `method`, `account_number`, `status`, `note`, `reviewed_at`, `created_at`) VALUES
(1, 31, 4000, 'bkash', '01700000000', 'approved', NULL, '2026-06-10 09:52:23', '2026-06-10 09:52:23'),
(2, 31, 500, 'nagad', '019', 'rejected', NULL, '2026-06-10 09:52:24', '2026-06-10 09:52:23');

