nordabiz/.claude/commands/data-report.md
Maciej Pienczyn 110d971dca
Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
feat: migrate prod docs to OVH VPS + UTC→Warsaw timezone in all templates
Production moved from on-prem VM 249 (10.22.68.249) to OVH VPS
(57.128.200.27, inpi-vps-waw01). Updated ALL documentation, slash
commands, memory files, architecture docs, and deploy procedures.

Added |local_time Jinja filter (UTC→Europe/Warsaw) and converted
155 .strftime() calls across 71 templates so timestamps display
in Polish timezone regardless of server timezone.

Also includes: created_by_id tracking, abort import fix, ICS
calendar fix for missing end times, Pros Poland data cleanup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 13:41:53 +02:00

4.1 KiB

NordaBiz Data Quality Report

Wygeneruj raport jakości danych firm w katalogu NordaBiz.

Kroki do wykonania:

1. Podsumowanie ogólne

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '=== RAPORT JAKOŚCI DANYCH ===' as header;
SELECT NOW() as data_raportu;

SELECT '--- OGÓLNE ---' as section;
SELECT 'Łącznie firm: ' || COUNT(*) FROM companies;
SELECT 'Aktywnych: ' || COUNT(*) FROM companies WHERE status = 'active';
SELECT 'Nieaktywnych: ' || COUNT(*) FROM companies WHERE status != 'active' OR status IS NULL;
"

2. Kompletność danych kontaktowych

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- DANE KONTAKTOWE ---' as section;
SELECT 'Z emailem: ' || COUNT(*) FROM companies WHERE email IS NOT NULL AND email != '';
SELECT 'Z telefonem: ' || COUNT(*) FROM companies WHERE phone IS NOT NULL AND phone != '';
SELECT 'Ze stroną www: ' || COUNT(*) FROM companies WHERE website IS NOT NULL AND website != '';
SELECT 'Z pełnym adresem: ' || COUNT(*) FROM companies
  WHERE address_street IS NOT NULL AND address_city IS NOT NULL AND address_postal IS NOT NULL;
"

3. Dane rejestrowe

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- DANE REJESTROWE ---' as section;
SELECT 'Z NIP: ' || COUNT(*) FROM companies WHERE nip IS NOT NULL AND nip != '';
SELECT 'Z REGON: ' || COUNT(*) FROM companies WHERE regon IS NOT NULL AND regon != '';
SELECT 'Z KRS: ' || COUNT(*) FROM companies WHERE krs IS NOT NULL AND krs != '';
"

4. Jakość opisów

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- OPISY ---' as section;
SELECT 'Z krótkim opisem: ' || COUNT(*) FROM companies WHERE description_short IS NOT NULL AND description_short != '';
SELECT 'Z pełnym opisem: ' || COUNT(*) FROM companies WHERE description_full IS NOT NULL AND description_full != '';
SELECT 'Śr. długość krótkiego opisu: ' || ROUND(AVG(LENGTH(description_short))::numeric, 0) || ' znaków'
  FROM companies WHERE description_short IS NOT NULL;
"

5. Rozkład kategorii

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- KATEGORIE ---' as section;
SELECT c.name as kategoria, COUNT(*) as liczba
FROM companies co
LEFT JOIN categories c ON co.category_id = c.id
GROUP BY c.name
ORDER BY liczba DESC;
"

6. Poziomy jakości danych

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- POZIOMY JAKOŚCI ---' as section;
SELECT
  COALESCE(data_quality, 'brak') as poziom,
  COUNT(*) as liczba
FROM companies
GROUP BY data_quality
ORDER BY liczba DESC;
"

7. Firmy wymagające uzupełnienia

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- WYMAGAJĄ UZUPEŁNIENIA ---' as section;
SELECT slug, legal_name,
  CASE
    WHEN email IS NULL OR email = '' THEN 'brak email'
    WHEN website IS NULL OR website = '' THEN 'brak www'
    WHEN description_short IS NULL OR description_short = '' THEN 'brak opisu'
    ELSE 'inne'
  END as problem
FROM companies
WHERE email IS NULL OR email = ''
   OR website IS NULL OR website = ''
   OR description_short IS NULL OR description_short = ''
LIMIT 20;
"

8. Ostatnio aktualizowane

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "
SELECT '--- OSTATNIE AKTUALIZACJE ---' as section;
SELECT slug, legal_name, DATE(updated_at) as ostatnia_aktualizacja
FROM companies
ORDER BY updated_at DESC
LIMIT 10;
"

Output:

Wygeneruj raport w formacie markdown z tabelami:

Podsumowanie kompletności danych

Pole Wypełnione Procent
Email X/80 X%
Telefon X/80 X%
Strona www X/80 X%
NIP X/80 X%
Opis X/80 X%

Rekomendacje

  • Lista firm wymagających uzupełnienia danych
  • Sugestie poprawy jakości

Uwagi:

  • Cel: 100% kompletność podstawowych danych
  • Priorytet: email > telefon > www > opis
  • Weryfikuj dane przez oficjalne źródła (CEIDG, KRS)
  • DEV: docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz
  • PROD: ssh maciejpi@57.128.200.27 "sudo -u postgres psql -d nordabiz"