using adas_core.Domain.Enums; using adas_core.Domain.Models.DTO; using adas_core.Domain.Models.Filter; using adas_core.Domain.Models.Masters; using adas_core.Domain.Models.MongoModels; using adas_core.Domain.Models.Responses; using MongoDB.Bson; namespace adas_core.Application.Services.Interfaces; public interface IUnitService { Task> GetAll(bool withPocs = false); Task> GetAllCompact(); Task GetOneCompact(ObjectId id); // Task GetByCodeSysAndCode(string unit); Task GetByName(string unit); // Task GetByPointOfCare(PointOfCare pointOfCare); Task GetInfo(ObjectId id, LocaleEnum? dataLocale, bool fillLists = true, bool withPoCs = false); Task GetInfo(ObjectId id, bool withPoCs = true, bool withDevices = true); Task FindByPatientId(ObjectId patientId); // Task?> FindByLocation(PatientLocation location); Task FindById(ObjectId? id); Task FindByName(string? name); Task FindByUnitNameOrPocName(string? name, string? pocName); //Task FindByPointOfCare(PointOfCare pointOfCare); Task InsertOne(Unit unit); Task UpdateUnit(Unit unit); Task?> FindUnitsByMasterListId(ObjectId masterListId, MasterListType masterListType); Task CountUnitsByMasterListId(ObjectId masterListId, MasterListType masterListType); Task> FindUnitsByMasterListId(ObjectId masterListId); Task UpdateUnitMasterList(UpdateUnitIdListDto updateUnitListDto); Task UpdateConfiguration(ObjectId unitIdParsed, UnitConfiguration unitConfiguration); Task DeleteUnitById(Unit unit); Task UpdateUnitInfo(ObjectId unitId, string name, string title, string? configObsId = null); Task> GetPaginatedUnits(PaginationFilter filter, bool withPoCs); }