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

import com.bio.bio_backend.domain.base.authgroup.entity.AuthGroup;
import com.bio.bio_backend.domain.base.authgroup.entity.QAuthGroup;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;

import java.util.Optional;

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

    private final JPAQueryFactory queryFactory;

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