diff --git a/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java b/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java new file mode 100644 index 0000000..17fbecc --- /dev/null +++ b/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java @@ -0,0 +1,44 @@ +package com.eactive.apim.portal.obp.repository; + +import com.eactive.apim.portal.obp.entity.ObpGwMetric; +import com.eactive.eai.data.jpa.BaseRepository; +import com.eactive.eai.rms.data.EMSDataSource; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Optional; + +/** + * ObpGwMetric Repository + * API Gateway 시간별 거래량 지표 조회/저장 + */ +@EMSDataSource +public interface ObpGwMetricRepository extends BaseRepository { + + /** + * UPSERT 판단을 위한 기존 데이터 조회 + * Unique Key: (timeslice, api_id, client_id, hostname, org_id) + */ + Optional findByTimesliceAndApiIdAndClientIdAndHostnameAndOrgId( + LocalDateTime timeslice, + String apiId, + String clientId, + String hostname, + String orgId + ); + + /** + * 특정 시간대의 모든 지표 조회 (REST API 용) + */ + List findByTimeslice(LocalDateTime timeslice); + + /** + * 특정 시간대 범위의 지표 조회 + */ + List findByTimesliceBetween(LocalDateTime startTime, LocalDateTime endTime); + + /** + * API ID로 지표 조회 + */ + List findByApiIdAndTimeslice(String apiId, LocalDateTime timeslice); +}