phone_book = None

invalid_value_sign: str = 'Вы ввели некорректное значение поля'

command_not_found: str = 'Такой команды нет.'

user_exists: str = 'Такой пользователь уже существует. Хотите изменить данные о нем?'
user_does_not_exist: str = 'Такого пользователя не существует'

# Имя файла базы данных по умолчанию:

database_file_name: str = 'data.csv'

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


phone_types: tuple = (
    'Мобильный',
    'Домашний',
    'Рабочий',
    'Запасной',

)

available_commands: tuple = (
    'list',
    'search',
    'add',
    'delete',
    'edit',
    'get_age',
    'pdelete',
    'quit',
    'help',
)

rus_available_commands: tuple = (
    'напечатать', 'выведи', 'распечатай', 'лист',
    'поиск', 'поищи', 'найти', 'найди', 'найди абонента', 'найти контакт', 'найди пользователя',
    'добавь', 'внеси', 'запиши',
    'удалить', 'удали',
    'изменить', 'редактировать', 'сменить',
    'выход', 'выйти',
)

mapping: tuple = (
    0, 0, 0, 0,
    2, 2, 2, 2, 2, 2, 2,
    3, 3, 3,
    4, 4,
    5, 5, 5,
    8, 9
)

ru_to_en_mapping: dict = {
    ru_command: available_commands[mapping[i]] for ru_command, i in zip(rus_available_commands, mapping)
}

abs_field_class_str: str = 'AbstractField'

default_class_value_name: str = 'value'

space: str = ' '

AI_name: str = 'пятница'

AI_greeting: list = [
    'Да, босс?',
    'Я здесь, босс',
    'Что вам нужно, босс?'
    'Слушаю, босс',
    'К вашим услугам, босс',
    'Слушаю вас, босс',
    'В вашем распоряжении, босс',
]

AI_command_prompt: list = [
    'Жду команды, босс',
    'Говорите что делать, босс',
    'Что вы хотите, босс?',
    'Говорите команду, босс',
]

AI_ask_args: list = [
    'Вводите аргументы, босс',
    'Босс, мне нужны аргументы',
    'Пишите аргументы в консоль, босс',
]

yes: tuple = (
    'yes', 'да', 'ага'
)

no: tuple = (
    'no', 'нет', 'неа'
)

command_enter_invitation: str = '''Введите команду или скажите, что вы хотите сделать'''

greeting_text: str = '''
Добро пожаловать в Spravochnik MK.2\n
'''

farewell_text: str = '''
Спасибо за использование. Spravochnik MK.2 вас не забудет!
'''

tutorial: str = '''
Доступные команды:

list - Вывести содержимое справочника
search - Искать контакт по параметрам
add - Добавить контакт
edit - Редактировать контакт
delete - Удалить контакт
pdelete - Удалить по номеру телефона
get_age - Получить возраст
help - Получение помощи
quit - Сохранить и выйти

Каждая команда принимает аргументы.
--id=<int> - Идентификатор пользователя
--name=<str> <str> - Имя и фамилия пользователя
--phone=<str> - Телефон
--birth=<str> - Дата рождения

Пример: 

add --name=Джон Траволта --phone=+79063882371 --birth=1954.2.18
Добавит пользователя в записную книгу

pdelete --phone=89063882371
Удалит Джона Траволту из справочника :(

Аргументы можно писать в любом порядке и какие угодно. Использованы будут только корректные.
'''

greeting_text += tutorial

09f53a0427cac7d3261d401a1a30d70893300fa0
<mask token>

<mask token>
invalid_value_sign: str = 'Вы ввели некорректное значение поля'
command_not_found: str = 'Такой команды нет.'
user_exists: str = (
    'Такой пользователь уже существует. Хотите изменить данные о нем?')
user_does_not_exist: str = 'Такого пользователя не существует'
database_file_name: str = 'data.csv'
phone_types: tuple = ('Мобильный', 'Домашний', 'Рабочий', 'Запасной')
available_commands: tuple = ('list', 'search', 'add', 'delete', 'edit',
    'get_age', 'pdelete', 'quit', 'help')
rus_available_commands: tuple = ('напечатать', 'выведи', 'распечатай',
    'лист', 'поиск', 'поищи', 'найти', 'найди', 'найди абонента',
    'найти контакт', 'найди пользователя', 'добавь', 'внеси', 'запиши',
    'удалить', 'удали', 'изменить', 'редактировать', 'сменить', 'выход',
    'выйти')
