Please create a checklist for this task? 

### Description:

The Hotels may change the number of rooms during renovation. To foresee this case we need to add the ability for Super Admin users to add expiration dates for PMS room type codes. 

---

### General information:

The same PMS room type codes now should have the ability to contain different numbers of rooms for different sets of dates. 

There are several parts that have to be updated in this task: 

- Database updates (described in another [card](https://www.notion.so/f9b0c37fbd724449957135624e10b95e?pvs=21))
- Back-end changes (described in another [card](https://www.notion.so/f9b0c37fbd724449957135624e10b95e?pvs=21))
- Front-end changes (described in this card)

### Front-end changes:

1. The Add PMS room UX has to be reworked so the Super Admin users may set up validity periods for PMS room type codes.
2. Need to add new fields that will be available for the Super Admin users: `start_date` and `end_date`
3. The mentioned fields should be added to the table, pop-up on the **PMS Room Types** page 
4. The records on the **PMS Room Types** page have to be grouped by the code and date ranges
5. UI elements usage will be described below in the table. Please note that only new page elements will be described.

**Main UI validation notes to follow:**

1. Data input intersections are not acceptable. The System always has to use only one PMS code on a Booking Date.
2. Data gaps are possible. The Parent Code values will be used in cases when there’s no Sub Code.
3. Sub Codes can’t be set up outside of the Parent Code validation dates. 

**Exceptions with use cases:**

1. Please note that empty date inputs are applicable. Empty date inputs stand for “no start date limitation” or “no end date limitation”. 
    1. Use case `Code A` has the following settings: 
        1. start_date = null, end_date = “2023-05-01”, number_of_rooms = 10;
        2. start_date = “2023-05-02”, end_date = null, number_of_rooms = 20;
    2. This means that `Code A` has 10 rooms capacity till “2023-05-01”, starting from “2023-05-02” its capacity is increased to 20 rooms. 
    
2. Please note that `start_date` and `end_date` intersections are not acceptable, `start_date` always > `end_date` of the previous date range. In this case, the Super Admin users can’t save a new code entity
    1. Use case `Code A` has the following settings: 
        1. start_date = null, end_date = “2023-05-01”, number_of_rooms = 10;
    2. Super Admin tries to create another set of settings for the same `Code A`
        1. start_date = “2023-04-30”, end_date = null, number_of_rooms = 20;
    3. The validation should be triggered, start_date < end_date of the previous set of settings. 
    4. end_date of the previous date range can’t be equal to the start_date of the next date range
    
3. Please note that the Parent Code may have several Sub Codes, with filled-in `start_date` and `end_dates` fields.
    1. Use case `Code A` has the following settings:
        1. start_date = null, end_date = null, number_of_rooms = 10; Active? = True;
        2. start_date = “2023-04-30”, end_date = “2023-05-31”, number_of_rooms = 20;
        3. start_date = “2023-06-01”, end_date = “2023-06-30”, number_of_rooms = 15;
    2. This means that the Parent Code has two Sub Codes with expiration dates. For the dates when the Sub Codes remain active, their values have to be used. Otherwise, the Parent Code values are used.