5.7 KiB
5.7 KiB
Database INSERT 코드 위치 정리
이 문서는 O2O Castad Backend 프로젝트에서 실제 동작하는 모든 DB INSERT 코드의 위치를 정리합니다.
1. User 모듈 (app/user)
1.1 User 모델 INSERT
- 파일:
app/user/services/auth.py - 라인: 278
- 메서드:
_get_or_create_user() - API 엔드포인트:
GET /auth/kakao/callback- 카카오 로그인 콜백POST /auth/kakao/verify- 카카오 인가 코드 검증
- 설명: 카카오 로그인 시 신규 사용자 생성
- 저장 필드:
kakao_id,email,nickname,profile_image_url,thumbnail_image_url
1.2 RefreshToken 모델 INSERT
- 파일:
app/user/services/auth.py - 라인: 315
- 메서드:
_save_refresh_token() - API 엔드포인트:
GET /auth/kakao/callback- 카카오 로그인 콜백POST /auth/kakao/verify- 카카오 인가 코드 검증
- 설명: 로그인 시 리프레시 토큰 저장
- 저장 필드:
user_id,token_hash,expires_at,user_agent,ip_address
2. Lyric 모듈 (app/lyric)
2.1 Project 모델 INSERT
- 파일:
app/lyric/api/routers/v1/lyric.py - 라인: 297
- API 엔드포인트:
POST /lyric/generate- 가사 생성 - 설명: 가사 생성 요청 시 프로젝트 레코드 생성
- 저장 필드:
store_name,region,task_id,detail_region_info,language
2.2 Lyric 모델 INSERT
- 파일:
app/lyric/api/routers/v1/lyric.py - 라인: 317
- API 엔드포인트:
POST /lyric/generate- 가사 생성 - 설명: 가사 생성 요청 시 가사 레코드 생성 (초기 status:
processing) - 저장 필드:
project_id,task_id,status,lyric_prompt,lyric_result,language
3. Song 모듈 (app/song)
3.1 Song 모델 INSERT
- 파일:
app/song/api/routers/v1/song.py - 라인: 178
- API 엔드포인트:
POST /song/generate/{task_id}- 노래 생성 - 설명: 노래 생성 요청 시 노래 레코드 생성 (초기 status:
processing) - 저장 필드:
project_id,lyric_id,task_id,suno_task_id,status,song_prompt,language
3.2 SongTimestamp 모델 INSERT
- 파일:
app/song/api/routers/v1/song.py - 라인: 459
- API 엔드포인트:
GET /song/status/{song_id}- 노래 생성 상태 조회 - 설명: Suno API에서 노래 생성 완료(SUCCESS) 시 가사 타임스탬프 저장 (반복문으로 다건 INSERT)
- 저장 필드:
suno_audio_id,order_idx,lyric_line,start_time,end_time
4. Video 모듈 (app/video)
4.1 Video 모델 INSERT
- 파일:
app/video/api/routers/v1/video.py - 라인: 247
- API 엔드포인트:
GET /video/generate/{task_id}- 영상 생성 - 설명: 영상 생성 요청 시 영상 레코드 생성 (초기 status:
processing) - 저장 필드:
project_id,lyric_id,song_id,task_id,creatomate_render_id,status
5. Home 모듈 (app/home) - 이미지 업로드
5.1 Image 모델 INSERT (URL 이미지 - 서버 저장)
- 파일:
app/home/api/routers/v1/home.py - 라인: 486
- API 엔드포인트:
POST /image/upload(tags: Image-Server) - 설명: 외부 URL 이미지를 Image 테이블에 저장
- 저장 필드:
task_id,img_name,img_url,img_order
5.2 Image 모델 INSERT (바이너리 파일 - 서버 저장)
- 파일:
app/home/api/routers/v1/home.py - 라인: 535
- API 엔드포인트:
POST /image/upload(tags: Image-Server) - 설명: 업로드된 바이너리 파일을 media 폴더에 저장 후 Image 테이블에 저장
- 저장 필드:
task_id,img_name,img_url,img_order
5.3 Image 모델 INSERT (URL 이미지 - Blob)
- 파일:
app/home/api/routers/v1/home.py - 라인: 782
- API 엔드포인트:
POST /image/upload/blob(tags: Image-Blob) - 설명: 외부 URL 이미지를 Image 테이블에 저장 (Azure Blob 엔드포인트)
- 저장 필드:
task_id,img_name,img_url,img_order
5.4 Image 모델 INSERT (Blob 업로드 결과)
- 파일:
app/home/api/routers/v1/home.py - 라인: 804
- API 엔드포인트:
POST /image/upload/blob(tags: Image-Blob) - 설명: 바이너리 파일을 Azure Blob Storage에 업로드 후 Image 테이블에 저장
- 저장 필드:
task_id,img_name,img_url,img_order
6. Base Services (미사용)
아래 파일들은 공통 _add() 메서드를 정의하고 있으나, 현재 실제 API에서 직접 호출되지 않습니다.
| 파일 | 라인 | 비고 |
|---|---|---|
app/lyric/services/base.py |
15 | _update()에서만 내부 호출 |
app/home/services/base.py |
15 | _update()에서만 내부 호출 |
app/song/services/base.py |
15 | _update()에서만 내부 호출 |
요약 테이블
| 모듈 | 모델 | 파일:라인 | API 엔드포인트 |
|---|---|---|---|
| User | User | auth.py:278 |
GET /auth/kakao/callback, POST /auth/kakao/verify |
| User | RefreshToken | auth.py:315 |
GET /auth/kakao/callback, POST /auth/kakao/verify |
| Lyric | Project | lyric.py:297 |
POST /lyric/generate |
| Lyric | Lyric | lyric.py:317 |
POST /lyric/generate |
| Song | Song | song.py:178 |
POST /song/generate/{task_id} |
| Song | SongTimestamp | song.py:459 |
GET /song/status/{song_id} |
| Video | Video | video.py:247 |
GET /video/generate/{task_id} |
| Home | Image | home.py:486 |
POST /image/upload |
| Home | Image | home.py:535 |
POST /image/upload |
| Home | Image | home.py:782 |
POST /image/upload/blob |
| Home | Image | home.py:804 |
POST /image/upload/blob |
생성일: 2026-01-23