- 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>
61 lines
4.3 KiB
Python
61 lines
4.3 KiB
Python
"""
|
||
Скрипт для заполнения пользователей. Работает с SQLite и PostgreSQL.
|
||
Данные из seed_reference_data.sql. Требует выполненный seed_organizations.
|
||
"""
|
||
|
||
from app.db.session import SessionLocal
|
||
from app.models.user import User
|
||
from app.models.organization import Organization
|
||
|
||
# (external_subject, display_name, email, role, organization_name)
|
||
_USERS = [
|
||
("admin@system", "Администратор системы", "admin@klg.local", "admin", None),
|
||
("admin@rosaviation", "Администратор Росавиации", "admin@favt.gov.ru", "admin", "Федеральное агентство воздушного транспорта (Росавиация)"),
|
||
("inspector1@rosaviation", "Иванов Иван Иванович", "i.ivanov@favt.gov.ru", "authority_inspector", "Федеральное агентство воздушного транспорта (Росавиация)"),
|
||
("inspector2@rosaviation", "Петров Петр Петрович", "p.petrov@favt.gov.ru", "authority_inspector", "Федеральное агентство воздушного транспорта (Росавиация)"),
|
||
("inspector3@rosaviation", "Сидоров Сидор Сидорович", "s.sidorov@favt.gov.ru", "authority_inspector", "Федеральное агентство воздушного транспорта (Росавиация)"),
|
||
("manager1@aeroflot", "Смирнов Алексей Владимирович", "a.smirnov@aeroflot.ru", "operator_manager", "Аэрофлот - Российские авиалинии"),
|
||
("manager2@s7", "Козлов Дмитрий Сергеевич", "d.kozlov@s7.ru", "operator_manager", "S7 Airlines"),
|
||
("manager3@ural", "Новиков Андрей Николаевич", "a.novikov@uralairlines.ru", "operator_manager", "Уральские авиалинии"),
|
||
("user1@aeroflot", "Волков Сергей Александрович", "s.volkov@aeroflot.ru", "operator_user", "Аэрофлот - Российские авиалинии"),
|
||
("user2@aeroflot", "Лебедев Михаил Игоревич", "m.lebedev@aeroflot.ru", "operator_user", "Аэрофлот - Российские авиалинии"),
|
||
("user1@s7", "Соколов Павел Викторович", "p.sokolov@s7.ru", "operator_user", "S7 Airlines"),
|
||
("user1@ural", "Михайлов Игорь Олегович", "i.mikhailov@uralairlines.ru", "operator_user", "Уральские авиалинии"),
|
||
("manager1@atc-svo", "Федоров Владимир Петрович", "v.fedorov@atc-svo.ru", "mro_manager", "Авиационный технический центр Шереметьево"),
|
||
("manager2@atc-dme", "Морозов Николай Анатольевич", "n.morozov@atc-dme.ru", "mro_manager", "Авиационный технический центр Домодедово"),
|
||
("user1@atc-svo", "Алексеев Олег Дмитриевич", "o.alekseev@atc-svo.ru", "mro_user", "Авиационный технический центр Шереметьево"),
|
||
("user2@atc-svo", "Павлов Роман Сергеевич", "r.pavlov@atc-svo.ru", "mro_user", "Авиационный технический центр Шереметьево"),
|
||
("user1@atc-dme", "Семенов Артем Валерьевич", "a.semenov@atc-dme.ru", "mro_user", "Авиационный технический центр Домодедово"),
|
||
]
|
||
|
||
|
||
def _org_id_by_name(db, name: str | None) -> str | None:
|
||
if not name:
|
||
return None
|
||
o = db.query(Organization).filter(Organization.name == name).first()
|
||
return str(o.id) if o else None
|
||
|
||
|
||
def seed_users():
|
||
db = SessionLocal()
|
||
created = 0
|
||
try:
|
||
for ext, display, email, role, org_name in _USERS:
|
||
if db.query(User).filter(User.external_subject == ext).first():
|
||
continue
|
||
oid = _org_id_by_name(db, org_name)
|
||
db.add(User(external_subject=ext, display_name=display, email=email, role=role, organization_id=oid))
|
||
created += 1
|
||
db.commit()
|
||
total = db.query(User).count()
|
||
print(f"✅ Пользователи: добавлено {created}, всего {total}")
|
||
except Exception as e:
|
||
db.rollback()
|
||
raise
|
||
finally:
|
||
db.close()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
seed_users()
|