Add FastAPI backend with PostGIS-backed nearby search
FastAPI service backed by PostgreSQL+PostGIS: cities/places/place_content schema (normalized per-language, per-length content for easy future re-ingestion), Alembic migration, an iterative-radius-expansion nearby search endpoint, a name-search fallback for denied-location flows, and a YAML seed loader CLI. Verified end-to-end against a live Docker Postgres+PostGIS instance (migration, city seed, place/content CRUD, and nearby radius expansion all confirmed working via curl). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
2acc5dfa2e
commit
d2ab424e7e
43 changed files with 1058 additions and 0 deletions
25
backend/app/models/enums.py
Normal file
25
backend/app/models/enums.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import enum
|
||||
|
||||
|
||||
class PlaceCategory(str, enum.Enum):
|
||||
building = "building"
|
||||
bridge = "bridge"
|
||||
monument = "monument"
|
||||
park = "park"
|
||||
district = "district"
|
||||
skyscraper = "skyscraper"
|
||||
cathedral = "cathedral"
|
||||
museum = "museum"
|
||||
gate = "gate"
|
||||
square = "square"
|
||||
|
||||
|
||||
class ContentLanguage(str, enum.Enum):
|
||||
ru = "ru"
|
||||
en = "en"
|
||||
|
||||
|
||||
class ContentLength(str, enum.Enum):
|
||||
short = "short"
|
||||
medium = "medium"
|
||||
long = "long"
|
||||
Loading…
Add table
Add a link
Reference in a new issue