Implement catalog CRUD overhaul, snapshot fallback activation, and billing/UX hardening

This commit is contained in:
Dwindi Ramadhana
2026-02-17 00:03:35 +07:00
parent e6aef31dd1
commit 2726b6c312
37 changed files with 2936 additions and 204 deletions

View File

@@ -128,6 +128,7 @@
<section id="plans" class="glass-card rounded-2xl p-6 scroll-mt-28">
<h3 class="text-lg font-semibold">Plans &amp; limits</h3>
<p class="mt-2 text-sm text-gray-300">Private keyword matching uses only keywords with <code>is_active=true</code>. Inactive keywords remain stored but are excluded from search results until reactivated.</p>
<div class="overflow-x-auto mt-3">
<table class="min-w-full text-sm doc-table">
<thead>
@@ -145,7 +146,7 @@
<td class="py-2 pr-6 text-right">20</td>
<td class="py-2 pr-6">None</td>
<td class="py-2 pr-6">Server-level only</td>
<td class="py-2">Public dataset (EN + ID) only.</td>
<td class="py-2">Public dataset (EN + ID) plus up to 20 active private keywords for signed-in users.</td>
</tr>
<tr>
<td class="py-2 pr-6"><strong>Personal</strong></td>
@@ -236,6 +237,7 @@
<ul class="list-disc pl-5 text-sm text-gray-300 space-y-1">
<li><code>400</code> invalid_request</li>
<li><code>401</code> invalid_key</li>
<li><code>409</code> pending_cooldown (billing checkout lock, wait <code>retry_after</code> seconds)</li>
<li><code>404</code> not_found</li>
<li><code>429</code> rate_limited</li>
</ul>