package com.social.media.domain.campaign.valueobject;

/**
 * Execution Status Enumeration
 * Represents the status of individual campaign executions
 */
public enum ExecutionStatus {
    PENDING("Execution is pending"),
    RUNNING("Execution is currently running"),
    COMPLETED("Execution completed successfully"),
    FAILED("Execution failed"),
    CANCELLED("Execution was cancelled");
    
    private final String description;
    
    ExecutionStatus(String description) {
        this.description = description;
    }
    
    public String getDescription() {
        return description;
    }
    
    public boolean isFinished() {
        return this == COMPLETED || this == FAILED || this == CANCELLED;
    }
    
    public boolean isSuccessful() {
        return this == COMPLETED;
    }
    
    public boolean canRetry() {
        return this == FAILED;
    }
}
