#include <iostream>
#include <windows.h>
#include "Table.h"

void process_command(Table& table, const std::string& comm) {
    std::string brand, model, color, check, year;
    if (comm == "create_car") {
        std::cout << "Введите бренд машины\n";
        std::cin >> brand;
        std::cout << "Введите модель машины\n";
        std::cin >> model;
        std::cout << "Введите год выпуска машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        std::cout << "Введите цвет машины\n";
        std::cin >> color;
        table.create_car(brand, model, stoi(check), color);
    }
    else if (comm == "read_car") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        table.read_car(stoi(check));
    }
    else if (comm == "delete_car") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        table.delete_car(stoi(check));
    }
    else if (comm == "show_table") {
        table.show_table();
    }
    else if (comm == "change_brand") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        std::cout << "Введите новое название бренда машины\n";
        std::cin >> brand;
        if (!table.change_brand(stoi(check), brand)) {
            std::cout << "Элемент с ключом " << check << " не найден\n";
        }
    }
    else if (comm == "change_model") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        std::cout << "Введите новое название модели машины\n";
        std::cin >> model;
        table.change_model(stoi(check), model);
        std::cout << "Модель изменена\n";
    }
    else if (comm == "change_year") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        std::cout << "Введите новый год выпуска машины\n";
        std::cin >> year;
        while (!(std::cin >> year) || (year < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        table.change_year(stoi(check), stoi(year));
        std::cout << "Год выпуска изменен\n";
    }
    else if (comm == "change_color") {
        std::cout << "Введите ключ машины\n";
        std::cin >> check;
        while (!(std::cin >> check) || (check < 0)) {
            std::cout << "Попробуйте еще раз\n";
            std::cin.clear();
            std::cin.ignore(std::numeric_limits<int>::max(), '\n');
        }
        std::cout << "Введите новый цвет машины\n";
        std::cin >> color;
        table.change_color(stoi(check), color);
        std::cout << "Цвет изменен\n";
    }
    else {
        std::cout << "Неизвестная команда";
    }
}

int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    Table table;
    std::string comm;
    std::cout <<
        "Спсиок команд : \n create_car\n read_car\n delete_car\n show_table\n "
        "change_brand\n change_model\n change_year\n change_color\n exit\n";

    while (true) {
        std::cin >> comm;
        if (comm == "exit") {
            break;
        }
        process_command(table, comm);
    }
    return 0;
}
 проверь код