//using GeoSus.Client;
using System;
using UnityEngine;

public enum TaskType
{
    Task //TODO: Typy úkolù
}



public interface ITask
{
    public string TaskID { get; } // Unikátní ID úkolu pro server
    public TaskType TaskType { get; } // Typ úkolu
    public string TaskName { get; } // Viditelný název úkolu
    public (double, double) TaskLocation { get; } // Polohy na mapì
    public bool IsCompleted { get; } // Stav dokonèení úkolu

    void Initialize(Action<ITask> onCompleted); // Vytvoøení tasku + naètení postupu
    void ExitTask(Action<ITask> onExit); // Pøi opuštìní úkolu poslat hotovo / uložit postup / reset
    void Complete(); // Oznaèit úkol jako dokonèený, poslat na server a zavøít

}
/* Ukázoková implementace ITask
public class Wires : ITask{
    public string TaskID { get; set; } // Unikátní ID úkolu pro server
    public TaskType TaskType { get; set; } // Typ úkolu
    public string TaskName { get; set; } // Viditelný název úkolu
    public (double, double) TaskLocation { get; set; } // Poloha na mapì
    public bool IsCompleted { get; private set; } // Stav dokonèení úkolu
    private Action<ITask> _onCompleted; 

    public void Initialize(Action<ITask> onCompleted) // Vytvoøení tasku
    {
        IsCompleted = false;
        _onCompleted = onCompleted;
    }
    public void ExitTask(Action<ITask> onExit) //Zavøení tasku
    {
        onExit?.Invoke(this);
    }
    public void Complete() // Dokonèení tasku a zavøení
    {
        IsCompleted = true;
        _onCompleted?.Invoke(this);
        ExitTask(null);
    }



}
*/