Task #110
Updated by Dana Basheer 18 days ago
This module is used to assign one or more Room Categories to a specific Hotel.
It creates a relationship between hotel_master and room_category_master, allowing each hotel to define which room categories it supports (Example: Deluxe, Suite, Standard).
This mapping also supports Active / Inactive status, so room categories can be temporarily disabled without deleting data.
**Table**
hotel_room_category_map
* id (PK) INT Unique mapping ID
* hotel_id (FK) INT References hotel_master.id
* enterprise_id (FK)INTReferences enterprise_master.enterprise_id
* room_category_id (FK) INT References room_category_master.id
* is_active BOOLEAN Active (1) or Inactive (0) status
* added_date DATETIME Record creation date
**Validation**
Add
* Hotel must be selected (mandatory)
* Room Category must be selected (mandatory)
* Same Room Category cannot be assigned to same Hotel more than once
* Duplicate validation must be case-insensitive (via ID logic)
* Only active hotels can be assigned
* Only active room categories can be assigned
Edit
* Cannot change hotel_id (recommended lock)
* Cannot create duplicate mapping during edit
* Must allow change of:
* Room Category (if needed)
* Active / Inactive status
Active / Inactive Validations
* is_active = 1 → Room Category is available for that hotel
* is_active = 0 → Room Category is disabled for that hotel
* Inactive categories:
* Should NOT appear in booking / room selection
* Should still remain in database (no hard delete)