я хочу создать приложение в android studio для бронирования номеров в отелях
вот требования которые задали мне
Проект №2: Требования 

1) Функциональность приложения
Отображение данных: Приложение отображает данные из базы в табличном формате (мин. кол-во 5-6). Для связей с внешними таблицами вместо кодов показываются значения (например, для таблиц учета товаров на складе отображаются названия товаров, поставщики и единицы измерения).
Управление данными:
Возможность создания, редактирования и удаления записей.
Наличие кнопок для манипуляций с данными.
Роли пользователей (Выбрать 2 и больше ролей):
Администратор – доступ ко всем функциям.
Пользователь – ограниченный доступ (только просмотр определённых таблиц и добавление новых записей без возможности удаления).
2) Документация и планирование
Техническое задание (ТЗ): Описание требований, функций и задач приложения.
Gantt-чарт: План разработки с учетом всех этапов и сроков.
Схема алгоритма и данных: Схема работы приложения и структура базы данных, включающая основные таблицы и их связи.
3) Выбор базы данных
Использовать базу данных, поддерживающую просмотр и взаимодействие со структурой данных.
При необходимости, проектирование структуры базы для оптимального выполнения требований.
4) Анализ методологий разработки
Сравнительный анализ методологий: Выбрать и сравнивать 3 или больше модели которые по различным критериям показывают именно то, что выбранная вами модель соответствует этой задаче (к примеру спиральную, водопадную, Agile/Scrum) и указывайте для вашей тематики по каким критериям какая из этих моделей больше подходит.
Критерии выбора: Подробное описание выбранных критериев и обоснование выбора.
5) Демонстрация проекта
Подготовка интерфейса: Создание макетов и описание функциональности интерфейса, включая:
Отображение и выбор таблиц.
Возможность выбора строк в таблице (например, клик, двойной клик).
Дополнительные поля для редактирования выбранной строки или создания новой записи.
6) Сроки сдачи
К следующей неделе: Предоставить Gantt-чарт, ТЗ и схему данных. (13.11.2024)
Сдача итоговой версии: Проект должен быть завершен к началу декабря, за две недели до второго модуля, для проверки и принятия.(02.12.2024)



а вот как я создал базу данных
CREATE DATABASE `hotel`
USE hotel;



CREATE TABLE Guests (
    guest_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE,
    phone_number VARCHAR(15),
    address TEXT
);


CREATE TABLE Rooms (
    room_id INT AUTO_INCREMENT PRIMARY KEY,
    room_number VARCHAR(10) NOT NULL,
    room_type VARCHAR(50) NOT NULL,
    capacity INT NOT NULL,
    price_per_night DECIMAL(10, 2) NOT NULL,
    status ENUM('доступен', 'занят', 'уборка') DEFAULT 'доступен'
);



CREATE TABLE Reservations (
    reservation_id INT AUTO_INCREMENT PRIMARY KEY,
    guest_id INT,
    room_id INT,
    check_in_date DATE NOT NULL,
    check_out_date DATE NOT NULL,
    total_cost DECIMAL(10, 2),
    FOREIGN KEY (guest_id) REFERENCES Guests(guest_id) ON DELETE CASCADE,
    FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE CASCADE
);



CREATE TABLE Payments (
    payment_id INT AUTO_INCREMENT PRIMARY KEY,
    reservation_id INT,
    amount DECIMAL(10, 2) NOT NULL,
    payment_date DATE NOT NULL,
    payment_method VARCHAR(50),
    FOREIGN KEY (reservation_id) REFERENCES Reservations(reservation_id) ON DELETE CASCADE
);



CREATE TABLE RoomServices (
    service_id INT AUTO_INCREMENT PRIMARY KEY,
    reservation_id INT,
    service_type ENUM('уборка', 'доставка еды', 'техническое обслуживание') NOT NULL,
    service_date DATE NOT NULL,
    cost DECIMAL(10, 2),
    FOREIGN KEY (reservation_id) REFERENCES Reservations(reservation_id) ON DELETE CASCADE
);







DELIMITER //

CREATE TRIGGER calc_total_cost
BEFORE INSERT ON Reservations
FOR EACH ROW
BEGIN
    DECLARE nights INT;
    DECLARE room_price DECIMAL(10, 2);
    SET nights = DATEDIFF(NEW.check_out_date, NEW.check_in_date);
    SELECT price_per_night INTO room_price FROM Rooms WHERE room_id = NEW.room_id;
    SET NEW.total_cost = nights * room_price;
END//

DELIMITER ;




DELIMITER //

CREATE TRIGGER update_room_status
AFTER INSERT ON Reservations
FOR EACH ROW
BEGIN
    UPDATE Rooms
    SET status = 'occupied'
    WHERE room_id = NEW.room_id;
END//

DELIMITER ;




DELIMITER //

CREATE TRIGGER free_room_on_cancel
AFTER DELETE ON Reservations
FOR EACH ROW
BEGIN
    UPDATE Rooms
    SET status = 'available'
    WHERE room_id = OLD.room_id;
END//

DELIMITER ;






DELIMITER //

CREATE TRIGGER check_room_capacity
BEFORE INSERT ON Reservations
FOR EACH ROW
BEGIN
    DECLARE room_capacity INT;
    SELECT capacity INTO room_capacity FROM Rooms WHERE room_id = NEW.room_id;
    IF room_capacity < (SELECT COUNT(*) FROM Guests WHERE guest_id = NEW.guest_id) THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Room capacity exceeded';
    END IF;
END//

DELIMITER ;




DELIMITER //

CREATE TRIGGER default_payment_amount
BEFORE INSERT ON Payments
FOR EACH ROW
BEGIN
    IF NEW.amount IS NULL THEN
        SET NEW.amount = (SELECT total_cost FROM Reservations WHERE reservation_id = NEW.reservation_id);
    END IF;
END//

DELIMITER ;




я хочу создать бэкенд для того чтобы использовать его в своем приложении и взаимодействовать с базой данных 
напиши все что я должен для этого сделать