﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using TheMatchmaker.Data.Enumerations;
using TheMatchmaker.Data.ViewModels;

namespace TheMatchmaker.Data.Services
{
    public interface IScheduleService
    {
        // schedule
        Task<IEnumerable<Schedule>> GetNextSchedules();

        Task<bool> CreateSchedule(Guid userId, CreateScheduleViewModel schedule);

        // slot

        Task<bool> CreateSlot(Guid userId, Guid scheduleId, SlotStatus slotStatus);

        Task<bool> SetSlotStatus(Guid userId, Guid slotId, SlotStatus slotStatus);

        Task<bool> DeleteSlot(Guid userId, Guid slotId);

        // admin
        Task<bool> ConfirmSchedule(Guid userId, Guid scheduleId);

        Task<bool> CancelSlot(Guid userId, Guid slotCancelledId);
    }
}