package com.saas.admin.repository;

import com.saas.shared.enums.AIProvider;
import com.saas.admin.entity.TenantAIConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

@Repository
public interface TenantAIConfigRepository extends JpaRepository<TenantAIConfig, Long> {

    /**
     * Find AI configuration by tenant ID
     */
    Optional<TenantAIConfig> findByTenantId(String tenantId);

    /**
     * Find all enabled AI configurations
     */
    List<TenantAIConfig> findByEnabledTrue();

    /**
     * Find configurations by primary provider
     */
    List<TenantAIConfig> findByPrimaryProvider(AIProvider provider);

    /**
     * Find enabled configuration by tenant ID
     */
    Optional<TenantAIConfig> findByTenantIdAndEnabledTrue(String tenantId);

    /**
     * Check if tenant has AI configuration
     */
    boolean existsByTenantId(String tenantId);

    /**
     * Count configurations by tenant ID
     */
    long countByTenantId(String tenantId);

    long countByEnabledTrue();

    long countByPrimaryProvider(AIProvider provider);
}
