using Edge.Core.Domain.FccTankInfo.Input;
using Edge.Core.Domain.FccTankInfo.Output;

namespace FccLite.Web.Services.FccTankInfo
{
    public interface ITankInfoService
    {
        /// <summary>
        /// 统计站点 id 获取油罐基本信息
        /// </summary>
        /// <param name="stationId">站点id</param>
        /// <returns></returns>
        Task<List<BaseTankInfoOutput>> GetBaseTankByStationIdAsync(long stationId);

        /// <summary>
        /// 通过油罐id获取油罐详情信息,油罐id为 -1 只返回当前可关联的油品
        /// </summary>
        /// <param name="tankId">油罐id</param>
        /// <returns></returns>
        Task<DetailsTankInfoOutput> GetDetailsTankByTankIdAsync(long tankId);

        /// <summary>
        /// 增加油罐
        /// </summary>
        /// <param name="addTankInput">油罐信息</param>
        /// <returns></returns>
        Task<SetTankInfoOutput> AddDetailsTankAsync(AddTankInput addTankInput);

        /// <summary>
        /// 修改油罐
        /// </summary>
        /// <param name="updateTankInput">油罐信息</param>
        /// <returns></returns>
        Task<SetTankInfoOutput> UpdateDetailsTankAsync(UpdateTankInput updateTankInput);

        /// <summary>
        /// 通过油罐id删除油罐
        /// </summary>
        /// <param name="id">油罐id</param>
        /// <returns></returns>
        Task<SetTankInfoOutput> DeleteTankById(long id);
    }
}
