feat: P1 quick wins - useDebounce hook, DB indexy, odstraneni TCPDF

- useDebounce hook (300ms) integrovan do useListData pro debounce hledani
- useListData rozsiren o page/perPage/pagination parametry (priprava pro P2)
- Migracni SQL s indexy na attendance, invoices, quotations, refresh_tokens, audit_log
- Odstranen nepouzivany TCPDF z composer.json
- Vite build plugin: graceful handling kdyz composer neni v PATH

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 17:57:02 +01:00
parent bb2bbb8ff6
commit 6ad20ea04e
5 changed files with 68 additions and 16 deletions

View File

@@ -0,0 +1,20 @@
-- Indexy pro casto filtrovane sloupce
-- Spustit rucne: mysql -u root app < migrations/001_add_indexes.sql
-- Dochazka - filtrovani dle uzivatele a data smeny
CREATE INDEX idx_attendance_user_date ON attendance(user_id, shift_date);
-- Vydane faktury - filtrovani dle statusu a data vystaveni (KPI karty, seznamy)
CREATE INDEX idx_invoices_status_issue ON invoices(status, issue_date);
-- Vydane faktury - detekce po splatnosti
CREATE INDEX idx_invoices_due_date ON invoices(due_date);
-- Nabidky - razeni a vyhledavani dle cisla
CREATE INDEX idx_quotations_number ON quotations(quotation_number);
-- Refresh tokeny - cleanup a validace dle uzivatele a expirace
CREATE INDEX idx_refresh_tokens_user_exp ON refresh_tokens(user_id, expires_at);
-- Audit log - razeni a mazani starych zaznamu
CREATE INDEX idx_audit_log_created ON audit_log(created_at);