package com.bio.bio_backend.domain.base.authgroupresource.repository;

import com.bio.bio_backend.domain.base.authgroupresource.entity.AuthGroupResource;
import com.bio.bio_backend.domain.base.authgroupresource.entity.QAuthGroupResource;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;

import java.util.Optional;

/**
 * QueryDSL을 활용하여 AuthGroupResourceRepositoryCustom 인터페이스를 구현하는 클래스
 * 복잡한 쿼리나 동적 쿼리를 QueryDSL로 작성하여 성능과 가독성을 향상시킵니다.
 */
@Repository
@RequiredArgsConstructor
public class AuthGroupResourceRepositoryImpl implements AuthGroupResourceRepositoryCustom {

    private final JPAQueryFactory queryFactory;

    /**
     * QAuthGroupResource 인스턴스를 생성하여 쿼리에서 사용합니다.
     * QueryDSL의 Q클래스를 통해 타입 안전한 쿼리 작성이 가능합니다.
     */
    private final QAuthGroupResource authGroupResource = QAuthGroupResource.authGroupResource;
}
