using AMREZ.EOP.Domain.Entities.HumanResources; namespace AMREZ.EOP.Abstractions.Infrastructures.Repositories; public interface IUserProfileRepository { Task GetByUserIdAsync(Guid userId, CancellationToken ct = default); Task UpsertAsync(UserProfile profile, CancellationToken ct = default); Task AddEmploymentAsync(Employment e, CancellationToken ct = default); Task EndEmploymentAsync(Guid employmentId, DateTime endDate, CancellationToken ct = default); Task AddAddressAsync(EmployeeAddress a, CancellationToken ct = default); Task SetPrimaryAddressAsync(Guid userProfileId, Guid addressId, CancellationToken ct = default); Task AddEmergencyContactAsync(EmergencyContact c, CancellationToken ct = default); Task SetPrimaryEmergencyContactAsync(Guid userProfileId, Guid contactId, CancellationToken ct = default); Task AddBankAccountAsync(EmployeeBankAccount b, CancellationToken ct = default); Task SetPrimaryBankAccountAsync(Guid userProfileId, Guid bankAccountId, CancellationToken ct = default); }