using System;
using System.Collections.Generic;
using System.Text;

namespace MyKarte.Service.Impl
{
    /// <summary>
    /// Attachment インターフェイス
    /// </summary>
    public interface IAttachment
    {
        /// <summary>
        /// 認証する。
        /// </summary>
        /// <param name="args">引数</param>
        /// <returns>true: OK, false: NG</returns>
        bool Authenticate(string[] args);

        /// <summary>
        /// 患者IDを取得する。
        /// </summary>
        /// <returns>患者ID</returns>
        string GetPatient();

        /// <summary>
        /// 患者IDを設定する。
        /// </summary>
        /// <param name="patientId">患者ID</param>
        void SetPatient(string patientId);
        
        /// <summary>
        /// type, attribute を設定する。
        /// </summary>
        /// <param name="props">type, attribute</param>
        void SetProperties(string[] props);
        
        /// <summary>
        /// 日付を取得する。
        /// </summary>
        /// <param name="startDate">開始日</param>
        /// <param name="endDate">終了日</param>
        /// <param name="diff">差分</param>
        /// <returns>日付</returns>
        DateTime[] GetDates(DateTime startDate, DateTime endDate, bool diff);
        
        /// <summary>
        /// 指定した日付のデータを文字列として取得する。
        /// </summary>
        /// <param name="date">日付</param>
        /// <returns>文字列</returns>
        string GetContent(DateTime date);
        
        /// <summary>
        /// 指定した日付のデータをファイルとして取得する。
        /// </summary>
        /// <param name="date">日付</param>
        /// <returns>ファイルパス, descriptionId</returns>
        Dictionary<string, string> GetFiles(DateTime date);
    }
}
