package com.goldenchart.repository;

import com.goldenchart.entity.GcLiveStrategySettings;
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 GcLiveStrategySettingsRepository
        extends JpaRepository<GcLiveStrategySettings, Long> {

    Optional<GcLiveStrategySettings> findByUserIdAndMarket(Long userId, String market);

    Optional<GcLiveStrategySettings> findByDeviceIdAndMarket(String deviceId, String market);

    /** isLiveCheck = true 인 모든 설정 (스케줄러 순회용) */
    List<GcLiveStrategySettings> findAllByIsLiveCheckTrue();

    /** 디바이스별 실시간 체크 ON 설정 */
    List<GcLiveStrategySettings> findByDeviceIdAndIsLiveCheckTrue(String deviceId);

    /** 유저별 실시간 체크 ON 설정 */
    List<GcLiveStrategySettings> findByUserIdAndIsLiveCheckTrue(Long userId);

    /** 특정 마켓의 활성 설정 전체 (여러 디바이스가 동일 마켓 구독 시) */
    @Query("SELECT s FROM GcLiveStrategySettings s WHERE s.market = :market AND s.isLiveCheck = true")
    List<GcLiveStrategySettings> findActiveByMarket(@Param("market") String market);
}
