This commit is contained in:
Антон
2025-07-15 07:54:35 +03:00
parent 3ad99f61f7
commit 8a9ca60251
2 changed files with 126 additions and 80 deletions

52
Readme.md Normal file
View File

@ -0,0 +1,52 @@
UseCase'ы для приложения:
### 1. Пользователь имеет возможность зарегистрироваться в приложении
#### POST /v1/api/Register
Тело запроса:
```
{
string login;
string password
}
```
Тело ответа(успех):
```
null
```
Тело ответа(неудача):
```
{
string error_message;
}
```
### 2. Уже зарегистрированный пользователь может создать сессию посещения приложения, отослав свои логин и пароль, получая токен для подтверждения сессии
#### POST /v1/api/Authorization
Тело запроса:
```
{
string login;
string password
}
```
Тело ответа(успех):
```
{
string token;
}
```
Тело ответа(неудача):
```
{
string error_message;
}
```

View File

@ -4,12 +4,11 @@
CREATE SCHEMA `up_and_down` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE TABLE `up_and_down`.`user` (
`id` INT8 AUTO_INCREMENT NOT NULL,
CREATE TABLE `up_and_down`.`users` (
`guid` CHAR(36) NOT NULL,
`login` VARCHAR(128) NOT NULL,
`hashed_password` TEXT NOT NULL,
PRIMARY KEY (`id`),
PRIMARY KEY (`guid`),
UNIQUE INDEX `guid_UNIQUE` (`guid` ASC)
);
@ -19,31 +18,31 @@ CREATE TABLE `up_and_down`.`mania` (
PRIMARY KEY (`level`)
);
CREATE TABLE `up_and_down`.`depression` (
CREATE TABLE `up_and_down`.`depressions` (
`level` INT1 NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`level`)
);
CREATE TABLE `up_and_down`.`mood` (
CREATE TABLE `up_and_down`.`moods` (
`level` INT1 NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`level`)
);
CREATE TABLE `up_and_down`.`activity` (
CREATE TABLE `up_and_down`.`activities` (
`level` INT1 NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`level`)
);
CREATE TABLE `up_and_down`.`appetite` (
CREATE TABLE `up_and_down`.`appetites` (
`level` INT1 NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`level`)
);
CREATE TABLE `up_and_down`.`sleep` (
CREATE TABLE `up_and_down`.`dreams` (
`level` INT1 NOT NULL,
`description` TEXT NOT NULL,
PRIMARY KEY (`level`)
@ -56,7 +55,7 @@ CREATE TABLE `up_and_down`.`anxiety` (
);
CREATE TABLE `up_and_down`.`diaries` (
`id` INT8 NOT NULL,
`guid` CHAR(36) NOT NULL,
`user_guid` CHAR(36) NOT NULL,
`time` DATETIME NOT NULL,
`mania_level` INT1 NOT NULL,
@ -64,37 +63,32 @@ CREATE TABLE `up_and_down`.`diaries` (
`mood_level` INT1 NOT NULL,
`activity_level` INT1 NOT NULL,
`appetite_level` INT1 NOT NULL,
`sleep_level` INT1 NOT NULL,
`dream_level` INT1 NOT NULL,
`anxiety_level` INT1 NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`user_guid`) REFERENCES `user`(`guid`),
PRIMARY KEY (`guid`),
FOREIGN KEY (`user_guid`) REFERENCES `users`(`guid`),
FOREIGN KEY (`mania_level`) REFERENCES `mania`(`level`),
FOREIGN KEY (`depression_level`) REFERENCES `depression`(`level`),
FOREIGN KEY (`mood_level`) REFERENCES `mood`(`level`),
FOREIGN KEY (`activity_level`) REFERENCES `activity`(`level`),
FOREIGN KEY (`appetite_level`) REFERENCES `appetite`(`level`),
FOREIGN KEY (`sleep_level`) REFERENCES `sleep`(`level`),
FOREIGN KEY (`depression_level`) REFERENCES `depressions`(`level`),
FOREIGN KEY (`mood_level`) REFERENCES `moods`(`level`),
FOREIGN KEY (`activity_level`) REFERENCES `activities`(`level`),
FOREIGN KEY (`appetite_level`) REFERENCES `appetites`(`level`),
FOREIGN KEY (`dream_level`) REFERENCES `dreams`(`level`),
FOREIGN KEY (`anxiety_level`) REFERENCES `anxiety`(`level`),
UNIQUE INDEX `guid_UNIQUE` (`guid` ASC)
);
-- 1, Name1, 200, мкг, да, 100
-- 2, Name2, 300, мл, нет, 100
-- 3, Name3, 50, мг, нет, 101
CREATE TABLE `up_and_down`.`medications` (
`guid` CHAR(36) NOT NULL,
`user_guid` CHAR(36) NOT NULL,
`name` TEXT NOT NULL,
`dose` int8 NOT NULL,
`unit` CHAR(30),
`is_urgent` BOOL NOT NULL,
`user_guid` CHAR(36) NOT NULL,
PRIMARY KEY (`guid`)
PRIMARY KEY (`guid`),
FOREIGN KEY (`user_guid`) REFERENCES `users`(`guid`)
-- SCHEME_ID или GROUP_ID - посмотреть
);
-- 956, 101, 3, 30.06.2025
-- 957, 100, 2, 24.04.2024
-- Связать с diaries
CREATE TABLE `up_and_down`.`set_of_medications` (
`guid` CHAR(36) NOT NULL,
@ -114,60 +108,60 @@ INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (8, 'Мани
INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (9, 'Мания III - сопровождается бредом и галлюцинациями - неадекватное поведение');
INSERT INTO `up_and_down`.`mania` (`level`, `description`) VALUES (10, 'Мания IV - сопровождается бредом и галлюцинациями - человек опасен для себя и других');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (1, 'Депрессия I');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (2, 'Депрессия II');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (3, 'Депрессия III');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (4, 'Депрессия IV');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (5, 'Депрессия V');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (6, 'Депрессия VI');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (7, 'Депрессия VII');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (8, 'Депрессия VIII');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (9, 'Депрессия IX');
INSERT INTO `up_and_down`.`depression` (`level`, `description`) VALUES (10, 'Депрессия X');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (1, 'Депрессия I');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (2, 'Депрессия II');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (3, 'Депрессия III');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (4, 'Депрессия IV');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (5, 'Депрессия V');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (6, 'Депрессия VI');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (7, 'Депрессия VII');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (8, 'Депрессия VIII');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (9, 'Депрессия IX');
INSERT INTO `up_and_down`.`depressions` (`level`, `description`) VALUES (10, 'Депрессия X');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (1, 'Настроение I');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (2, 'Настроение II');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (3, 'Настроение III');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (4, 'Настроение IV');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (5, 'Настроение V');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (6, 'Настроение VI');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (7, 'Настроение VII');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (8, 'Настроение VIII');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (9, 'Настроение IX');
INSERT INTO `up_and_down`.`mood` (`level`, `description`) VALUES (10, 'Настроение X');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (1, 'Настроение I');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (2, 'Настроение II');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (3, 'Настроение III');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (4, 'Настроение IV');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (5, 'Настроение V');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (6, 'Настроение VI');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (7, 'Настроение VII');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (8, 'Настроение VIII');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (9, 'Настроение IX');
INSERT INTO `up_and_down`.`moods` (`level`, `description`) VALUES (10, 'Настроение X');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (1, 'Активность I');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (2, 'Активность II');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (3, 'Активность III');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (4, 'Активность IV');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (5, 'Активность V');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (6, 'Активность VI');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (7, 'Активность VII');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (8, 'Активность VIII');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (9, 'Активность IX');
INSERT INTO `up_and_down`.`activity` (`level`, `description`) VALUES (10, 'Активность X');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (1, 'Активность I');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (2, 'Активность II');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (3, 'Активность III');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (4, 'Активность IV');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (5, 'Активность V');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (6, 'Активность VI');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (7, 'Активность VII');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (8, 'Активность VIII');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (9, 'Активность IX');
INSERT INTO `up_and_down`.`activities` (`level`, `description`) VALUES (10, 'Активность X');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (1, 'Аппетит I');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (2, 'Аппетит II');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (3, 'Аппетит III');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (4, 'Аппетит IV');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (5, 'Аппетит V');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (6, 'Аппетит VI');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (7, 'Аппетит VII');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (8, 'Аппетит VIII');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (9, 'Аппетит IX');
INSERT INTO `up_and_down`.`appetite` (`level`, `description`) VALUES (10, 'Аппетит X');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (1, 'Аппетит I');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (2, 'Аппетит II');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (3, 'Аппетит III');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (4, 'Аппетит IV');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (5, 'Аппетит V');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (6, 'Аппетит VI');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (7, 'Аппетит VII');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (8, 'Аппетит VIII');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (9, 'Аппетит IX');
INSERT INTO `up_and_down`.`appetites` (`level`, `description`) VALUES (10, 'Аппетит X');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (1, 'Сон I');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (2, 'Сон II');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (3, 'Сон III');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (4, 'Сон IV');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (5, 'Сон V');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (6, 'Сон VI');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (7, 'Сон VII');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (8, 'Сон VIII');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (9, 'Сон IX');
INSERT INTO `up_and_down`.`sleep` (`level`, `description`) VALUES (10, 'Сон X');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (1, 'Сон I');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (2, 'Сон II');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (3, 'Сон III');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (4, 'Сон IV');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (5, 'Сон V');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (6, 'Сон VI');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (7, 'Сон VII');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (8, 'Сон VIII');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (9, 'Сон IX');
INSERT INTO `up_and_down`.`dreams` (`level`, `description`) VALUES (10, 'Сон X');
INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (1, 'Тревога I');
INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (2, 'Тревога II');
@ -181,8 +175,8 @@ INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (9, 'Тре
INSERT INTO `up_and_down`.`anxiety` (`level`, `description`) VALUES (10, 'Тревога X');
-- Заполнение пользователями
INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login1', 'Qwerty12345');
INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('56b7c993-392f-41f8-adb1-9766842dc5fd', 'login2', 'AVALON123456');
INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('a243b5f2-e265-4c25-82a9-dde4cc70643f', 'login3', 'Zxcvb123456');
INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('51351bb1-7563-479d-a8e9-201d0ff934c2', 'login4', 'Sadly846612');
INSERT INTO `up_and_down`.`user` (`guid`, `login`, `hashed_password`) VALUES ('c792bbe6-2bf2-4fe0-a781-ba96bfeaa3b6', 'login5', 'Qwerty12345');
INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('ab555fcb-b9ee-45f4-9de8-8f16daa5d03b', 'login1', 'Qwerty12345');
INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('56b7c993-392f-41f8-adb1-9766842dc5fd', 'login2', 'AVALON123456');
INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('a243b5f2-e265-4c25-82a9-dde4cc70643f', 'login3', 'Zxcvb123456');
INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('51351bb1-7563-479d-a8e9-201d0ff934c2', 'login4', 'Sadly846612');
INSERT INTO `up_and_down`.`users` (`guid`, `login`, `hashed_password`) VALUES ('c792bbe6-2bf2-4fe0-a781-ba96bfeaa3b6', 'login5', 'Qwerty12345');