Files
Aislo/docs/wiki/pages/A08_Support/A08_backend.md
T
eomsangdonandClaude Opus 5 eb30b774f8 chore(docs): docs 폴더 git 추적 전환 · PLAN·OWNERS 최상위 이관
- `docs/` 를 .gitignore 에서 빼 git 추적 대상으로 전환 (위키·완료 이력·검증 기록)
- `docs/raw/PLAN.md` · `docs/raw/OWNERS.md` 를 저장소 최상위로 이동 후 .gitignore 에 등록
  — 창끼리 공유하되 저장소에는 안 올리는 장부
- 살아 있는 경로 참조 7개 파일 정정 (아카이브 107건은 그때 사실이라 그대로 둠)
- graphify 날짜별 산출물(`docs/wiki/graphify-out/20*/`) 제외 — `graphify update` 가 다시 만듦

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 18:19:07 +09:00

2.3 KiB

status, page_id, related_pages, last_updated, source
status page_id related_pages last_updated source
stable A08_Support
A08_Support/A08_frontend
A06_Login/A06_backend
db_schema/logs_monitoring
architecture/project_map
architecture/public_admin_map
2026-07-19 docs/raw/verification/2026-07-12_verify_add_phase4_role.md

A08_Support — Backend

기술지원 문의 접수 API. support_requests 테이블 저장 + 관리자 알림 메일.

파일 구조

파일 세분화 위키 명세 역할
A08_Support_Router.py [[A08_Support/backend/A08_Support_Router]] 문의 접수 API (prefix /api/a08)
A08_Support_Schema.py A08_Support/A08_Support_Schema.py 문의 요청 검증 Pydantic 모델

API 엔드포인트

엔드포인트 위치 역할
POST /api/a08/support A08_Support/A08_Support_Router.py:27 문의 접수. DB 저장 + ADMIN_EMAIL로 알림 메일

내부 헬퍼

함수 위치 역할
_get_company_name(company_id) A08_Support/A08_Support_Router.py:16 company_id로 회사명 조회 (없으면 None)

요청 스키마 (Pydantic)

모델 위치 필드
SupportRequestPayload A08_Support/A08_Support_Schema.py:6 name(1255), email(EmailStr), phone?(≤30), subject(1255), message(1~5000)

접수 로직

  1. get_optional_session()으로 로그인 여부 확인 (비로그인 허용)
  2. 로그인 상태면 세션의 company_id_get_company_name()으로 회사명 조회, 비로그인이면 None
  3. support_requests INSERT (아래 컬럼)
  4. ADMIN_EMAIL 설정 시 관리자에게 문의 알림 메일 발송

DB 저장 컬럼 (실 코드 INSERT 기준)

support_requests에 INSERT하는 컬럼: company_id, company_name, user_name, user_email, user_phone, subject, message

→ 테이블 정의 → db_schema/logs_monitoring

특징

  • 비로그인도 문의 가능 (get_optional_session): 세션 없으면 회사 정보만 None으로 저장
  • 로그인 상태면 회사 정보 자동 연결

의존성 (공통 유틸)

  • common_utilcommon_util_auth(get_optional_session), common_util_email(send_email_background), common_util_email_templates(support_request_email)
  • config_systemADMIN_EMAIL
  • DB → db_schema/logs_monitoring