SHA256
- Changed GuestDocument PK from `DocumentType`+`DocumentNumber` to to `ID`+`Version` for future versioning. - Added DB field "IsLastVersion" to simplify queries where only last/current version is allowed. - Updated GuestDocument DB fields type for `CreateTime` & `UpdateTime` to add precision. - Updated usages of GuestDocument PK to new PK. - Limit delete of a GuestDocument when it's currently used in a StayEntry. Note: DB changes require recreating db tables, so all data is lost and migration "rollback" is not allowed.
22 lines
1.0 KiB
C#
22 lines
1.0 KiB
C#
using Somnia.GuestLog.Models.DTOs;
|
|
using Somnia.GuestLog.Models.QueryConfigs;
|
|
|
|
namespace Somnia.GuestLog.Services.Entity;
|
|
|
|
public interface IStayEntryEntityService
|
|
{
|
|
public Task<Result> CreateEntryAsync(StayEntryDTO dto);
|
|
public Task<Result> UpdateEntryAsync(StayEntryDTO updatedDto);
|
|
public Task<Result> DeleteEntryAsync(StayEntryDTO dto);
|
|
public Task<Result> DeleteEntryAsync(long id);
|
|
|
|
public Task<StayEntryDTO?> GetDtoByIdAsync(long id, StayEntryQueryConfig? queryConfig = null);
|
|
public Task<IEnumerable<StayEntryDTO>> GetDtoListAsync(StayEntryQueryConfig? queryConfig = null);
|
|
public Task<IEnumerable<StayEntryDTO>> GetDtoListByFilterAsync(StayEntryFilterDTO filter, int limit = 0, StayEntryQueryConfig? queryConfig = null);
|
|
|
|
|
|
public Task<bool> IsGuestInStay(long guestDocId);
|
|
public Task<bool> IsGuestInStayInPeriod(long guestDocId, DateTime startTime, DateTime endTime);
|
|
public Task<IEnumerable<StayEntryDTO>> GetStaysWithGuest(long guestDocId, StayEntryQueryConfig? queryConfig = null);
|
|
|
|
} |