package com.tiedup.remake.state.components;

import com.tiedup.remake.tasks.PlayerStateTask;
import com.tiedup.remake.tasks.TimedInteractTask;
import com.tiedup.remake.tasks.TyingTask;
import com.tiedup.remake.tasks.UntyingTask;

/**
 * Component responsible for tracking tying/untying tasks.
 *
 * Single Responsibility: Task state management
 * Complexity: LOW (simple getters/setters)
 * Risk: LOW (isolated, no external dependencies)
 */
public class PlayerTaskManagement {

    // ========== Task Fields ==========

    private TyingTask currentTyingTask;
    private UntyingTask currentUntyingTask;
    private PlayerStateTask clientTyingTask;
    private PlayerStateTask clientUntyingTask;
    private TimedInteractTask currentFeedingTask;
    private PlayerStateTask clientFeedingTask;
    private PlayerStateTask restrainedState;

    // ========== Task Getters/Setters ==========

    public TyingTask getCurrentTyingTask() {
        return currentTyingTask;
    }

    public void setCurrentTyingTask(TyingTask task) {
        this.currentTyingTask = task;
    }

    public UntyingTask getCurrentUntyingTask() {
        return currentUntyingTask;
    }

    public void setCurrentUntyingTask(UntyingTask task) {
        this.currentUntyingTask = task;
    }

    public PlayerStateTask getClientTyingTask() {
        return clientTyingTask;
    }

    public void setClientTyingTask(PlayerStateTask task) {
        this.clientTyingTask = task;
    }

    public PlayerStateTask getClientUntyingTask() {
        return clientUntyingTask;
    }

    public void setClientUntyingTask(PlayerStateTask task) {
        this.clientUntyingTask = task;
    }

    public TimedInteractTask getCurrentFeedingTask() {
        return currentFeedingTask;
    }

    public void setCurrentFeedingTask(TimedInteractTask task) {
        this.currentFeedingTask = task;
    }

    public PlayerStateTask getClientFeedingTask() {
        return clientFeedingTask;
    }

    public void setClientFeedingTask(PlayerStateTask task) {
        this.clientFeedingTask = task;
    }

    public PlayerStateTask getRestrainedState() {
        return restrainedState;
    }

    public void setRestrainedState(PlayerStateTask state) {
        this.restrainedState = state;
    }
}
