Komorebi API

Backend API para Cozy Plants - Tu compañero virtual de productividad

Recursos Disponibles

Autenticación

POST /auth/login Requiere auth

Iniciar sesión con email y contraseña

{
  "email": "user@example.com",
  "password": "your_password"
}
{
  "success": true,
  "status": 200,
  "mensaje": "Login exitoso",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": {
      "id": 1,
      "email": "user@example.com"
    }
  }
}
POST /user/create

Crear nuevo usuario

{
  "email": "user@example.com",
  "password": "your_password",
  "name": "Nombre Usuario"
}
{
  "success": true,
  "status": 201,
  "mensaje": "Usuario creado",
  "data": null
}

Plantas

POST /plants/create Requiere auth

Crear una nueva planta

{
  "user_id": 1,
  "name": "Mi Planta",
  "type": "succulent",
  "substrate": "soil",
  "watering_days": 7
}
{
  "success": true,
  "status": 201,
  "mensaje": "Planta creada",
  "data": {
    "plant_id": 1
  }
}

Tareas

POST /tasks/create Requiere auth

Crear una nueva tarea

{
  "user_id": 1,
  "title": "Mi Tarea",
  "description": "Descripción de la tarea"
}
{
  "success": true,
  "status": 201,
  "mensaje": "Tarea creada",
  "data": {
    "task_id": 1
  }
}

WebSocket - Eventos en Tiempo Real

El servidor envía eventos cuando ocurre alguna acción del personaje o recordatorios.

WS /ws/{user_id} WebSocket

Conectar al servidor de eventos en tiempo real

# Conexión desde el cliente
wss://api.stuardo.dev:5050/ws/{user_id}
# Ejemplo de evento recibido
{
  "action": "watering",
  "plant_id": 1,
  "message": "Tu planta necesita agua!"
}

Tipos de Eventos

Respuestas Estandarizadas

{
  "success": true|false,
  "status": 200|201|400|401|500,
  "mensaje": "Descripción del resultado",
  "data": {}|null
}

Códigos de Estado