Files
Dhananjaya99 bffc9b1686 first commit
2026-09-28 11:44:26 +05:30

48 lines
2.5 KiB
C#

using Fitness_core_BE.DTOs;
using Fitness_core_BE.DTOs.AccessDevice;
using Fitness_core_BE.Models;
namespace Fitness_core_BE.Interfaces.Services
{
public interface IAccessDeviceService
{
Task<object> AddDevice(object payload);
Task<object> RemoveDevice(object payload);
Task<object> GeneratePairingCode(object payload);
Task<bool> WhiteListMember(Guid memberId);
Task<bool> BlackListMember(Guid memberId);
// Manual/auto lock (req 7) — wraps WhiteListMember/BlackListMember and mirrors the
// result onto Customer.IsLocked/LockReason/LockedAt.
Task<bool> LockCustomer(Guid customerId, string reason);
Task<bool> UnlockCustomer(Guid customerId);
Task<Customer> UpdateDeviceProfile(Customer customer);
Task<object> AddUser(CustomerAccess cusDevice);
// Dedup + persist attendance. Reused by the agent attendance ingestion endpoint.
Task<int> SaveAttendanceRecords(Guid clientId, List<AttendanceDTO> attendanceList);
// Fingerprint-enrolled-directly-on-device reconciliation (req 3).
Task<List<UnlinkedDeviceEnrollment>> GetUnlinkedFingerprintsAsync(Guid clientId);
Task<AccessProfile> LinkFingerprintAsync(Guid clientId, Guid customerId, Guid unlinkedEnrollmentId);
Task<AccessProfile> EnsureAccessProfileAsync(
Guid clientId, Guid userId, string personType, string displayName, bool queueProvisioning = true);
Task ProvisionProfilesToDeviceAsync(AccessDevice device);
Task<object> SetUserAccessAsync(Guid clientId, Guid userId, bool enabled, string? reason);
Task<object> SetCustomerAccessAsync(Guid clientId, Guid customerId, bool enabled, string? reason);
/// <summary>
/// Queues a face photo for enrolment into the gym's Hikvision terminals. The image
/// travels in the command payload only -- it is purged once a terminal confirms.
/// </summary>
Task<object> SetCustomerFacePhotoAsync(Guid clientId, Guid customerId, string base64Jpeg);
Task<object> SetStaffAccessAsync(Guid clientId, Guid staffId, bool enabled, string? reason);
Task<AccessProfile> LinkDevicePersonAsync(
Guid clientId, Guid userId, string personType, string displayName, Guid unlinkedEnrollmentId);
Task<AccessProfile> LinkStaffFingerprintAsync(
Guid clientId, Guid staffId, Guid unlinkedEnrollmentId);
Task<AccessStatusDto?> GetAccessStatusAsync(Guid clientId, Guid userId);
}
}