goldenChat base source add

This commit is contained in:
aidev
2026-05-23 15:11:48 +09:00
commit a4ea7762b5
2081 changed files with 1155760 additions and 0 deletions
@@ -0,0 +1,15 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcAppSettings;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface GcAppSettingsRepository extends JpaRepository<GcAppSettings, Long> {
Optional<GcAppSettings> findByDeviceId(String deviceId);
Optional<GcAppSettings> findByUserId(Long userId);
}
@@ -0,0 +1,12 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcBacktestResult;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface GcBacktestResultRepository extends JpaRepository<GcBacktestResult, Long> {
List<GcBacktestResult> findByDeviceIdOrderByCreatedAtDesc(String deviceId);
}
@@ -0,0 +1,10 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcBacktestSettings;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface GcBacktestSettingsRepository extends JpaRepository<GcBacktestSettings, Long> {
Optional<GcBacktestSettings> findFirstByDeviceIdOrderByUpdatedAtDesc(String deviceId);
}
@@ -0,0 +1,20 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcChartWorkspace;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.Optional;
public interface GcChartWorkspaceRepository extends JpaRepository<GcChartWorkspace, Long> {
Optional<GcChartWorkspace> findByUserId(Long userId);
Optional<GcChartWorkspace> findByDeviceId(String deviceId);
@Query("SELECT w FROM GcChartWorkspace w LEFT JOIN FETCH w.slots WHERE w.userId = :userId")
Optional<GcChartWorkspace> findWithSlotsByUserId(Long userId);
@Query("SELECT w FROM GcChartWorkspace w LEFT JOIN FETCH w.slots WHERE w.deviceId = :deviceId")
Optional<GcChartWorkspace> findWithSlotsByDeviceId(String deviceId);
}
@@ -0,0 +1,18 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcFcmToken;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface GcFcmTokenRepository extends JpaRepository<GcFcmToken, Long> {
Optional<GcFcmToken> findByToken(String token);
List<GcFcmToken> findByActiveTrue();
List<GcFcmToken> findByDeviceIdAndActiveTrue(String deviceId);
void deleteByDeviceId(String deviceId);
}
@@ -0,0 +1,13 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcHoldings;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcHoldingsRepository extends JpaRepository<GcHoldings, Long> {
List<GcHoldings> findByUserIdOrderByDisplayOrderAsc(Long userId);
List<GcHoldings> findByDeviceIdOrderByDisplayOrderAsc(String deviceId);
void deleteByUserIdAndSymbol(Long userId, String symbol);
void deleteByDeviceIdAndSymbol(String deviceId, String symbol);
}
@@ -0,0 +1,15 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcIndicatorSettings;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface GcIndicatorSettingsRepository extends JpaRepository<GcIndicatorSettings, Long> {
Optional<GcIndicatorSettings> findByDeviceId(String deviceId);
Optional<GcIndicatorSettings> findByUserId(Long userId);
}
@@ -0,0 +1,30 @@
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);
}
@@ -0,0 +1,14 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcLiveTrade;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface GcLiveTradeRepository extends JpaRepository<GcLiveTrade, Long> {
List<GcLiveTrade> findTop100ByDeviceIdOrderByCreatedAtDesc(String deviceId);
Optional<GcLiveTrade> findTopByDeviceIdAndSymbolAndSideOrderByCreatedAtDesc(
String deviceId, String symbol, String side);
List<GcLiveTrade> findBySymbolAndSideOrderByCreatedAtDesc(String symbol, String side);
}
@@ -0,0 +1,11 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcPaperAccount;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface GcPaperAccountRepository extends JpaRepository<GcPaperAccount, Long> {
Optional<GcPaperAccount> findByDeviceId(String deviceId);
Optional<GcPaperAccount> findByUserId(Long userId);
}
@@ -0,0 +1,14 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcPaperPosition;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
public interface GcPaperPositionRepository extends JpaRepository<GcPaperPosition, Long> {
List<GcPaperPosition> findByAccountIdOrderBySymbolAsc(Long accountId);
Optional<GcPaperPosition> findByAccountIdAndSymbol(Long accountId, String symbol);
/** 실시간 손절/익절 — 종목별 보유 포지션 전체 */
List<GcPaperPosition> findBySymbolAndQuantityGreaterThan(String symbol, java.math.BigDecimal minQty);
}
@@ -0,0 +1,10 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcPaperTrade;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcPaperTradeRepository extends JpaRepository<GcPaperTrade, Long> {
List<GcPaperTrade> findTop100ByAccountIdOrderByCreatedAtDesc(Long accountId);
}
@@ -0,0 +1,11 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcRoleMenuPermission;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcRoleMenuPermissionRepository extends JpaRepository<GcRoleMenuPermission, Long> {
List<GcRoleMenuPermission> findByRole(String role);
void deleteByRole(String role);
}
@@ -0,0 +1,15 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcStrategy;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcStrategyRepository extends JpaRepository<GcStrategy, Long> {
/** 사용자 ID 기준 전략 목록 조회 */
List<GcStrategy> findByUserIdOrderByUpdatedAtDesc(Long userId);
/** 기기 ID 기준 전략 목록 조회 (비회원) */
List<GcStrategy> findByDeviceIdOrderByUpdatedAtDesc(String deviceId);
}
@@ -0,0 +1,13 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcTradeSignal;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcTradeSignalRepository extends JpaRepository<GcTradeSignal, Long> {
List<GcTradeSignal> findByDeviceIdOrderByCreatedAtDesc(String deviceId);
List<GcTradeSignal> findByUserIdOrderByCreatedAtDesc(Long userId);
List<GcTradeSignal> findByDeviceIdAndMarketOrderByCreatedAtDesc(String deviceId, String market);
}
@@ -0,0 +1,10 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcUser;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface GcUserRepository extends JpaRepository<GcUser, Long> {
Optional<GcUser> findByUsername(String username);
}
@@ -0,0 +1,13 @@
package com.goldenchart.repository;
import com.goldenchart.entity.GcWatchlist;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface GcWatchlistRepository extends JpaRepository<GcWatchlist, Long> {
List<GcWatchlist> findByUserIdOrderByDisplayOrderAsc(Long userId);
List<GcWatchlist> findByDeviceIdOrderByDisplayOrderAsc(String deviceId);
void deleteByUserIdAndSymbol(Long userId, String symbol);
void deleteByDeviceIdAndSymbol(String deviceId, String symbol);
}