using System;
using System.Collections.Generic;

using IRaCIS.Application.Contracts;

using IRaCIS.Core.Infrastructure.Extention;

namespace IRaCIS.Application.Interfaces
{
    public interface IAttachmentService
    {
        Task<IEnumerable<AttachmentDTO>> SaveAttachments(IEnumerable<AttachmentDTO> attachmentList);


        Task<IResponseOutput<AttachmentDTO>>  AddAttachment(AttachmentDTO attachment);
        Task<IResponseOutput> DeleteAttachment(AttachementCommand param);
        Task<AttachmentDTO> GetDetailById(Guid attachmentId);
        Task<IEnumerable<AttachmentDTO>> GetAttachmentByType(Guid doctorId, string type);
        Task<IEnumerable<AttachmentDTO>> GetAttachmentByTypes(Guid doctorId, string[] types);
        Task<IEnumerable<AttachmentDTO>> GetAttachments(Guid doctorId);
        Task<string> GetDoctorOfficialCV(int language, Guid doctorId);

        Task<IResponseOutput> SetOfficial(Guid doctorId, Guid attachmentId, int language);

        Task<IResponseOutput> SetLanguage(Guid doctorId, Guid attachmentId, int language);
    }
}