package com.paymentlink.repository; import com.paymentlink.model.entity.Translation; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Optional; @Repository public interface TranslationRepository extends JpaRepository { Optional findByEntityTypeAndEntityIdAndFieldNameAndLanguageCode( String entityType, String entityId, String fieldName, String languageCode); List findByEntityTypeAndEntityIdAndLanguageCode( String entityType, String entityId, String languageCode); List findByEntityTypeAndEntityId(String entityType, String entityId); @Query("SELECT t FROM Translation t WHERE t.entityType = :entityType " + "AND t.entityId IN :entityIds AND t.languageCode = :languageCode") List findBulkTranslations( @Param("entityType") String entityType, @Param("entityIds") List entityIds, @Param("languageCode") String languageCode); void deleteByEntityTypeAndEntityId(String entityType, String entityId); }