#!/usr/bin/env bash
# Tabele excluse la push DB local → producție (păstrate pe server).

DEFAULT_DB_PUSH_EXCLUDE_TABLES="users,user_roles,user_conversations,user_messages,user_ip_logs,kyc_information,kyc_types,subscription_histories,password_reset_tokens,personal_access_tokens,guest_logins,admins,admin_roles,listings,listing_translations,listing_galleries,listing_reports,listing_promotions,listing_promotion_orders,listing_option_values,products,product_translations,product_galleries,product_reviews,orders,order_details,carts,bookings,job_requests,reviews,wishlists,blog_comments,contact_messages,support_tickets,ticket_messages,subscribers,bank_payments,paypal_payments,stripe_payments,razorpay_payments,paystack_and_mollies,flutterwaves,instamojo_payments"

db_push_resolved_exclude_tables() {
  local raw="${DB_PUSH_EXCLUDE_TABLES:-${DEFAULT_DB_PUSH_EXCLUDE_TABLES}}"
  echo "${raw}" | tr ',' '\n' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | grep -v '^$' | sort -u
}

db_push_append_ignore_args() {
  local database="$1"
  local table

  while IFS= read -r table; do
  [[ -n "${table}" ]] || continue
    printf '%s\0' "--ignore-table=${database}.${table}"
  done < <(db_push_resolved_exclude_tables)
}

db_push_exclude_table_count() {
  db_push_resolved_exclude_tables | wc -l | tr -d ' '
}
