mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 16:33:12 +00:00
- Reject duplicate site codes per client (case-insensitive); site code is immutable once set
- Delete tombstones the site and requires the DeleteSites permission (Admin, Scheduler)
- GET /api/locations/{id}/open-work-orders returns the open count and ids
- PATCH /api/locations/{id}/contact-info saves contacts and notes from the work-order Site dialog
- Add nullable Locations.Notes, used as the site-level POC notes fallback
30 lines
2 KiB
C#
30 lines
2 KiB
C#
using System.Security.Claims;
|
|
using SeaHaven.Services.DTOs;
|
|
|
|
namespace SeaHaven.Services.Interfaces
|
|
{
|
|
public interface ILocationService
|
|
{
|
|
Task<LocationDTO?> GetLocationByIdAsync(int id);
|
|
Task<LocationDTO?> GetLocationByIdWithDetailsAsync(int id);
|
|
Task<IEnumerable<LocationDTO>> GetAllLocationsAsync();
|
|
Task<IEnumerable<LocationDTO>> GetLocationsByAccountIdAsync(int accountId);
|
|
Task<PagedResult<LocationDTO>> GetLocationsPagedAsync(int page, int pageSize, string? search = null);
|
|
Task<IReadOnlyList<SiteOptionDTO>> GetSiteOptionsAsync(
|
|
string? search = null,
|
|
CancellationToken cancellationToken = default);
|
|
Task<LocationDTO> CreateLocationAsync(CreateLocationDTO dto, string userId);
|
|
Task<LocationDTO> UpdateLocationAsync(int id, UpdateLocationDTO dto, string userId);
|
|
Task DeleteLocationAsync(int id, string userId);
|
|
Task<bool> LocationExistsAsync(int id);
|
|
Task<int> GetTotalLocationCountAsync();
|
|
|
|
Task<PagedResult<LocationDTO>> GetLocationListPagedAsync(int page, int pageSize, string? search, string? states = null, CancellationToken cancellationToken = default, string? sortBy = null, string? sortDirection = null);
|
|
Task<LocationDTO?> GetLocationDetailAsync(int id, CancellationToken cancellationToken);
|
|
Task CreateLocationFromRequestAsync(LocationCreateRequestDTO request, ClaimsPrincipal user, CancellationToken cancellationToken);
|
|
Task UpdateLocationFromRequestAsync(int id, LocationUpdateRequestDTO request, ClaimsPrincipal user, CancellationToken cancellationToken);
|
|
Task UpdateSiteContactInfoAsync(int id, SiteContactInfoRequestDTO request, ClaimsPrincipal user, CancellationToken cancellationToken);
|
|
Task<bool> DeleteLocationByIdAsync(int id, ClaimsPrincipal user, CancellationToken cancellationToken);
|
|
Task<SiteOpenWorkOrdersDTO?> GetOpenWorkOrdersAsync(int id, ClaimsPrincipal user, CancellationToken cancellationToken);
|
|
}
|
|
}
|