package com.hpay.hpay_mobile_api.repositories;

import com.hpay.hpay_mobile_api.entities.VirementInterne;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.Date;


@Repository
public interface VirementInterneRepository extends JpaRepository <VirementInterne, Long>{

    Page<VirementInterne> findAll(Specification<VirementInterne> spec, Pageable pageable);

    @Query("SELECT COALESCE(SUM(v.total), 0) FROM VirementInterne v WHERE v.idClientFrom = :idClientFrom AND v.dateInitiale >= :startOfDay")
    BigDecimal getTotalVirementsOfDay(@Param("idClientFrom") Long idClientFrom, @Param("startOfDay") Date startOfDay);

    @Query("SELECT COUNT(v) FROM VirementInterne v WHERE v.idClientFrom = :idClientFrom AND v.dateInitiale >= :startOfDay")
    long countVirementsDuJour(@Param("idClientFrom") Long idClientFrom, @Param("startOfDay") Date startOfDay);

}


