All checks were successful
continuous-integration/drone/push Build is passing
102 lines
3.6 KiB
Markdown
102 lines
3.6 KiB
Markdown
# Документация мобильного API календарного сервиса
|
||
|
||
## Эндпоинт `/api/v1/calendar/entries/mobile`
|
||
|
||
### POST
|
||
|
||
Создает или обновляет запись в календаре из мобильного приложения.
|
||
|
||
**URL**: `/api/v1/calendar/entries/mobile`
|
||
|
||
**Метод**: `POST`
|
||
|
||
**Аутентификация**: Обязательна
|
||
|
||
**Тело запроса**:
|
||
```json
|
||
{
|
||
"date": "2025-09-28",
|
||
"type": "MENSTRUATION",
|
||
"flow_intensity": 5,
|
||
"symptoms": ["FATIGUE", "HEADACHE"],
|
||
"mood": "NORMAL",
|
||
"notes": "Запись из мобильного приложения"
|
||
}
|
||
```
|
||
|
||
**Параметры**:
|
||
|
||
| Параметр | Тип | Обязательный | Описание |
|
||
|----------|-----|--------------|----------|
|
||
| date | строка (YYYY-MM-DD) | Да | Дата записи |
|
||
| type | строка | Да | Тип записи. Возможные значения: `MENSTRUATION`, `OVULATION`, `SPOTTING`, `DISCHARGE`, `PAIN`, `MOOD` |
|
||
| flow_intensity | число | Нет | Интенсивность (1-5). Только для типа `MENSTRUATION` |
|
||
| symptoms | массив строк | Нет | Массив симптомов. Возможные значения: `FATIGUE`, `HEADACHE`, `CRAMPS`, и др. |
|
||
| mood | строка | Нет | Настроение. Возможные значения: `NORMAL`, `HAPPY`, `SAD`, `ANXIOUS`, `IRRITATED`, `ENERGETIC`, `TIRED` |
|
||
| notes | строка | Нет | Заметки пользователя |
|
||
|
||
**Успешный ответ**:
|
||
|
||
- **Код**: `201 Created`
|
||
- **Содержимое**:
|
||
```json
|
||
{
|
||
"id": 1,
|
||
"uuid": "123e4567-e89b-12d3-a456-426614174000",
|
||
"user_id": 25,
|
||
"entry_date": "2025-09-28",
|
||
"entry_type": "period",
|
||
"flow_intensity": "heavy",
|
||
"period_symptoms": "",
|
||
"mood": "neutral",
|
||
"energy_level": 1,
|
||
"sleep_hours": 0,
|
||
"symptoms": "FATIGUE, HEADACHE",
|
||
"medications": "",
|
||
"notes": "Запись из мобильного приложения",
|
||
"is_predicted": false,
|
||
"confidence_score": null,
|
||
"created_at": "2025-09-28T16:21:30.123456",
|
||
"updated_at": "2025-09-28T16:21:30.123456",
|
||
"is_active": true
|
||
}
|
||
```
|
||
|
||
**Ошибки**:
|
||
|
||
- **Код**: `401 Unauthorized`
|
||
- **Содержимое**: `{"detail": "Не предоставлены учетные данные аутентификации"}`
|
||
|
||
- **Код**: `500 Internal Server Error`
|
||
- **Содержимое**: `{"detail": "Ошибка сервера: [описание ошибки]"}`
|
||
|
||
## Конвертация между мобильными и серверными типами
|
||
|
||
### Типы записей
|
||
| Мобильное приложение | Сервер |
|
||
|----------------------|--------|
|
||
| MENSTRUATION | period |
|
||
| OVULATION | ovulation |
|
||
| SPOTTING | symptoms |
|
||
| DISCHARGE | symptoms |
|
||
| PAIN | symptoms |
|
||
| MOOD | mood |
|
||
|
||
### Интенсивность кровотечения
|
||
| Мобильное приложение (1-5) | Сервер |
|
||
|----------------------------|--------|
|
||
| 1 | spotting |
|
||
| 2 | light |
|
||
| 3 | medium |
|
||
| 4-5 | heavy |
|
||
|
||
### Настроение
|
||
| Мобильное приложение | Сервер |
|
||
|----------------------|--------|
|
||
| HAPPY | happy |
|
||
| SAD | sad |
|
||
| NORMAL | happy |
|
||
| ANXIOUS | anxious |
|
||
| IRRITATED | irritated |
|
||
| ENERGETIC | energetic |
|
||
| TIRED | tired | |