<!--
|--------------------------------------------------------------------------
| Agência PSI
|--------------------------------------------------------------------------
| Criado e desenvolvido por Leonardo Nohama
|
| Tecnologia aplicada à escuta.
| Estrutura para o cuidado.
|
| Arquivo: src/components/security/FeatureGate.vue
| Data: 2026
| Local: São Carlos/SP — Brasil
|--------------------------------------------------------------------------
| © 2026 — Todos os direitos reservados
|--------------------------------------------------------------------------
-->
<script setup>
import { computed } from 'vue'
import { useEntitlementsStore } from '@/stores/entitlementsStore'

const props = defineProps({
  feature: {
    type: String,
    required: true
  },
  fallback: {
    type: Boolean,
    default: false
  }
})

const ent = useEntitlementsStore()

const allowed = computed(() => {
  return ent.can(props.feature)
})
</script>

<template>
  <template v-if="allowed">
    <slot />
  </template>

  <template v-else-if="fallback">
    <slot name="fallback" />
  </template>
</template>
