package de.effigenix.domain.production;

import de.effigenix.shared.security.Action;

/**
 * Type-safe actions for Production Bounded Context.
 * Used with AuthorizationPort for domain-level authorization.
 *
 * Example:
 * <pre>
 * authPort.assertCan(ProductionAction.RECIPE_WRITE);
 * </pre>
 */
public enum ProductionAction implements Action {
    // Recipe Management
    RECIPE_READ,
    RECIPE_WRITE,
    RECIPE_DELETE,

    // Batch Production
    BATCH_READ,
    BATCH_WRITE,
    BATCH_COMPLETE,
    BATCH_CANCEL,
    BATCH_DELETE,

    // Production Orders
    PRODUCTION_ORDER_READ,
    PRODUCTION_ORDER_WRITE,
    PRODUCTION_ORDER_DELETE
}
