Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
1.2 KiB
1.2 KiB
ET-AST-003: Motor de Mantenimiento
ID: ET-AST-003 | Módulo: MAE-015
Maintenance Service
@Injectable()
export class MaintenanceService {
async schedulePreventive(assetId: string): Promise<MaintenanceSchedule[]> {
const asset = await this.assetService.findOne(assetId);
const template = await this.getMaintenanceTemplate(asset.type);
const schedules = template.intervals.map(interval => ({
assetId,
type: 'preventive',
scheduledDate: this.calculateNextDate(interval),
checklist: template.checklist
}));
return this.scheduleRepo.save(schedules);
}
@Cron('0 8 * * *') // Daily at 8am
async sendMaintenanceAlerts(): Promise<void> {
const upcoming = await this.scheduleRepo.findUpcoming(30);
for (const schedule of upcoming) {
const daysUntil = this.getDaysUntil(schedule.scheduledDate);
if ([30, 15, 7].includes(daysUntil)) {
await this.notificationService.send({
to: schedule.asset.responsibleEmail,
subject: `Mantenimiento próximo: ${schedule.asset.name}`,
template: 'maintenance_alert'
});
}
}
}
}
Generado: 2025-11-21