| 123456789101112131415161718192021222324 |
- -- ============================================================
- -- Migration 002: Consultant roles + client assignment
- -- Run once against the cropmonitor database
- -- ============================================================
- -- 1. Add user_type column to users table
- -- Values: 'client' (default), 'consultant', 'admin'
- ALTER TABLE `users`
- ADD COLUMN `user_type` ENUM('client','consultant','admin')
- NOT NULL DEFAULT 'client'
- AFTER `role`;
- -- 2. Junction table: maps consultants → the client_records they manage
- CREATE TABLE IF NOT EXISTS `consultant_clients` (
- `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
- `consultant_id` INT UNSIGNED NOT NULL, -- users.id (user_type = 'consultant')
- `client_id` INT NOT NULL, -- client_records.id
- `assigned_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `assigned_by` INT UNSIGNED DEFAULT NULL, -- users.id of admin who made the assignment
- PRIMARY KEY (`id`),
- UNIQUE KEY `uq_consultant_client` (`consultant_id`, `client_id`),
- KEY `idx_cc_consultant` (`consultant_id`),
- KEY `idx_cc_client` (`client_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|