{% extends "admin/layout.html" %} {% block title %}Subscription Plans – Admin{% endblock %} {% block body %}

{% trans %}Subscription Plans{% endtrans %}

{% trans %}Manage pricing plans and limits. Stripe products are created automatically — no manual Stripe Dashboard setup needed.{% endtrans %}

{% if stripe_mode %}
{% endif %}
{% with messages = get_flashed_messages(with_categories=true) %}{% for cat, msg in messages %}{% endfor %}{% endwith %}
{% for plan in plans %}

{{ plan.name }}

{% if plan.price_monthly == 0 %}{% trans %}Free{% endtrans %}{% else %}${{ "%.2f"|format(plan.price_monthly) }}/{% trans %}mo{% endtrans %}{% endif %} {% if not plan.is_active %} {% trans %}Inactive{% endtrans %} {% endif %}
{% if plan.id != 1 %}
{% endif %}
{% trans %}Files/Day{% endtrans %}
{% if plan.max_files_per_day == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_files_per_day }}{% endif %}
{% trans %}PDF/Day{% endtrans %}
{% if plan.max_pdf_per_day == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_pdf_per_day }}{% endif %}
{% trans %}Hash/Day{% endtrans %}
{% if plan.max_hash_per_day == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_hash_per_day }}{% endif %}
{% trans %}Screenshot/Day{% endtrans %}
{% if plan.max_screenshot_per_day == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_screenshot_per_day }}{% endif %}
{% trans %}BG Remove/Day{% endtrans %}
{% if plan.max_bg_remove_per_day == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_bg_remove_per_day }}{% endif %}
{% trans %}PDF Editor/Day{% endtrans %}
{% if plan.get('max_pdf_editor_per_day', 3) == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.get('max_pdf_editor_per_day', 3) }}{% endif %}
{% trans %}Max File Size{% endtrans %}
{% if plan.max_file_size_mb == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_file_size_mb }} MB{% endif %}
{% trans %}Auto-Delete{% endtrans %}
{% if plan.auto_delete_hours == 0 %}{% trans %}Never{% endtrans %}{% else %}{{ plan.auto_delete_hours }}h{% endif %}
{% trans %}History Stored{% endtrans %}
{% if plan.max_conversions_stored == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.max_conversions_stored }}{% endif %}
{% trans %}Queue Priority{% endtrans %}
{% if plan.get('queue','low') == 'high' %}{% trans %}High{% endtrans %} {% elif plan.get('queue','low') == 'medium' %}{% trans %}Medium{% endtrans %} {% else %}{% trans %}Low{% endtrans %}{% endif %}
{% trans %}API Access{% endtrans %}
{% if plan.get('api_enabled',0)|int %}{% trans %}Enabled{% endtrans %}{% else %}{% trans %}Disabled{% endtrans %}{% endif %}
{% trans %}API Calls/Day{% endtrans %}
{% if not plan.get('api_enabled',0)|int %}—{% elif plan.get('api_calls_per_day',100)|int == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.get('api_calls_per_day',100) }}{% endif %}
{% trans %}API Calls/Min{% endtrans %}
{% if not plan.get('api_enabled',0)|int %}—{% elif plan.get('api_calls_per_minute',10)|int == -1 %}{% trans %}Unlimited{% endtrans %}{% else %}{{ plan.get('api_calls_per_minute',10) }}{% endif %}
{% if plan.price_monthly > 0 %}
{% if plan.stripe_price_id and plan.get('stripe_key_mode', '') == stripe_mode %} Stripe synced ({{ plan.get('stripe_key_mode', '') }}) {% elif plan.stripe_price_id and plan.get('stripe_key_mode', '') and plan.get('stripe_key_mode', '') != stripe_mode %} Stripe: wrong mode ({{ plan.get('stripe_key_mode', '') }}, key is {{ stripe_mode }}) {% elif plan.stripe_price_id and not plan.get('stripe_key_mode', '') %} Stripe: needs sync (unknown mode) {% else %} Stripe: auto-syncs on first purchase {% endif %}
{% endif %} {% if plan.paypal_plan_id %}
{% trans %}PayPal:{% endtrans %} {{ plan.paypal_plan_id }}
{% endif %}
{% endfor %}
{% endblock %} {% block page_scripts %} {% endblock %}