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.