table:
  schema: public
  name: subscription_transaction
object_relationships:
  - name: installment
    using:
      manual_configuration:
        remote_table:
          schema: public
          name: subscription_installment
        insertion_order: null
        column_mapping:
          subscription_id: subscription_id
          installment_number: installment
  - name: patient
    using:
      foreign_key_constraint_on: patient_id
  - name: subscription
    using:
      foreign_key_constraint_on: subscription_id
select_permissions:
  - role: marketplace
    permission:
      columns:
        - amount
        - created_at
        - discount
        - due_at
        - fee
        - id
        - installment_number
        - paid_at
        - patient_id
        - payment_provider
        - status
        - subscription_id
        - updated_at
      filter:
        patient:
          user_id:
            _eq: X-Hasura-User-Id
  - role: nutritionist_manager
    permission:
      columns:
        - amount
        - created_at
        - discount
        - due_at
        - fee
        - id
        - installment_number
        - paid_at
        - patient_id
        - payment_provider
        - status
        - subscription_id
        - updated_at
      filter: {}
  - role: patient
    permission:
      columns:
        - amount
        - created_at
        - discount
        - due_at
        - fee
        - id
        - installments
        - installment_number
        - paid_at
        - patient_id
        - payment_provider
        - status
        - subscription_id
        - updated_at
      filter:
        patient_id:
          _eq: X-Hasura-User-Id
  - role: user
    permission:
      columns:
        - amount
        - created_at
        - discount
        - due_at
        - fee
        - id
        - installment_number
        - paid_at
        - patient_id
        - payment_provider
        - status
        - subscription_id
        - updated_at
      filter: {}
event_triggers:
  - name: notify_subscription_transaction
    definition:
      enable_manual: false
      insert:
        columns: '*'
      update:
        columns:
          - error_code
          - error_message
          - paid_at
    retry_conf:
      num_retries: 3
      interval_sec: 3600
      timeout_sec: 60
    webhook: '{{ACTIONS_HANDLER_URL}}/notification/subscription/transaction/new'
    headers:
      - name: Authorization
        value_from_env: ACTIONS_HANDLER_ACCESS_TOKEN
