using System.Security.Claims; using Data.SeaHavenIndustries.Enums; using SeaHaven.Services.DTOs; namespace SeaHaven.Services.Interfaces { // Global Services registry. Tenant scope is global (no AccountId), // matching DropdownOptions. Reads are authenticated; create/update require // the Scheduler or Admin role and deactivation is Admin-only, enforced at // this service entry — never in the controller alone. public interface IServicesRegistryService { Task> GetAllAsync(bool? isActive, WorkOrderType? workOrderType, CancellationToken cancellationToken); Task GetByIdAsync(int id, CancellationToken cancellationToken); Task CreateAsync(ClaimsPrincipal user, ServiceInput input, CancellationToken cancellationToken); Task UpdateAsync(ClaimsPrincipal user, int id, ServiceInput input, CancellationToken cancellationToken); Task DeactivateAsync(ClaimsPrincipal user, int id, CancellationToken cancellationToken); } }