package com.project.whatsappchatbot.repository;

import com.project.whatsappchatbot.DTO.OrderDetailsDTO;
import com.project.whatsappchatbot.model.Order;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;

public interface OrderRepository extends JpaRepository<Order, Long> {

    long countByStatusId(Long statusId);

    Page<Order> findAllByStatusId(Long statusId, Pageable pageable);

    Page <Order> findByUserId(String userId , Pageable pageable);


    List<Order> findByUserIdOrderByCreatedAtDesc(String userId);


    @Query(value = "SELECT o FROM Order o WHERE CAST(o.id AS string) LIKE %:searchQuery%")
    Page<Order> findByIdContaining(@Param("searchQuery") String searchQuery, Pageable pageable);

    Page<Order> findByUserIdIn(List<String> userIds, Pageable pageable);

    List<Order> findAllByUserIdAndStatusId(Long id, Long l);

    @Query(value = "SELECT o FROM Order o JOIN o.user u where u.phone LIKE %:searchQuery%")
    List<Order> findAllByUserPhoneContaining(String searchQuery);
    // Page<Order> findByOtherFieldContaining(String otherField, Pageable pageable);


}
