Files
astrololo/services/presentation
gitea 4c0f5f2b26 Lots / punkty arabskie — 7 Lots hermetycznych (LOG-08)
- engine/lots.py: formuła Lot = C + A − B z odwracaniem w horoskopach nocnych
  (zamiana A<->B); 7 Lots hermetycznych (Fortuna, Duch, Eros, Konieczność,
  Odwaga, Zwycięstwo, Nemezis) — Fortuna i Duch liczone pierwsze, bo pozostałe
  się do nich odwołują. Dwa warianty: degree (domyślny) i sign (całe znaki).
- build_chart: liczy sektę (reużyta is_day_birth z Firdarii) i zwraca lots
  ze znakiem, pozycją i domem; parametr lots_method.
- wyszukiwarka: token [PF (tak Fortuna występuje w realnej bazie) + rozwinięcie
  skrótu do "Part of Fortune".
- widok Horoskop: tabela Lots z formułami i sektą.

Walidacja (dwie niezależne wyrocznie z notes3):
- Fortuna = Can 12°35'27" vs astro-seek Can 12°35'24" (3 sekundy różnicy), dom 1;
- Duch potwierdzony przez swoją antyscję (Taurus 28°14' z tabeli antyscji);
- odwracanie nocne: Fortuna nocna == Duch dzienny i odwrotnie;
- Lots pochodne faktycznie używają Fortuny/Ducha; wariant sign trafia w 0° znaku.
85 testów przechodzi (nowy test_lots).

Odblokowuje Zodiacal Releasing (LOG-11), które startuje z Fortuny/Ducha.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 20:02:02 +02:00
..

Warstwa prezentacji (presentation)

Niezależna usługa serwująca stronę WWW (formularz + tabela wyników). W dół przekazuje dane z formularza do warstwy logicznej i renderuje opracowane wyniki. Brak logiki biznesowej i dostępu do danych.

Trasy

  • GET /Horoskop: formularz danych momentu (data, godzina, strefa, opcjonalnie lokalizacja)
  • POST / — liczy pozycje obiektów (woła logic /chart/positions) i renderuje czytelną tabelę
  • GET /significators, POST /significators — wyszukiwarka w bazach interpretacji (warstwa danych)
  • GET /health

Strona „Horoskop" to widok do ręcznego testowania: podstawowe dane wejściowe → to, co policzyła warstwa logiczna (znak, pozycja w znaku, absolutna, kierunek, prędkość). Przycisk „Tu i teraz" uzupełnia bieżącą datę/godzinę i strefę przeglądarki.

Zależności w dół

Zna wyłącznie LOGIC_URL (adres warstwy logicznej) i jej kontrakty /chart/positions oraz /api/query. Nie wie nic o silniku ani bazach.

Uwaga: pełne liczenie pozycji wymaga warstwy logicznej z silnikiem efemeryd (gałąź feat/logic-engine). Bez niego strona „Horoskop" pokaże czytelny komunikat.

Uruchomienie

pip install -r requirements.txt
export LOGIC_URL=http://localhost:8001
uvicorn app.main:app --port 8000
# otwórz http://localhost:8000