package com.nebula.erp.sales.repository;

import com.nebula.erp.sales.model.Prescriptions;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import java.util.Optional;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;

@Repository
public interface PrescriptionsRepository extends JpaRepository<Prescriptions, Long>, JpaSpecificationExecutor<Prescriptions> {

    // Custom method to find by id and tenant
    @Query("SELECT p FROM Prescriptions p WHERE p.id = :id AND p.tenant = :tenantName")
    Optional<Prescriptions> findByIdAndTenant(@Param("id") Long id, @Param("tenantName") String tenantName);

    @Query("SELECT p FROM Prescriptions p WHERE p.encounter_id = :encounter_id")
    List<Prescriptions> findByEncounter_id(Long encounter_id);

    @Query("SELECT p FROM Prescriptions p WHERE p.patient_id = :patientId AND p.encounter_id = :encounterId")
    Optional<Prescriptions> findByPatientIdAndEncounterId(@Param("patientId") String patientId, @Param("encounterId") String encounterId);
}