namespace Minesweeper.Commands
{
    public readonly struct SelectFieldCommand : IGameCommand
    {
        public SelectFieldCommand(int width, int height, int minesCount)
        {
            Width = width;
            Height = height;
            MinesCount = minesCount;
        }

        public int Width { get; }
        public int Height { get; }
        public int MinesCount { get; }
    }

    public readonly struct StartGameCommand : IGameCommand
    {
    }

    public readonly struct OpenCellCommand : IGameCommand
    {
        public OpenCellCommand(int x, int y)
        {
            X = x;
            Y = y;
        }

        public int X { get; }
        public int Y { get; }
    }

    public readonly struct ToggleFlagCommand : IGameCommand
    {
        public ToggleFlagCommand(int x, int y)
        {
            X = x;
            Y = y;
        }

        public int X { get; }
        public int Y { get; }
    }

    public readonly struct RestartCommand : IGameCommand
    {
    }

    public readonly struct PauseCommand : IGameCommand
    {
    }

    public readonly struct ResumeCommand : IGameCommand
    {
    }

    public readonly struct GoToMenuCommand : IGameCommand
    {
    }
}
