Files
chat/docs/MOBILE_CALENDAR_API.md
Andrew K. Choi 91c7e04474
All checks were successful
continuous-integration/drone/push Build is passing
API refactor
2025-10-07 16:25:52 +09:00

102 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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