packages/types
@ixiclinic/types — tipos TypeScript compartidos (entidades y contratos de API) que consumen todas las apps del monorepo. Compila primero en Turbo.
@ixiclinic/types (packages/types) es el paquete de tipos TypeScript compartidos del monorepo:
las entidades del dominio y los contratos de la API. Todas las apps lo importan vía @ixiclinic/types,
de modo que un mismo tipo (un Patient, un Invoice, una AuthResponse) significa lo mismo en el
API, el admin, el portal, el lab-site y el mobile.
| Stack | TypeScript (sin runtime) |
| Paquete | @ixiclinic/types |
| Output | dist/ (tsc) — main: dist/index.js, types: dist/index.d.ts |
Nota: Es una librería, no una app desplegable. En el orden de build de Turbo compila primero, porque todas las apps dependen de él vía
^build(ver Arquitectura).
Estructura (packages/types/src/)
El barrel index.ts reexporta los dos módulos:
export * from './entities.js';
export * from './api.js';entities.ts — entidades del dominio
Agrupa las interfaces y tipos de las entidades del sistema, entre ellas:
- Núcleo / SaaS:
Tenant,Branch,User,UserTenant,Plan,Subscription,Demo,Organization,SaasUser. - Slider / Hero Builder:
SlideType,SlideBlock,SlideBlockStyle,HomeSlide,SliderConfig,TenantSliderSettingsy sus tipos de soporte. - Website Builder:
GlobalConfig,HeaderConfig,FooterConfig,SectionBase, las variantes de sección (HeroSection,ServicesSection,InfoBarSection,TestimonialsSection,CtaSection,StatsSection,ContactSection,FaqSection,AppointmentCtaSection), la uniónWebsiteSection,WebsiteSectionTypeyWebsiteConfig. - Portal del cliente:
ClientAccount,Company,CompanyEmployee,ClientAppointment. - Recetas y clínica:
Prescription,PrescriptionTest,PrescriptionMedication,PatientVitals,PatientNote, y los tipos de historial clínico (HistorialResultRow,HistorialDoctor,HistorialOrder,PatientHistorialStats,PatientHistorial).
api.ts — contratos de la API
Tipos de petición/respuesta compartidos entre el API y los clientes:
- Genéricos / auth:
PaginatedResponse<T>,LoginRequest,RegisterRequest,AuthResponse,RefreshRequest,RefreshResponse,SwitchContextRequest,ApiError. - SaaS:
SaasDashboard,DemoMetrics,SaasAuthResponse. - Portal del cliente:
ClientAuthResponse,ClientLoginRequest,ClientRegisterPatientRequest,ClientRegisterCompanyRequest.
Cómo añadir un tipo
-
Edita
packages/types/src/entities.ts(entidad de dominio) opackages/types/src/api.ts(contrato de petición/respuesta) y exporta la interfaz o el tipo nuevo. Al estar reexportados porindex.ts, queda disponible automáticamente como@ixiclinic/types. -
Recompila el paquete para que las apps vean el
.d.tsactualizado:pnpm --filter @ixiclinic/types build # o pnpm build (Turbo compila types primero) -
Úsalo desde cualquier app:
import type { Patient, AuthResponse } from "@ixiclinic/types";
Nota: Como
typescompila antes que todo lo demás, si una app no "ve" un tipo recién agregado, casi siempre es porque falta recompilar el paquete (dist/desactualizado).
Desktop
ixiclinic Desktop — shell de escritorio nativo (Tauri) que carga admin.ixiclinic.com con sesión persistente, audio/voz nativos y el agente ixiclinic Connect empaquetado como sidecar.
Base de datos
Visión general de la capa de datos de ixiclinic — Drizzle ORM sobre PostgreSQL, los dos entornos (desarrollo y producción) y el mapa de subpáginas.