mapping: tuple = (0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 8, 9
    )
ru_to_en_mapping: dict = {ru_command: available_commands[mapping[i]] for 
    ru_command, i in zip(rus_available_commands, mapping)}
abs_field_class_str: str = 'AbstractField'
default_class_value_name: str = 'value'
space: str = ' '
AI_name: str = 'пятница'
AI_greeting: list = ['Да, босс?', 'Я здесь, босс',
    'Что вам нужно, босс?Слушаю, босс', 'К вашим услугам, босс',
    'Слушаю вас, босс', 'В вашем распоряжении, босс']
AI_command_prompt: list = ['Жду команды, босс', 'Говорите что делать, босс',
    'Что вы хотите, босс?', 'Говорите команду, босс']
AI_ask_args: list = ['Вводите аргументы, босс', 'Босс, мне нужны аргументы',
    'Пишите аргументы в консоль, босс']
yes: tuple = ('yes', 'да', 'ага')
no: tuple = ('no', 'нет', 'неа')
command_enter_invitation: str = (
    'Введите команду или скажите, что вы хотите сделать')
greeting_text: str = """
Добро пожаловать в Spravochnik MK.2

"""
farewell_text: str = """
Спасибо за использование. Spravochnik MK.2 вас не забудет!
"""
tutorial: str = """
Доступные команды:

list - Вывести содержимое справочника
search - Искать контакт по параметрам
add - Добавить контакт
edit - Редактировать контакт
delete - Удалить контакт
pdelete - Удалить по номеру телефона
get_age - Получить возраст
help - Получение помощи
quit - Сохранить и выйти

Каждая команда принимает аргументы.
--id=<int> - Идентификатор пользователя
--name=<str> <str> - Имя и фамилия пользователя
--phone=<str> - Телефон
--birth=<str> - Дата рождения

Пример: 

add --name=Джон Траволта --phone=+79063882371 --birth=1954.2.18
Добавит пользователя в записную книгу

pdelete --phone=89063882371
Удалит Джона Траволту из справочника :(

Аргументы можно писать в любом порядке и какие угодно. Использованы будут только корректные.
"""
greeting_text += tutorial

phone_book = None
invalid_value_sign: str = 'Вы ввели некорректное значение поля'
command_not_found: str = 'Такой команды нет.'
user_exists: str = (
    'Такой пользователь уже существует. Хотите изменить данные о нем?')
user_does_not_exist: str = 'Такого пользователя не существует'
database_file_name: str = 'data.csv'
phone_types: tuple = ('Мобильный', 'Домашний', 'Рабочий', 'Запасной')
available_commands: tuple = ('list', 'search', 'add', 'delete', 'edit',
    'get_age', 'pdelete', 'quit', 'help')
rus_available_commands: tuple = ('напечатать', 'выведи', 'распечатай',
    'лист', 'поиск', 'поищи', 'найти', 'найди', 'найди абонента',
    'найти контакт', 'найди пользователя', 'добавь', 'внеси', 'запиши',
    'удалить', 'удали', 'изменить', 'редактировать', 'сменить', 'выход',
    'выйти')
mapping: tuple = (0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 8, 9
    )
ru_to_en_mapping: dict = {ru_command: available_commands[mapping[i]] for 
    ru_command, i in zip(rus_available_commands, mapping)}
abs_field_class_str: str = 'AbstractField'
default_class_value_name: str = 'value'
space: str = ' '
AI_name: str = 'пятница'
AI_greeting: list = ['Да, босс?', 'Я здесь, босс',
    'Что вам нужно, босс?Слушаю, босс', 'К вашим услугам, босс',
    'Слушаю вас, босс', 'В вашем распоряжении, босс']
AI_command_prompt: list = ['Жду команды, босс', 'Говорите что делать, босс',
    'Что вы хотите, босс?', 'Говорите команду, босс']
AI_ask_args: list = ['Вводите аргументы, босс', 'Босс, мне нужны аргументы',
    'Пишите аргументы в консоль, босс']
yes: tuple = ('yes', 'да', 'ага')
no: tuple = ('no', 'нет', 'неа')
command_enter_invitation: str = (
    'Введите команду или скажите, что вы хотите сделать')
