using SatelliteProvider.DataAccess.Models;

namespace SatelliteProvider.DataAccess.Repositories;

public interface ITileRepository
{
    Task<TileEntity?> GetByIdAsync(Guid id);
    Task<TileEntity?> GetByTileCoordinatesAsync(int tileZoom, int tileX, int tileY);
    Task<IEnumerable<TileEntity>> GetTilesByRegionAsync(double latitude, double longitude, double sizeMeters, int zoomLevel);
    Task<Guid> InsertAsync(TileEntity tile);
    Task<int> UpdateAsync(TileEntity tile);
    Task<int> DeleteAsync(Guid id);
}
