API refactor
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-10-07 16:25:52 +09:00
parent 76d0d86211
commit 91c7e04474
1171 changed files with 81940 additions and 44117 deletions

102
docs/MOBILE_CALENDAR_API.md Normal file
View File

@@ -0,0 +1,102 @@
# Документация мобильного 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 |