package com.saas.admin.repository;

import com.saas.admin.entity.AdminVapiAssistantSummary;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

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

/**
 * Admin Vapi Assistant Summary Repository
 * 
 * - Operates on admin database (saas_db)
 * - Cross-tenant cache of all Vapi assistants
 * - Used for PhoneNumber provisioning and admin monitoring
 * - Synced by AdminVapiSyncService every 5 minutes
 */
@Repository
public interface AdminVapiAssistantSummaryRepository extends JpaRepository<AdminVapiAssistantSummary, String> {
    
    /**
     * Find summary by Vapi.ai assistant ID
     */
    Optional<AdminVapiAssistantSummary> findByVapiAssistantId(String vapiAssistantId);
    
    /**
     * Find all assistants for a specific tenant
     */
    List<AdminVapiAssistantSummary> findByTenantId(String tenantId);
    
    /**
     * Find all active assistants
     */
    List<AdminVapiAssistantSummary> findByIsActive(Boolean isActive);
    
    /**
     * Find active assistants for a specific tenant
     */
    List<AdminVapiAssistantSummary> findByTenantIdAndIsActive(String tenantId, Boolean isActive);
    
    /**
     * Count assistants for a tenant
     */
    Long countByTenantId(String tenantId);
}
