26 lines
1.0 KiB
C#
26 lines
1.0 KiB
C#
using UniVerse.Application.DTOs.Sync;
|
|
|
|
namespace UniVerse.Application.Interfaces;
|
|
|
|
public interface IScheduleSyncService
|
|
{
|
|
Task<SyncResultDto> SyncScheduleAsync(SyncScheduleRequest request);
|
|
Task<SyncResultDto> SyncRoomsAsync();
|
|
Task<List<EmployeeDto>> SearchEmployeesAsync(string fullname);
|
|
Task<SyncStatusDto> GetLastSyncStatusAsync();
|
|
}
|
|
|
|
public interface IModeusApiClient
|
|
{
|
|
Task<ModeusEventsResponse> SearchEventsAsync(SyncScheduleRequest request);
|
|
Task<ModeusRoomsResponse> SearchRoomsAsync();
|
|
Task<List<ModeusEmployee>> SearchEmployeeAsync(string fullname);
|
|
}
|
|
|
|
// Modeus API response models
|
|
public record ModeusEvent(string Id, string Name, DateTime StartsAt, DateTime EndsAt, string? RoomId, string? TeacherId, string? TypeId);
|
|
public record ModeusEventsResponse(List<ModeusEvent> Events);
|
|
public record ModeusRoom(string Id, string Name, string? Building);
|
|
public record ModeusRoomsResponse(List<ModeusRoom> Rooms);
|
|
public record ModeusEmployee(string? Id, string FullName, string? Department);
|