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