6. Firestore, modelos y endpoints de dominio

6. Firestore, modelos y endpoints de dominio

Actualizado: 20 de febrero de 2026.

Aquí consolidamos el dominio de invitaciones y modelos IA sobre Firestore.

Prerrequisitos

  1. Tener clonado o disponible codigo/ de esta serie.
  2. Contar con Firebase y Novita configurados para pruebas.
  3. Haber completado el capítulo anterior del curso.

Modelo principal: Invitation

Archivo:

  • codigo/backend/InvitaIA.Api/Models/Invitation.cs

Campos clave:

  1. id, status, taskId
  2. previewUrl, finalUrl
  3. modelBaseId, loraId
  4. controlImageUrl, controlModelId, controlStrength, controlPreprocessor

Request principal: InvitationRequest

Archivo:

  • codigo/backend/InvitaIA.Api/Models/InvitationRequest.cs

Reglas:

  1. format y orientation requeridos.
  2. Debe haber modelBaseId o loraId.
  3. Se admite photoUrl o prompt o controlImageUrl.

Persistencia en Firestore

Implementación en:

  • codigo/backend/InvitaIA.Api/Services/FirebaseService.cs

Estructura:

  1. users/{uid}/public_invitations/{invitationId}
  2. public_invitations/{invitationId} (copia pública)
  3. novita_models/*
  4. settings/*

Endpoints de dominio

  1. POST /api/invitations/create
  2. GET /api/invitations
  3. GET /api/invitations/{id}
  4. POST /api/invitations/{id}/orientation
  5. GET /api/models/base
  6. GET /api/models/lora
  7. GET /api/models/lora/{baseModel}

Verificación rápida

cd codigo/backend
rg -n "class Invitation|class InvitationRequest|Route\(\"api/" InvitaIA.Api -S

Troubleshooting

  1. Firestore sin documentos: revisa credenciales de Admin SDK.
  2. 400 en create: valida payload mínimo requerido.
  3. No aparecen modelos: revisa colección novita_models.

FAQ corta

¿Por qué guardar también en public_invitations raíz?

Para consultas globales y feed público sin hacer collectionGroup complejo en cliente.

¿Dónde se controla si una invitación es pública?

En campo isPublic y endpoint PUT /api/invitations/{id}/public.

¿ControlNet se persiste?

Sí, con campos dedicados en Invitation.

Fuente verificada

  • Código del curso:
    • codigo/backend/InvitaIA.Api/Models/Invitation.cs
    • codigo/backend/InvitaIA.Api/Models/InvitationRequest.cs
    • codigo/backend/InvitaIA.Api/Services/FirebaseService.cs
    • codigo/backend/InvitaIA.Api/Controllers/ModelsController.cs

Share this content:

Curso Flutter y .NET 8 con Novita AI: índice completo paso a paso

. Webhook Novita y procesamiento asíncrono . Flutter: login Google y configuración API

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.