Guilda WorkDevelopers

INTEGRACIÓN

Modelos de datos

La forma exacta de cada objeto que devuelve la API — campos, tipos y notas.

Los nombres de campo son los mismos que las columnas reales de SQLite (app/db.py) — lo que ves aquí es lo que te devuelve la API, sin una capa de serialización intermedia que pueda renombrar nada. Todos los timestamps son ISO 8601 en hora local del servidor, sin offset (ej. 2026-07-10T14:32:05), nunca UTC ni con zona horaria explícita.

Categoria (menú)

CampoTipoNotas
idinteger
nombrestringÚnico por usuario.
colorstring | nullCódigo de color hex, opcional.
creada_enstring (ISO 8601)
papelera_enstring (ISO 8601) | nullNo null si está en la papelera — la API nunca devuelve categorías en la papelera desde /categorias, solo desde /papelera.
ordeninteger | nullPosición manual (↑/↓ en el panel de inicio); null = orden alfabético por defecto.

Nota

CampoTipoNotas
idinteger
textostring
categoria_idinteger | null
tarea_idinteger | nullSi la nota quedó asociada a una tarea con duración concreta — la API REST actual no tiene forma de fijar este campo al crear (siempre null vía POST /notas), pero si existe se devuelve igualmente.
creada_enstring (ISO 8601)Con segundos — es el timestamp que ordena el registro cronológico.
papelera_enstring (ISO 8601) | null

Tarea (con duración)

No confundir con TareaOutlook (siguiente sección) — son dos modelos independientes, sin relación entre sí, pensados para cosas distintas: esta es la tarea con cronómetro del registro de actividad; la otra es una lista de tareas al estilo Microsoft Outlook To-Do.

CampoTipoNotas
idinteger
nombrestring
categoria_idintegerObligatorio — a diferencia de Nota, una tarea con duración siempre pertenece a un menú.
tipo"duracion" | "instantanea"Fijo desde la creación, no se puede cambiar.
estado"pendiente" | "en_curso" | "pausada" | "finalizada"Una instantanea nace directamente en finalizada.
inicio_enstring (ISO 8601) | null
fin_enstring (ISO 8601) | nullnull hasta que se finaliza.
duracion_segundosinteger | nullCalculado al finalizar, descontando el tiempo en pausa — null mientras no está finalizada, y siempre null en tipo instantanea (por diseño, no por estar pendiente).
papelera_enstring (ISO 8601) | null

TareaOutlook

Nombres de campo calcados del modelo de objetos de Outlook/iCalendar (VTODO, RFC 5545) a propósito, para que el mapeo de import/export .ics/.csv sea 1:1 sin traducir nombres.

CampoTipoNotas
idinteger
asuntostringEquivalente a "Subject".
cuerpostring | null
estado"no_iniciada" | "en_progreso" | "completada" | "esperando" | "aplazada"Por defecto no_iniciada.
porcentaje_completadointeger0-100, por defecto 0.
prioridad"baja" | "normal" | "alta"Por defecto normal.
fecha_iniciostring (ISO 8601) | null
fecha_vencimientostring (ISO 8601) | null
fecha_completadastring (ISO 8601) | nullSe rellena sola al completar.
categoria_outlookstring | nullTexto libre — no es una Categoria/menú, es la categoría de color propia de Outlook.
outlook_entry_idstring | nullEntryID de Outlook, para reconciliar en reimportaciones repetidas del mismo archivo.
creada_en / actualizada_enstring (ISO 8601)
papelera_enstring (ISO 8601) | null

CuentaCorreo

CampoTipoNotas
idinteger
nombrestringNombre visible de la cuenta, elegido por el usuario.
protocolo"imap" | "pop3"
host / puerto / usa_tlsstring / integer / booleanConexión de recepción.
usuariostringUsuario de login del servidor de correo (no el id local).
smtp_host / smtp_puerto / smtp_tlsstring | null / integer | null / booleanSolo si la cuenta tiene envío configurado.
creada_en / ultima_sincronizacionstring (ISO 8601) | null
firma_html, firma_en_nuevos, firma_en_respuestasstring | null, boolean, boolean
La contraseña de la cuenta de correo nunca aparece en la respuesta de la API — no se guarda en SQLite en absoluto, vive en el almacén de credenciales del sistema operativo (keyring), bajo una clave interna por cuenta.

MensajeCorreo

CampoTipoNotas
idintegerId local (caché) — no es el uid IMAP.
cuenta_idinteger
carpetastringPor defecto INBOX.
uidstringIdentificador IMAP/POP3 real del mensaje en el servidor.
asunto, remitente, destinatarios, ccstring | null
fechastring (ISO 8601) | nullFecha del mensaje según su cabecera, no la de sincronización.
cuerpo_texto / cuerpo_htmlstring | null
message_idstring | nullCabecera Message-ID, para hilos (In-Reply-To/References) al responder.
leido, destacadoboolean
categoria_idinteger | nullCategoría de color propia de Guilda Work — nunca se sincroniza con el servidor de correo.
fecha_aviso, pospuesto_hastastring (ISO 8601) | null
El Cco (bcc) de un mensaje recibido nunca aparece aquí — por diseño del propio correo electrónico, nadie salvo el remitente original sabe quién iba en copia oculta; no es una limitación de Guilda Work, ningún cliente de correo puede mostrar ese dato en un mensaje recibido.