Task #153
Updated by Dana Basheer 4 days ago
**Territory Master** This module is used to create and manage territories by grouping multiple locations under a single territory name. Territories help organize operational areas and allow assigning employees to specific regions. Locations are selected from the Geography Master and mapped to the territory. **Table** territory_master * id (PK) INT AUTO_INCREMENT Unique territory ID * territory_name VARCHAR(100) Name of the territory (example: Cochin, Metros) * enterprise_id (FK) INT References enterprise_master.id * is_active BOOLEAN DEFAULT TRUE Territory active / inactive * created_at DATETIME Record created date * updated_at DATETIME Record updated date territory_location_map * id (PK) INT AUTO_INCREMENT Unique ID * territory_id (FK) INT References territory_master.id * geog_id (FK) INT References locations_geography.geog_id * enterprise_id (FK) INT References enterprise_master.id * created_at DATETIME Record created date **Validations** * Territory name required * At least one location must be selected * enterprise_id required (session based) Duplicate * Prevent duplicate territory name within same enterprise Location * Location must exist in locations_geography table * Only active locations allowed Edit Allow edit: * territory_name * is_active Do NOT allow edit: * enterprise_id Delete * Soft delete only * is_active = FALSE * Do not delete physically **Employee Employee Territory Assignment** Assignment This module is used to assign one or more employees to a territory. This ensures employees are responsible for specific operational regions. **Table** territory_employee_map * id (PK) INT AUTO_INCREMENT Unique ID * territory_id (FK) INT References territory_master.id * employee_id (FK) INT References employee_master.id * enterprise_id (FK) INT References enterprise_master.id * assigned_at DATETIME Assignment date * is_active BOOLEAN DEFAULT TRUE Active / inactive **Validations** * territory_id required * employee_id required * enterprise_id required Duplicate * Prevent assigning same employee twice to same territory Employee * employee_id must exist in employee_master * employee must belong to same enterprise Territory * territory_id must exist * territory must be active Edit Allow edit: * is_active Do NOT allow edit: * territory_id * employee_id Delete * Soft delete only * is_active = FALSE