- Unify API: lib/api.ts uses /api/v1, inbox uses /api/inbox (rewrites) - Remove localhost refs: openapi, inbox page - Add rewrites: /api/inbox|tmc -> inbox-server, /api/v1 -> FastAPI - Add stub routes: knowledge/insights, recommendations, search, log-error - Transfer from PAPA: prompts (inspection, tmc), scripts, supabase, data/tmc-requests - Fix inbox-server: ORDER BY created_at, package.json - Remove redundant app/api/inbox/files route (rewrites handle it) - knowledge/ in gitignore (large PDFs) Co-authored-by: Cursor <cursoragent@cursor.com>
84 lines
7.3 KiB
Python
84 lines
7.3 KiB
Python
"""
|
||
Скрипт для заполнения организаций: операторы, MRO, органы сертификации.
|
||
Работает с SQLite и PostgreSQL. Данные из seed_reference_data.sql.
|
||
"""
|
||
|
||
from app.db.session import SessionLocal
|
||
from app.models.organization import Organization
|
||
|
||
_ORGANIZATIONS = [
|
||
# Операторы (авиакомпании)
|
||
{"kind": "operator", "name": "Аэрофлот - Российские авиалинии", "inn": "7702070139", "ogrn": "1027739036681",
|
||
"address": "г. Москва, ул. Ленинградский проспект, д. 37, корп. 2", "email": "info@aeroflot.ru", "phone": "+7 (495) 223-55-55"},
|
||
{"kind": "operator", "name": "S7 Airlines", "inn": "5405013127", "ogrn": "1025400000037",
|
||
"address": "г. Новосибирск, ул. Добролюбова, д. 2", "email": "info@s7.ru", "phone": "+7 (495) 777-77-77"},
|
||
{"kind": "operator", "name": "Уральские авиалинии", "inn": "6658004767", "ogrn": "1026600000040",
|
||
"address": "г. Екатеринбург, ул. Сакко и Ванцетти, д. 105", "email": "info@uralairlines.ru", "phone": "+7 (343) 264-00-00"},
|
||
{"kind": "operator", "name": "Победа", "inn": "7702070139", "ogrn": "1157746263102",
|
||
"address": "г. Москва, ул. Ленинградский проспект, д. 37, корп. 2", "email": "info@pobeda.aero", "phone": "+7 (495) 363-00-00"},
|
||
{"kind": "operator", "name": "Россия", "inn": "4703008763", "ogrn": "1024700000040",
|
||
"address": "г. Санкт-Петербург, ул. Пилотов, д. 18", "email": "info@rossiya-airlines.com", "phone": "+7 (812) 333-22-11"},
|
||
{"kind": "operator", "name": "Якутия", "inn": "1435027000", "ogrn": "1021400000040",
|
||
"address": "г. Якутск, ул. Октябрьская, д. 9", "email": "info@yakutia.aero", "phone": "+7 (4112) 44-11-11"},
|
||
{"kind": "operator", "name": "Азимут", "inn": "2315086352", "ogrn": "1162315077000",
|
||
"address": "г. Ростов-на-Дону, пр-т Шолохова, д. 344", "email": "info@azimuth.aero", "phone": "+7 (863) 206-00-00"},
|
||
{"kind": "operator", "name": "Smartavia", "inn": "2901000000", "ogrn": "1022900000040",
|
||
"address": "г. Архангельск, ул. Воскресенская, д. 77", "email": "info@smartavia.ru", "phone": "+7 (8182) 65-00-00"},
|
||
# MRO
|
||
{"kind": "mro", "name": "Авиационный технический центр Шереметьево", "inn": "7712048351", "ogrn": "1027700000040",
|
||
"address": "г. Москва, аэропорт Шереметьево", "email": "info@atc-svo.ru", "phone": "+7 (495) 578-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Домодедово", "inn": "5007004767", "ogrn": "1025000000040",
|
||
"address": "г. Москва, аэропорт Домодедово", "email": "info@atc-dme.ru", "phone": "+7 (495) 933-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Пулково", "inn": "7802000000", "ogrn": "1027800000040",
|
||
"address": "г. Санкт-Петербург, аэропорт Пулково", "email": "info@atc-led.ru", "phone": "+7 (812) 337-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Толмачево", "inn": "5405013127", "ogrn": "1025400000037",
|
||
"address": "г. Новосибирск, аэропорт Толмачево", "email": "info@atc-ovb.ru", "phone": "+7 (383) 216-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Кольцово", "inn": "6658004767", "ogrn": "1026600000040",
|
||
"address": "г. Екатеринбург, аэропорт Кольцово", "email": "info@atc-svk.ru", "phone": "+7 (343) 264-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Ростов-на-Дону", "inn": "6163000000", "ogrn": "1026100000040",
|
||
"address": "г. Ростов-на-Дону, аэропорт Платов", "email": "info@atc-rov.ru", "phone": "+7 (863) 206-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Краснодар", "inn": "2308000000", "ogrn": "1022300000040",
|
||
"address": "г. Краснодар, аэропорт Пашковский", "email": "info@atc-krr.ru", "phone": "+7 (861) 200-00-00"},
|
||
{"kind": "mro", "name": "Авиационный технический центр Сочи", "inn": "2308000000", "ogrn": "1022300000040",
|
||
"address": "г. Сочи, аэропорт Сочи", "email": "info@atc-aer.ru", "phone": "+7 (862) 240-00-00"},
|
||
# Органы (authority)
|
||
{"kind": "authority", "name": "Федеральное агентство воздушного транспорта (Росавиация)", "inn": "7702070139", "ogrn": "1047796000000",
|
||
"address": "г. Москва, ул. Шаболовка, д. 4", "email": "info@favt.gov.ru", "phone": "+7 (495) 607-00-00"},
|
||
{"kind": "authority", "name": "Межгосударственный авиационный комитет (МАК)", "inn": "7702070139", "ogrn": "1027700000040",
|
||
"address": "г. Москва, ул. Большая Ордынка, д. 22/2", "email": "info@mak-iac.org", "phone": "+7 (495) 607-00-00"},
|
||
{"kind": "authority", "name": "Европейское агентство по авиационной безопасности (EASA)", "inn": None, "ogrn": None,
|
||
"address": "Konrad-Adenauer-Ufer 3, 50668 Köln, Germany", "email": "info@easa.europa.eu", "phone": "+49 221 8999 000"},
|
||
{"kind": "authority", "name": "Федеральное управление гражданской авиации США (FAA)", "inn": None, "ogrn": None,
|
||
"address": "800 Independence Avenue SW, Washington, DC 20591, USA", "email": "info@faa.gov", "phone": "+1 (202) 267-1000"},
|
||
# Другие
|
||
{"kind": "other", "name": "ОАК (Объединенная авиастроительная корпорация)", "inn": "7702070139", "ogrn": "1067746000000",
|
||
"address": "г. Москва, ул. Большая Дмитровка, д. 26/1", "email": "info@uacrussia.ru", "phone": "+7 (495) 926-00-00"},
|
||
{"kind": "other", "name": "Иркут (ПАО Корпорация Иркут)", "inn": "3808000000", "ogrn": "1023800000040",
|
||
"address": "г. Иркутск, ул. Новаторов, д. 3", "email": "info@irkut.com", "phone": "+7 (3952) 39-00-00"},
|
||
{"kind": "other", "name": "Сухой (ПАО Компания Сухой)", "inn": "7702070139", "ogrn": "1027700000040",
|
||
"address": "г. Москва, ул. Поликарпова, д. 23А", "email": "info@sukhoi.org", "phone": "+7 (495) 926-00-00"},
|
||
]
|
||
|
||
|
||
def seed_organizations():
|
||
db = SessionLocal()
|
||
created = 0
|
||
try:
|
||
for d in _ORGANIZATIONS:
|
||
if db.query(Organization).filter(Organization.name == d["name"], Organization.kind == d["kind"]).first():
|
||
continue
|
||
db.add(Organization(**d))
|
||
created += 1
|
||
db.commit()
|
||
total = db.query(Organization).count()
|
||
print(f"✅ Организации: добавлено {created}, всего {total}")
|
||
except Exception as e:
|
||
db.rollback()
|
||
raise
|
||
finally:
|
||
db.close()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
seed_organizations()
|