package dev.lions.unionflow.server.repository;

import dev.lions.unionflow.server.entity.ContactPolicy;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.Optional;
import java.util.UUID;

/**
 * Repository pour les politiques de communication des organisations.
 *
 * @author UnionFlow Team
 * @version 4.0
 * @since 2026-04-13
 */
@ApplicationScoped
public class ContactPolicyRepository implements PanacheRepositoryBase<ContactPolicy, UUID> {

    /**
     * Trouve la politique de communication d'une organisation.
     * Chaque organisation a exactement une politique.
     */
    public Optional<ContactPolicy> findByOrganisationId(UUID organisationId) {
        return find("organisation.id = ?1 AND actif = true", organisationId)
            .firstResultOptional();
    }
}
