Описание:

Для своей работы приложение использует базу данных sqlite.

Таблицы

В базе присутствуют 4 таблицы:

  • Таблица пользователей

  • Таблица ошейников

  • Таблица собак

  • Таблица связи волонтеров с собаками

Таблица users

В таблице users хранится информация о пользователях, зарегистрировашихся в приложении.

Поля users:

  • id - поле типа integer, primary key

  • name - поле типа string, содержит информацию о имени пользователя, должно быть уникальным в таблице

  • email - поле типа EmailString, содержит информацию о почте пользователя, должно быть уникальным в таблице

  • hash_password - поле типа string, содержит хэш от пароля пользователя, используется для авторизации пользователя в приложении

  • phone - поле типа string, содержит информацию о телефоне пользователя, должно быть уникальным в таблице

  • token - поле типа string, содержит сгенерированный токен пользователя, который используется для доступа почти ко всем функциям приложения

Таблица collars

В таблице хранится информация об активных ошейниках. Ошейники периодически отправляют запрос в базу на обновление данных о месторасположении ошейника (эмулятор такого ошейника в docs/scripts/script.py).

Поля collars

  • id - поле типа integer, primary key

  • ip - поле типа string, содержит информацию о ip ошейника

Таблицаа dogs

В таблице содержится информация о бездомных собаках, зарегистрированных в приложении.

Поля dogs

  • id - поле типа integer, primary key

  • name - поле типа string, содержит кличку собаки

  • description - поле типа string, содержит описание и приметы собаки

  • collar_id - поле типа Integer, содержит id ошейника, который закреплен на собаке.

  • datas - поле типа array, содержит массив объектов из таблицы DogsData, связанные с текущей по полям dogs.id=DogsData.dog_id

Таблица DogsData

Таблица содержит набор информации о собаке в определенное время.

Поля DogsData

  • id - поле типа integer, primary key

  • dog_id - id собаки

  • latitude - поле типа decimal, содержит информацию о координатах собаки в конкретный момент времени

  • longitude - поле типа decimal, содержит информацию о координатах собаки в конкретный момент времени

  • datetime - поле типа datetime, содержит дату и время, когда была получена информация о собаке

Таблица tasks

Таблица содержит информацию о заданиях, которые пользователи могут выдавать друг другу.

Поля tasks

  • id - поле типа integer, primary key

  • dog_id - поле типа integer, содержит id собаки, с которой связано задание

  • type - поле типа string, содержит описание самого задания

  • status - поле типа boolean default False, True если задание выполнено, False если нет.

  • responses - поле типа array, содержит массив объектов из таблицы TaskResponses, связанные с текущей по полям tasks.id=TaskResponses.task_id

Таблица TaskResponses

Таблица содержит информацию об отчетах на задания из таблицы tasks

Поля TaskResponses

  • id - поле типа integer, primary key

  • task_id - поле типа integer, содержит id задания

  • proof - поле типа string, содержит доказательство выполенного задания

  • user_id - поле типа integer, содержит id пользователя, который выполнил задание

  • delete - поле типа boolean, default False, True если отчёт отклонен, False если принят