nordabiz/.claude/commands/add-company.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

3.4 KiB

Add New Company to NordaBiz

Kreator dodawania nowej firmy członkowskiej do katalogu NordaBiz.

Argument: $ARGUMENTS

Jeśli podano argument (np. /add-company Pixlab), użyj go jako nazwy firmy do wyszukania.

Kroki do wykonania:

1. Zbierz informacje o firmie

Zapytaj użytkownika o dane lub wyszukaj na https://norda-biznes.info/czlonkowie:

Wymagane:

  • Nazwa prawna (legal_name)
  • Nazwa handlowa (business_name) - jeśli inna
  • NIP (10 cyfr bez myślników)
  • Email kontaktowy
  • Kategoria: IT, Construction, Services, Production, Trade, Other

Opcjonalne:

  • REGON (9 lub 14 cyfr)
  • KRS (10 cyfr, tylko spółki)
  • Telefon
  • Strona www
  • Adres (ulica, miasto, kod pocztowy)
  • Opis działalności

2. Weryfikacja NIP

Przed dodaniem zweryfikuj NIP przez API:

curl -s "http://localhost:5000/api/verify-nip?nip=NUMER_NIP"

Lub przez zewnętrzne API (jeśli lokalna aplikacja nie działa).

3. Generuj slug

Slug = kebab-case z nazwy firmy:

  • "Pixlab Sp. z o.o." → "pixlab-sp-z-o-o"
  • "ABC Usługi" → "abc-uslugi"
  • Usuń znaki specjalne, zamień spacje na myślniki, lowercase

4. Sprawdź duplikaty (DEV via Docker)

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "SELECT slug, legal_name FROM companies WHERE nip='NUMER_NIP' OR slug LIKE '%FRAGMENT%';"

5. Utwórz skrypt importu

Wygeneruj plik import_NEW_COMPANY.py używający SQLAlchemy:

#!/usr/bin/env python3
"""Import firmy [NAZWA] do bazy NordaBiz."""

import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from datetime import datetime
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database import Company, Category

DATABASE_URL = os.environ.get('DATABASE_URL', 'postgresql://nordabiz_app:dev_password@localhost:5433/nordabiz')

def import_company():
    engine = create_engine(DATABASE_URL)
    Session = sessionmaker(bind=engine)
    session = Session()

    # Znajdź kategorię
    category = session.query(Category).filter_by(name='Services').first()

    company = Company(
        slug='nazwa-firmy',
        name='Nazwa Handlowa',
        legal_name='Nazwa Prawna Sp. z o.o.',
        nip='1234567890',
        regon='123456789',
        krs=None,
        email='kontakt@firma.pl',
        phone='+48 123 456 789',
        website='https://firma.pl',
        address_street='ul. Przykładowa 1',
        address_city='Wejherowo',
        address_postal='84-200',
        category_id=category.id if category else None,
        description_short='Krótki opis firmy',
        description_full='Pełny opis działalności firmy...',
        data_quality='enhanced',
        status='active'
    )

    session.add(company)
    session.commit()
    print(f"Firma {company.legal_name} dodana pomyślnie! ID: {company.id}")
    session.close()

if __name__ == '__main__':
    import_company()

6. Wykonaj import

python import_NEW_COMPANY.py

7. Zweryfikuj dodanie (DEV via Docker)

docker exec nordabiz-postgres psql -U nordabiz_app -d nordabiz -c "SELECT slug, legal_name, nip FROM companies WHERE slug='NOWY_SLUG';"

Uwagi:

  • DEV: PostgreSQL via Docker na localhost:5433
  • PROD: PostgreSQL na 57.128.200.27:5432
  • Dla produkcji: po przetestowaniu lokalnie, wdróż przez /deploy
  • Nowe firmy powinny pochodzić z oficjalnej listy członków Norda Biznes
  • Zawsze weryfikuj NIP przed dodaniem