package com.blaze.agent.task import java.util.UUID enum class TaskType { ONE_SHOT, MONITORING } enum class TaskStatus { PENDING, RUNNING, PAUSED, COMPLETED, STOPPED } data class MonitoringTask( val id: String = UUID.randomUUID().toString(), val description: String, val triggerCondition: String, val actionToExecute: String, val isRecurring: Boolean = true, val checkIntervalMs: Long = 30_000L, val startedAt: Long = System.currentTimeMillis(), var status: TaskStatus = TaskStatus.RUNNING, var triggerCount: Int = 0, var lastCheckedAt: Long = 0L, var lastTriggeredAt: Long = 0L ) { val isAlive: Boolean get() = status == TaskStatus.RUNNING || status == TaskStatus.PAUSED fun markTriggered() { triggerCount++; lastTriggeredAt = System.currentTimeMillis() } fun markChecked() { lastCheckedAt = System.currentTimeMillis() } } data class ConditionCheckResult( val conditionMet: Boolean, val specificAction: String?, val reasoning: String = "" ) data class TaskClassification( val taskType: TaskType, val triggerCondition: String? = null, val actionToExecute: String? = null, val isRecurring: Boolean = false, val checkIntervalMs: Long = 30_000L, val reasoning: String = "" )