greeting_text: str = """
Добро пожаловать в Spravochnik MK.2

"""
farewell_text: str = """
Спасибо за использование. Spravochnik MK.2 вас не забудет!
"""
tutorial: str = """
Доступные команды:

list - Вывести содержимое справочника
search - Искать контакт по параметрам
add - Добавить контакт
edit - Редактировать контакт
delete - Удалить контакт
pdelete - Удалить по номеру телефона
get_age - Получить возраст
help - Получение помощи
quit - Сохранить и выйти

Каждая команда принимает аргументы.
--id=<int> - Идентификатор пользователя
--name=<str> <str> - Имя и фамилия пользователя
--phone=<str> - Телефон
--birth=<str> - Дата рождения

Пример: 

add --name=Джон Траволта --phone=+79063882371 --birth=1954.2.18
Добавит пользователя в записную книгу

pdelete --phone=89063882371
Удалит Джона Траволту из справочника :(

Аргументы можно писать в любом порядке и какие угодно. Использованы будут только корректные.
"""
greeting_text += tutorial

phone_book = None

invalid_value_sign: str = 'Вы ввели некорректное значение поля'

command_not_found: str = 'Такой команды нет.'

user_exists: str = 'Такой пользователь уже существует. Хотите изменить данные о нем?'
user_does_not_exist: str = 'Такого пользователя не существует'

# Имя файла базы данных по умолчанию:

database_file_name: str = 'data.csv'

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


phone_types: tuple = (
    'Мобильный',
    'Домашний',
    'Рабочий',
    'Запасной',

)

available_commands: tuple = (
    'list',
    'search',
    'add',
    'delete',
    'edit',
    'get_age',
    'pdelete',
    'quit',
    'help',
)

rus_available_commands: tuple = (
    'напечатать', 'выведи', 'распечатай', 'лист',
    'поиск', 'поищи', 'найти', 'найди', 'найди абонента', 'найти контакт', 'найди пользователя',
    'добавь', 'внеси', 'запиши',
    'удалить', 'удали',
    'изменить', 'редактировать', 'сменить',
    'выход', 'выйти',
)

mapping: tuple = (
    0, 0, 0, 0,
    2, 2, 2, 2, 2, 2, 2,
    3, 3, 3,
    4, 4,
    5, 5, 5,
    8, 9
)

ru_to_en_mapping: dict = {
    ru_command: available_commands[mapping[i]] for ru_command, i in zip(rus_available_commands, mapping)
}

abs_field_class_str: str = 'AbstractField'

default_class_value_name: str = 'value'

space: str = ' '

AI_name: str = 'пятница'

AI_greeting: list = [
    'Да, босс?',
    'Я здесь, босс',
    'Что вам нужно, босс?'
    'Слушаю, босс',
    'К вашим услугам, босс',
    'Слушаю вас, босс',
    'В вашем распоряжении, босс',
]

AI_command_prompt: list = [
    'Жду команды, босс',
    'Говорите что делать, босс',
    'Что вы хотите, босс?',
    'Говорите команду, босс',
]

AI_ask_args: list = [
    'Вводите аргументы, босс',
    'Босс, мне нужны аргументы',
    'Пишите аргументы в консоль, босс',
]

yes: tuple = (
    'yes', 'да', 'ага'
)

no: tuple = (
    'no', 'нет', 'неа'
)

command_enter_invitation: str = '''Введите команду или скажите, что вы хотите сделать'''

greeting_text: str = '''
Добро пожаловать в Spravochnik MK.2\n
'''

farewell_text: str = '''
Спасибо за использование. Spravochnik MK.2 вас не забудет!
'''

tutorial: str = '''
Доступные команды:

list - Вывести содержимое справочника
search - Искать контакт по параметрам
add - Добавить контакт
edit - Редактировать контакт
delete - Удалить контакт
pdelete - Удалить по номеру телефона
get_age - Получить возраст
help - Получение помощи
quit - Сохранить и выйти

Каждая команда принимает аргументы.
--id=<int> - Идентификатор пользователя
--name=<str> <str> - Имя и фамилия пользователя
--phone=<str> - Телефон
--birth=<str> - Дата рождения

Пример: 

add --name=Джон Траволта --phone=+79063882371 --birth=1954.2.18
Добавит пользователя в записную книгу

pdelete --phone=89063882371
Удалит Джона Траволту из справочника :(

Аргументы можно писать в любом порядке и какие угодно. Использованы будут только корректные.
'''

greeting_text += tutorial
