using Repository.BaseRepository.Interface;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Repository.FrontendRepository.Interface
{
    public interface IFrontendRepository : IBaseRepository
    {
        /// <summary>
        /// 透過Account,取得當前登入使用者資訊
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        A GetMyUserInfoByAccount<A>(string account);
        void UpdateProcessPID(Dictionary<string, object> dict, string Table_name, string sWhere);
        Task AddOneFromDataDelivery(int task_id, List<string> pks, Dictionary<string, object> dict, string targetTable);
        Task AddMutiFromDataDelivery(int task_id, List<string> pks, List<Dictionary<string, object>> dicts, string targetTable);
        Task UpdateOneFromDataDelivery(int task_id, List<string> pks, Dictionary<string, object> dict, string targetTable);
        Task UpdateListFromDataDelivery(int task_id, List<string> pks, List<Dictionary<string, object>> dicts, string targetTable);
        Task PurgeOneFromDataDelivery(int task_id, List<string> pks, Dictionary<string, object> dict, string targetTable);
        Task PurgeSpecifyInsertFromDataDelivery(int task_id, List<string> pks, List<Dictionary<string, object>> dicts, string targetTable);
        Task PurgeAllInsertFromDataDelivery(int task_id, List<string> pks, List<Dictionary<string, object>> dicts, string targetTable);
    }
}