using Edge.Core.Domain.FccStationInfo.Input;

namespace FccLite.Web.Repositories.FccStationInfo
{
    public interface IStationRepository
    {
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="page">页码</param>
        /// <param name="pageSize">页数</param>
        /// <param name="id">过滤条件——id</param>
        /// <param name="name">过滤条件——站名</param>
        /// <param name="longitude">过滤条件——经度</param>
        /// <param name="latitude">过滤条件——纬度</param>
        /// <returns></returns>
        Task<IEnumerable<Edge.Core.Domain.FccStationInfo.FccStationInfo>> GetPage(int page, int pageSize, long? id, string? name, decimal? longitude, decimal? latitude);

        /// <summary>
        /// 通过 id 查找站点信息
        /// </summary>
        /// <param name="id">id</param>
        /// <returns>站点信息</returns>
        Task<Edge.Core.Domain.FccStationInfo.FccStationInfo?> FindByID(long id);

        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="stationInfoInput">站点信息</param>
        /// <returns></returns>
        Task<Edge.Core.Domain.FccStationInfo.FccStationInfo> Save(StationInfoInput stationInfoInput);

        /// <summary>
        /// 通过 id 删除站点信息
        /// </summary>
        /// <param name="id">id</param>
        /// <returns>站点信息</returns>
        Task<Boolean> DeleteByID(long id);
    }
}
