Project

General

Profile

Task #184

Updated by Dana Basheer about 2 months ago

This module is used to manage sightseeing places available in different locations. Each sightseeing spot belongs to a district and a location. The module stores details such as sightseeing name, description, geographic coordinates (latitude and longitude), and an image. 

 **Table** 

 c2b_sightseeing_master sightseeing_master 

 * id (PK) 	 INT AUTO_INCREMENT 	 Unique sightseeing ID 
 * district_id (FK) 	 INT 	 References district_master.id 
 * location_id (FK) 	 INT 	 References loc_master.loc_id 
 * sight_name      VARCHAR(150)     Name of the sightseeing place 
 * description 	 TEXT 	 Description of the sightseeing place 
 * latitude 	 DECIMAL(10,8) 	 Latitude coordinate 
 * longitude 	 DECIMAL(11,8) 	 Longitude coordinate 
 * image_url 	 VARCHAR(255) 	 URL of sightseeing image 
 * is_active 	 BOOLEAN DEFAULT TRUE 	 Active / inactive status 
 * created_at 	 DATETIME 	 Record created date 
 * updated_at 	 DATETIME 	 Record updated date 

 **Validations** 

 Mandatory 

 * district_id required 
 * location_id required 
 * sight_name required 
 * latitude required 
 * longitude required 

 Name 

 * Minimum 2 characters 
 * Maximum 150 characters 
 * Cannot be empty 

 Duplicate 

 * Prevent duplicate sightseeing place under the same location. 

 District 

 * district_id must exist in district_master 
 * district must be active 

 Location 

 * location_id must exist in loc_master 
 * location must belong to the selected district 
 * Latitude & Longitude Validation 
 * Must be numeric 
 * Latitude range: -90 to 90 
 * Longitude range: -180 to 180 

 Image 

 * Store as image_url 
 * Allowed formats: jpg, jpeg, png, webp 
 * Max size: 5MB (if upload) 

 Edit 

 Allow edit: 

 * sight_name 
 * description 
 * latitude 
 * longitude 
 * image 
 * is_active 

 Do NOT allow edit: 

 * district_id 
 * location_id 

 Delete 

 * Soft delete only. 

 Set: 

 * is_active = FALSE 
 * Do not physically delete the record.

Back