using adas_core.Domain.Models.MongoModels;
using MongoDB.Bson;
namespace adas_core.Application.Services.Interfaces;
public interface IArchivePatientCarePlanService
{
///
/// Retrieves a list of patient care plans associated with the specified patient identifier.
///
/// The unique identifier of the patient whose care plans are being retrieved.
/// A task that represents the asynchronous operation. The task result contains a list of objects if found, or null if no care plans exist for the patient.
Task?> FindByPatientId(ObjectId id);
///
/// Retrieves the list of care plans associated with the specified patient identifier.
///
/// The unique identifier of the patient whose care plans should be retrieved.
/// A task that returns a list of records for the patient, or null if no care plans are found.
Task?> FindByPatientId(string id);
///
/// Retrieves a list of patient care plans associated with the specified patient number.
///
/// The patient number used to locate the associated care plans.
/// A task that returns a list of for the given patient number, or null if no care plans are found.
Task?> FindByPatientNumber(string id);
///
/// Asynchronously retrieves all patient care plans.
///
/// A task that represents the asynchronous operation, containing a list of objects.
Task> FindAll();
// Task UpdateTreatment(PatientCarePlan patientCarePla, List options);
// Task UpdateProcedure(PatientCarePlan patientCarePla, List options);
///
/// Asynchronously inserts a single patient care plan and returns the inserted entity, or null if the insert did not produce a result.
///
/// The patient care plan to insert.
/// A that represents the asynchronous insert operation, containing the inserted or null if no entity was returned.
Task InsertOneAsync(PatientCarePlan patientCarePla);
///
/// Asynchronously inserts a collection of patient care plans into the data store in a single bulk operation.
///
/// The list of entities to be inserted.
Task InsertManyAsync(List patientCarePla);
// Task Update(PatientCarePlan oldPatientCarePla, PatientCarePlan newPatientCarePla);
// Task FindByIds(ObjectId oldPatientCarePlaId, string? oldPatientCarePlaPatientId, string? oldPatientCarePlaPatientNumber);
}