{"sha":"4d798f55f021d93c889725e50f18cbce20272fd1","date":"2026-08-05T09:27:43+09:00","era":"B","subject":"feat(loss): add analysis workflow","body":"Add persisted loss analysis and audit records.\\n\\nRestrict new admin menus to existing analysis-log administrators.\\nReuse the current Kakao template until a loss-specific template is approved.","body_present":true,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.service.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-analysis/loss-analysis.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/treat/treat-nts.controller.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0027_loss_analysis.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3ca52d7b075a2d46f9827e830a432ec3cdfd6eb9","date":"2026-08-04T17:21:05+09:00","era":"B","subject":"feat(nts): add staged medical relay","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/treat/treat-nts.controller.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d0df61e53cfe921fd2ebf1e61d1a6b7fc036537e","date":"2026-08-03T14:07:12+09:00","era":"B","subject":"fix(corp): 정산 상세 구독내역 엑셀을 화면 컬럼과 완전 일치 — 소속조직·정산상태도 제외","body":"- corp 엑셀에 화면에 없는 소속조직·정산상태 컬럼이 남아 있던 문제\n- corp 분기를 명시 컬럼 목록(화면 11개 구성·순서 동일)으로 교체\n  (회원아이디·구독번호·주문번호·상품코드·상품명·분석제한수·이용만료일·\n   결제금액·정산금액·주문상태·주문일). admin 엑셀은 기존 그대로","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3b3694ddba3ee0cb7630a091508f22a246b218e","date":"2026-07-31T17:04:55+09:00","era":"B","subject":"fix(auth): 조직관리자 로그인 - 소속 조직 미배정 사유를 구분해 안내 (E0102)","body":"- 기업코드·아이디·비밀번호가 맞아도 소속 조직(orgPath) 미배정이면 로그인 불가한데\n  자격 오류(E0101)와 같은 메시지라 원인 파악이 불가했음\n- 조직관리자는 부분트리 스코프가 필수이므로 차단은 유지하되, 조직 배정을 요청하라는\n  구체 사유(E0102)로 내려줌","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f1b5bd07f8bb02092af740e85a826d90bd3d6cd","date":"2026-07-31T16:53:42+09:00","era":"B","subject":"feat(corp): 주문·정산 상세 엑셀을 기업관리자 화면 컬럼과 일치 (기획 요청)","body":"- 기업주문 엑셀: corp 분기 신설 — 영업대리점명·분석사용완료수·분석진행수·\n  과금방식·정산상태·정산금액 제외, 목록 컬럼 구성·순서와 동일\n- 정산 상세 구독내역 엑셀: corp는 분석사용수·분석예약수 제외 (화면 컬럼과 동일)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"93245aab2ad5e917e475d244935e96402bf6723a","date":"2026-07-31T15:35:46+09:00","era":"B","subject":"fix(corp): 노출여부 변경 스코프 검증을 목록과 동일한 구독 체인 기준으로 수정","body":"- countOddsInAgency가 고객(tn_user)→회원 연결로 기업 소속을 판정해, 고객이\n  회원과 연결되지 않은 분석 건(고객명 빈 데이터 등)이 0건으로 떨어져 403\n- 목록(buildDynamicQuery)과 동일하게 주문→결제→구독→회원 체인으로 판정","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6d86ab4ed0d480025f17b47fffb4e9e854ae8e1f","date":"2026-07-31T15:30:03+09:00","era":"B","subject":"fix(corp): 조직관리자 노출여부 변경 허용 — CorpReadonlyGuard 예외 + 부분트리 스코프 검증","body":"- 분석관리 노출/비노출이 조직관리자(ORG)에겐 읽기전용 가드에 막혀 무시되던 문제\n- @AllowOrgWrite 부착 + countOddsInAgency에 orgPath 부분트리 검증 추가\n  (목록 스코프와 동일 규칙 — 자기 부분트리 밖 분석 건은 403)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de58c755029751abf588e3582ba8cb2d704dd259","date":"2026-07-31T15:17:39+09:00","era":"B","subject":"fix(corp): 분석관리 노출여부 변경 corp 허용 + 고객 인적사항 마스킹 제거 (기획 요청 7/31)","body":"- 노출/비노출 처리(@Post update)가 admin 전용이라 corp 콘솔에서 셀렉트 변경이\n  403으로 무시되던 문제 — corp 허용 + 대상 전건 자기 기업 소속 검증(countOddsInAgency)\n- 고객명·연락처·생년월일 마스킹을 corp에서 일단 제거(목록·엑셀) — 영업대리점 마스킹은 유지","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bbb09d1bfe77eb2cc4db2d54a60a2204aacc875d","date":"2026-07-31T14:02:27+09:00","era":"B","subject":"feat(corp): 기업조직관리 CRUD 허용 + 마이페이지 API + 정산확정만 노출 (기획 목업)","body":"- 조직 CRUD(목록·등록·상세·수정·이동·삭제)에 corp 허용 — 최고관리자(SUPER)만,\n  자기 기업(agcId)·자기 조직(orgId) 검증, 조직관리자(ORG)·타 기업 차단\n- 마이페이지 API 신설(company-mockup):\n  · POST /corp/verify-password — 진입 전 현재 비밀번호 검증(SUPER=기업, ORG=회원)\n  · GET/POST /corp/my-agency — 기업정보 조회·수정(비밀번호·회계이메일만, 최신 계약 반영)\n  · GET/POST /corp/my-info — 조직관리자 내 정보 조회·수정(이름·연락처·이메일·비밀번호)\n- 기업정산 목록: corp에는 정산확정(CONFIRMED) 항목만 노출","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency/corp-my.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency/corp-my.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency/corp-my.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"482f60df0235ff4314816e66024106222e79af80","date":"2026-07-31T13:30:51+09:00","era":"B","subject":"fix(security): 관리자 열람 통과를 admin-view 단명 토큰으로도 인가","body":"- 쿠키(_aaT) 방식은 iframe 요청에 쿠키가 실리지 않는 환경(로컬 admin ↔ stg\n  사이트 등)에서 여전히 403 — car-basic과 동일하게 admin-view 토큰 경로 추가\n- AdminOptionalGuard: x-admin-view-token 헤더(또는 ?t)를 scope 'analyze' +\n  query.oddId로 검증 성공 시 viewTokenOddId 복원 (발급 시 관리자 인증 +\n  corp 기업 스코프가 이미 검증된 토큰)\n- isAdminViewerAllowed: 검증된 토큰의 oddId와 요청 oddId 일치 시 통과\n- disease·clinical-result·medication-standard 모듈에 AdminViewTokenModule 연결\n- 사이트 인터셉터 확장(insuniverse-site)과 세트","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/helpers/admin-viewer.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/admin-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"299d60bc18455ffcca09b79608801b295f0ef277","date":"2026-07-31T11:39:43+09:00","era":"B","subject":"feat(analyze): 기업/조직관리자 자동차분석 열람 허용 (기획 요청)","body":"- canViewCar: corp 역할 허용 — admin-view 토큰 발급 시 자기 기업 스코프\n  (isOddInCorpScope, 조직관리자는 부분트리)가 검증되므로 타 기업 건은 열람 불가\n- admin-view 경로의 req.admin은 서명된 v2 토큰으로만 복원되어 쿠키 신원만으로는\n  가드 통과 불가, carView=false 토큰은 기존대로 차단\n- 통합관리자 allowlist(CAR_VIEW_ADMIN_IDS) fail-closed 정책은 그대로 유지\n- 가드 스펙 갱신: corp 통과/토큰 carView 차단 케이스 추가","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/car-view-admin.guard.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/car-view-admin.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"799cdd7a29b7700a85456c5068146317e7d2af02","date":"2026-07-31T11:31:38+09:00","era":"B","subject":"fix(security): 소유자 검증에 관리자 admin-view 통과 경로 추가","body":"- 배경: 7/28 보안 커밋들이 진료로그·추천보험·보험참고트리·투약/검사 추천의\n  oddId 경로에 회원 소유자 검증을 추가하면서, 회원 JWT가 없는 관리자 분석\n  팝업(iframe)의 해당 조회가 전부 403으로 차단됨\n- AdminOptionalGuard 신설: admin JWT(_aaT, SameSite=None으로 iframe XHR에도\n  전달)를 비차단 검증해 req.admin 복원 — 차단 판정은 서비스 소유자 검증이 담당\n- assertOddOwner(3개 모듈): 회원 소유자 불일치 시 관리자 대체 판정 —\n  통합관리자(admin)는 전체, 기업/조직관리자(corp)는 자기 기업(agcId) 건만 통과\n- 소유자 조회를 memId→{memId, agcId}로 확장 (findOrderOwner)\n- 회원 토큰에는 role 클레임이 없어 관리자로 오인될 수 없음 (role 기반 판정)","body_present":true,"is_merge":false,"file_count":11,"files":[{"status":"A","path":"apps/api/src/helpers/admin-viewer.helper.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/admin-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a71d5f2bcb8ba2f8dfce0b3f17ffc7cf2861edc6","date":"2026-07-31T11:31:38+09:00","era":"B","subject":"feat(order-detail): 기업/조직관리자 분석 목록·엑셀에 고객 인적사항 마스킹 적용","body":"- 기획(company-mockup 분석관리): 고객명·연락처·생년월일 마스킹을 영업대리점에서\n  기업/조직관리자(corp)까지 확대 — 목록 API와 엑셀 다운로드 동일 적용\n- corp 전용 엑셀 컬럼 분기 추가: 영업대리점명·영업채널명·회원타입·처리업체·\n  실패코드·실패사유·분석실패일 제외, 화면 목록 컬럼 구성·순서와 일치","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6276347ac1d4984c008d4f2b1011bfd1ac39dba2","date":"2026-07-31T10:28:19+09:00","era":"B","subject":"feat(auth): 조직관리자 로그인 기업 식별을 agcLoginId → agcCorporateCode로 변경","body":"- 기획(admin planning/company-mockup 로그인 목업 개발팀 전달) 반영:\n  조직관리자가 최고관리자 로그인 아이디를 몰라도 공개용 기업코드로 소속 기업 식별\n- CorpOrgSignInDto.agcLoginId → agcCorporateCode\n- getOrgManagerByLoginId → getOrgManagerByCorporateCode(기업코드 기준 조회),\n  토큰·응답의 agcLoginId는 조회 결과(tn_agency)에서 채움\n- admin 프런트 변경과 세트 (insuniverse-admin 동일 시점 배포 필요)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5b00db6db064b450f014c8405d53a4e07c6fae6a","date":"2026-07-30T10:18:22+09:00","era":"B","subject":"feat(fc): add account update spreadsheet","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/fc-agency-account-update.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"743e010aa627ec60b567eb7d89cd45b8da7d131a","date":"2026-07-28T19:41:25+09:00","era":"B","subject":"fix(security): 투약·검사 추천 조회에 소유자 검증 추가","body":"병력분석 화면이 쓰는 /medication-standard/recommended-medication,\n/examination-standard/recommended-examination 두 경로가 memId를 인자로만 받고\n사용하지 않아 oddId만 바꾸면 비인증으로도 투약/검사 로그가 조회됐다.\n각 리포지토리에 소유자 조회를 추가해 oddId 경로만 대조한다.\nB2C(bodId)·고객사(codId) 경로는 변경 없음.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"044fb0d7f6f79c46c2f39ecc33a4de2917e6af28","date":"2026-07-28T19:30:52+09:00","era":"B","subject":"fix(security): 병력분석·가망고객 조회에 소유자 검증 추가","body":"- disease.service의 4개 메서드가 memId를 인자로만 받고 사용하지 않아, oddId만 바꾸면\n  남의 진료이력/추천보험/보험참고 트리가 비인증으로도 조회됐다.\n  (treatment-log, recommended-insurance, insurance-reference-tree, treatment-7day-groups)\n- DiseaseRepository.findOrderOwnerMemId 추가 후 oddId 경로에만 소유자 대조.\n  B2C(bodId)·고객사(codId) 경로는 각자 인증 체계를 쓰므로 변경 없음.\n- order-detail/prospect의 memId도 클라 전송값 대신 토큰에서 취득.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47d90c30a0c6f4bf698c678dd004491808cbad2f","date":"2026-07-28T19:09:55+09:00","era":"B","subject":"fix(security): 분석·청구서 조회에 소유자 검증 추가 — 비인증/타계정 열람 차단","body":"- analyze(:oddId) 회원 조회에 OwnAnalysisGuard 추가: 주문 소유자와 토큰 memId 대조,\n  토큰 없으면 -1로 fail-closed. oddId만 바꿔 남의 고객 분석(이름·생년·연락처·진료이력)이\n  조회되던 경로를 차단한다.\n- invoices 컨트롤러에 가드 부재 → 라우트별 인증 추가. 청구서 이력/PDF는 소유자 검증,\n  어드민 전용 merged-pdf는 관리자 가드로 분리(소유자 제한 없음).\n- 분석/주문 목록과 청구서 생성의 memId를 클라 전송값이 아닌 토큰에서 취득.\n\nRefs: 비로그인 시크릿창에서 /analyze/:oddId/aggregate 등이 200으로 응답하던 건 확인됨.","body_present":true,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/user/own-analysis.guard.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/user/own-analysis.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b90672174ac52f41eec0ad0680bca87a6d0b605","date":"2026-07-27T10:33:53+09:00","era":"B","subject":"test(subscribe): 구독실패 재구독 순차화 유닛테스트 추가","body":"- processResubscribe가 settleInBatches로 1건씩 순차 처리(maxActive=1), 성공건만 삭제, 중간 실패가 나머지를 막지 않음(allSettled 시맨틱) 검증.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"346af660ce3b4c6532e61783f932ed293d57f2a3","date":"2026-07-27T09:56:31+09:00","era":"B","subject":"test(fc): settleInBatches 스펙을 순차(BATCH_SIZE=1)에 맞춤 — maxActive 5→1","body":"- BATCH_SIZE 5→1 순차화에 따라 동시실행 최대치 기대값을 1로 수정. (CI는 jest 미실행이라 배포엔 영향 없었으나 테스트 정합 맞춤)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/subscription-batch.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d22c5d1fc2086d38d32b8176266de8a3334cbe7","date":"2026-07-27T09:53:11+09:00","era":"B","subject":"fix(subscribe): 구독실패 재구독도 순차화 — 무제한 병렬 → settleInBatches(계약행 데드락 제거)","body":"- processResubscribe가 Promise.allSettled로 실패목록 전체를 무제한 병렬 재구독+삭제 → 같은 기업 계약행 동시 업데이트로 데드락. settleInBatches(BATCH_SIZE=1)로 순차화.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"164524c2c52a4792f293d99363d300b25cef74c1","date":"2026-07-27T09:43:52+09:00","era":"B","subject":"fix(fc): 구독 일괄처리 순차화(BATCH_SIZE 5→1) — 계약행 데드락 제거","body":"- 5개 동시 처리(Promise.allSettled/배치) 시 같은 기업 계약행을 병렬 업데이트해 InnoDB 데드락 → 대량 업로드에서 일부 실패(재업로드하면 성공). 동시성 1로 낮춰 순차 처리 → 데드락 소멸.\n- awaited라 대량(수백건) 시 응답 지연 있을 수 있음(그건 나눠 올리거나 백그라운드화로 별도 대응).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/subscription-batch.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d3ccff785dcc4b3b4c04f8c6de70cc957d35a14","date":"2026-07-24T10:53:15+09:00","era":"B","subject":"fix(analyze): hide Samsung patient name in disease PDF","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/analyze/analyze-disease-pdf.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"544730122273b764d294ecae8fadee3c694662ea","date":"2026-07-24T09:47:18+09:00","era":"B","subject":"feat(agency): 기업별 분석관리 화면 노출여부(agc_analysis_view) 컬럼·게이팅 추가","body":"tn_agency.agc_analysis_view(0: 미노출[기본] | 1: 분석목록만 | 2: 분석목록+상세팝업)로\n기업관리자/조직관리자(corp) 콘솔의 분석관리 접근을 기업 단위로 제어한다.\n(planning/company-mockup 기획 — 분석관리 노출 권한 부여)\n\n- drizzle/0026_agency_analysis_view.sql 신규 (stg RDS 적용 완료), schema.ts tnAgency 반영\n- Agency 엔티티·Create/Update/GetAgencyDto·agency.repository(상세 select/등록/수정) 반영\n- 로그인 응답에 값 포함: corp/signin·corp/org/signin → admin.agcAnalysisView\n  (조직관리자는 tn_agency join으로 소속 기업 값 수신)\n- CorpAnalysisViewGuard + @CorpAnalysisView(level) 신설 — corp 요청 시 DB 재조회로\n  설정 변경 즉시 반영(토큰 미사용). admin/sales는 무영향\n  - GET /admin/order-detail(목록·엑셀다운로드): 레벨 1 이상\n  - admin/analyze/* 및 admin-view-token(상세팝업 토큰 발급): 레벨 2 필요\n\n프론트(insuniverse-admin)의 동일 기능 커밋과 함께 배포 필요\n(UpdateAgencyDto에 agcAnalysisView 필수 추가로 구버전 프론트의 기업정보 수정은 400).","body_present":true,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/corp-analysis-view.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0026_agency_analysis_view.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7514332de8d9743b0953ab90a6bd874c35e53892","date":"2026-07-23T17:47:31+09:00","era":"B","subject":"fix(report): isolate Samsung report storage","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8675a913a58f357067a0e9d6d9c5993d68205fb3","date":"2026-07-23T17:45:31+09:00","era":"B","subject":"Merge remote-tracking branch 'github/stg' into feat/samsung-s2-daily-report","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6733fa99c997f2fcb5d8e4cf1627786f942933a1","date":"2026-07-23T17:40:46+09:00","era":"B","subject":"feat(report): stage Samsung S2 delivery","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/samsung-s2-report.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05012ffb591a2fa842c3265b82ef5c4beaa4e41f","date":"2026-07-23T17:24:15+09:00","era":"B","subject":"feat(report): email Samsung S2 daily usage","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/samsung-s2-report.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/samsung-s2-report.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e1d3d0bbad5f680d75d07d769327e3340d75020","date":"2026-07-23T15:28:36+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"31552bb911f2941f1a1be350d23d6738d6fc5e9e","date":"2026-07-23T15:27:01+09:00","era":"B","subject":"feat(settlement): 구매내역서 목업 레이아웃 반영·구독내역 소속조직 추가","body":"- 구매내역서 PDF를 목업(후불정산관리_구매내역서.html) 기준으로 개편 —\n  제목+정산번호/발행일 헤더, 공급자/공급받는자 박스, 품목 테이블에\n  공급가액/세액(VAT) 컬럼 분리, 합계(공급가액/세액/합계)·한글 금액 문구\n  (\"일금 ...원정\"), 하단 확인 문구, 행 초과 시 페이지 넘김 가드\n- 품목을 상품명+단가별 행으로 분리 집계(getIncludeLineItems) — 동일 상품도\n  단가가 다르면 별도 행(프로모션·차등 단가). 단일행용 getIncludeStats 제거\n- 정산 구독 주문내역 목록/엑셀에 소속조직(orgFullPath) 추가 —\n  AgencyOrganizationService.getFullPathNames 배치 병합, 엑셀 '소속조직' 컬럼\n  (회원아이디·구독번호 사이), 주문 응답 DTO에 member.orgFullPath 노출","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-statement.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef4908eb6f912a6f0453194c70e40f6fed16f4d2","date":"2026-07-23T14:40:53+09:00","era":"B","subject":"feat(treat-monitor): 진료집계 스타일 엑셀 다운로드 엔드포인트","body":"- GET /admin/treat-monitor/daily-excel → exceljs로 제목·기간·그룹헤더 병합·% 서식·임계값 색·틀고정·주의사항 포함 xlsx 생성.\n- dailySummary 재사용(캐시). 성공률/회복률만 색, 합계행 강조.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36ce134e65a2b4f22c350817934a54eed7a9631f","date":"2026-07-23T14:27:10+09:00","era":"B","subject":"perf(treat-monitor): 진료집계 쿼리 최적화 — 상관 서브쿼리를 실패 주문에만","body":"- 종결주문 전부에 EXISTS+LATERAL(2 상관 서브쿼리/행)을 돌려 대량 구간에서 타임아웃 → 성공 주문은 범위스캔만(A), 서브쿼리는 실패 주문에만(B)로 분리.\n- 시맨틱 동일: 요청=성공+진짜이탈+유저실패+시스템실패, 코호트 그대로. 성공률/회복률 등 숫자 불변.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9e4515fac5c40970e348f6cc3e9f28e64618113e","date":"2026-07-22T18:56:39+09:00","era":"B","subject":"fix(fc): preflight batch unsubscribe seat floor","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"825ef2ec83c72bf859eeeb741e4d0f22895006de","date":"2026-07-22T15:59:49+09:00","era":"B","subject":"fix(analyze): deny car access without owner","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2b594c467b2732ad22de4eda809074ba0eb780df","date":"2026-07-22T15:55:27+09:00","era":"B","subject":"fix(analyze): show new car results to FCs","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/analyze/analyze-car-visibility.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ed93ab75fcf9344794e26aee564e0646450fdeca","date":"2026-07-22T15:46:22+09:00","era":"B","subject":"fix(client): move car visibility cutoff to 16:00","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"461857e2ca5df5f62094bb5e2f76c6f070b45565","date":"2026-07-22T14:51:36+09:00","era":"B","subject":"fix(client): hide car results before public cutoff","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client/client.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3198262e999d874ee764c00bd46057c2df80846c","date":"2026-07-22T10:54:17+09:00","era":"B","subject":"fix(fc): make subscription uploads bounded and awaited","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/subscription-batch.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/subscription-batch.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c2441c73e0938217353711e4bc76d8543cd120d","date":"2026-07-21T15:25:06+09:00","era":"B","subject":"feat(fc): 이벤트 팝업 [다음에] 96시간 스누즈(계정별, Redis TTL)","body":"- POST /fc/:memId/push-event-snooze → Redis 'push-event-popup-snooze:{memId}' 96h TTL. 웹/앱 공유·자동만료·마이그레이션 없음.\n- GET /fc/:memId/push-settings 응답에 eventPopupSnoozed(bool) 추가. Redis 장애 시 fail-open(계속 노출).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e18eb66fd1632f44b912b23fe74d5f85bf81e1e","date":"2026-07-21T14:05:52+09:00","era":"B","subject":"feat(treat-monitor): 일별 집계 grain에 vendor 추가 — 벤더별 시도+코호트 분해","body":"- grain=vendor: 버킷을 odd_provider로. 벤더별 요청/성공/이탈/유저/시스템 + 고객 코호트(최초 종결 벤더 귀속) 회복 지표. 라벨은 tn_treat_provider 한글명, 선호순 정렬.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"611a2c3438a6aace52380a083e30d4af5b80eb04","date":"2026-07-21T13:53:15+09:00","era":"B","subject":"feat(treat-monitor): 일별 집계에 grain(일/월) 추가 — 월 단위도 시도+코호트 동일 집계","body":"- dailySummary/computeDaily에 grain 파라미터. 월 단위는 YYYY-MM 버킷으로 시도기준·고객 코호트 동일 분해(월도 이탈로 퉁치지 않음).\n- GET /admin/treat-monitor/daily?grain=month|day. 캐시 키에 grain 포함.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c93548bc3ce3e995bea82ed6f361c27f3f8ba54a","date":"2026-07-21T11:33:16+09:00","era":"B","subject":"feat(treat-monitor): 일별 총합계 집계 추가 — 시도기준+고객 코호트 회복, 기업상품 다중필터","body":"- dailySummary(from,to,products[]): 일자별 시도기준(요청/성공/진짜이탈/유저실패/시스템실패) + 고객 코호트(최초성공/회복성공/미회복/회복률/최종성공). 분류는 overview·monthly와 동일(isHumanError).\n- 부하방어 3겹: TTL 캐시 + single-flight + 과거 10분/범위 92일 상한 → 새로고침 폭탄에도 DB 계산은 (키·TTL)당 1회.\n- enterprises(): 기업상품(PRD003) 목록 — 다중선택 셀렉트용.\n- 엔드포인트: GET /admin/treat-monitor/daily, /admin/treat-monitor/enterprises.\n- scripts/treat-daily-verify.ts: prod 대조 검증(실서비스 분류 재사용, 상품코드 발견 모드 포함).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"A","path":"scripts/treat-daily-verify.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e522e847f57bb7f6f0581bd844c5ddd78b4717df","date":"2026-07-21T10:59:12+09:00","era":"B","subject":"feat(treat): collect car history from coocon and octover","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-car-canary.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-car-canary.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.types.ts","old_path":null,"score":null},{"status":"A","path":"libs/webclient/src/webclient.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/webclient/src/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d95aa4daa251fea3a902b9e5679b6b7166061e8","date":"2026-07-20T18:25:08+09:00","era":"B","subject":"fix(car): remove one-time receipt gate","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-car-canary.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-car-canary.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/treat/treat-car-request.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"267bf61f3e3316811fdccb52d2f8846e055caf89","date":"2026-07-20T16:24:09+09:00","era":"B","subject":"docs(db): describe automobile canary receipt fields","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/0025_treat_car_canary_request.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8507677b0764b3018674bbe30eb193affe84eb63","date":"2026-07-20T16:21:32+09:00","era":"B","subject":"feat(car): require one-time consent and strict canary seats","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/auth.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.unit.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-car-canary.service.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-car-canary.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-car-request.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0025_treat_car_canary_request.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02c4103a827f715a9caf748258af97b3221f73dc","date":"2026-07-20T10:17:33+09:00","era":"B","subject":"fix(car): fail closed outside inhouse canary","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8cc3230c0f7a3c38489630dc7ecf11614aee2786","date":"2026-07-20T10:05:36+09:00","era":"B","subject":"feat(car): gate inhouse canary behind master kill","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-car-canary.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat.repository.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f0038eb9e4ef1bdb5eeb44e998e863040cf8986b","date":"2026-07-20T10:03:42+09:00","era":"B","subject":"fix(car): gate visibility with signed admin claims","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.controller.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.guard.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.guard.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/car-view-admin.guard.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/car-view-admin.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4c384afe16c6926d98ae7a54c4af49e2ab7157b","date":"2026-07-16T15:01:56+09:00","era":"B","subject":"fix(task-683): 기관 사용중지 시 분석 초대 서버 차단","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c577fd29ac47a05c848939e3705519204df51999","date":"2026-07-16T10:40:49+09:00","era":"B","subject":"fix(task-684): 기업별 약관을 기본 약관 타입별로 관리","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"A","path":"apps/api/src/helpers/sanitize.helper.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/sanitize.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.repository.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0024_company_terms_defaults.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6571e8f04821f56b4ce4a0c61947093c4b94a4e","date":"2026-07-16T10:30:42+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89bc923a108c4b0c81d39ef43e55b6adda4e947e","date":"2026-07-16T10:30:07+09:00","era":"B","subject":"feat(order): 과금방식 스냅샷·기업주문 정산상태 개편·정산확정 취소가드 (기획 회신 반영)","body":"- tn_order.ord_billing_type 스냅샷 신설(생성 시 활성계약 복사, 0024 DDL+백필) — 목록/필터/정산 편입 기준\n- 기업주문 정산상태 산출 개편: 정산대기/정산확정/정산제외/무상제공, 취소·실패는 공란(NONE) + 검색필터(과금방식·정산상태)\n- 정산확정(확정+반영) 주문 취소 차단(E0214)\n- 정산 편입 무상 제외를 기업 단위 → 주문 스냅샷 기준으로 교체(전환 기업 과거 후불 주문 누락 방지)\n- 기업주문 엑셀 컬럼을 목록 순서와 일치(과금방식/정산상태/정산금액 포함), 정산상세 엑셀에 주문상태·정산상태 추가\n- 정산상세 주문내역 표시건수 상한 10,000","body_present":true,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0024_order_billing_type.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ce23e716987b42236e932ccc665dc77fb8d80c7","date":"2026-07-16T09:45:57+09:00","era":"B","subject":"fix(treat): serialize collection against auth expiry","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/order/order/order-lifecycle-race.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-certify-claim.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2bbb103741dd96c67204ab9f8d050349a8417291","date":"2026-07-15T11:31:11+09:00","era":"B","subject":"feat(analysis): 30일 투약 상세에 진단정보 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.repository.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78c16c3f78bda1319e349778b352a2992dfab73f","date":"2026-07-14T19:24:29+09:00","era":"B","subject":"feat(settlement): 정산 기획 정합 — 편입조건·정산금액 라이브·주문 정산상태·단가 일괄수정","body":"- 정산 편입 조건에서 기획에 없던 사용건수>0 필터 제거(취소·실패 제외만) — 사용 0 주문도 편입\n- 정산금액을 기획 정의(항상 계산 표기)대로 결제완료 주문 합 라이브 집계로 교체(취소 즉시 반영)\n- 기업주문관리 목록에 정산상태 산출(CONFIRMED/EXCLUDED/PENDING/NOT_TARGET) — 최신 정산 기준,\n  취소·실패/무상(FREE) 기업 미편입 주문은 대상외\n- 주문 정산단가 일괄수정 API(POST :astId/orders/settlement-price) — PENDING만, 주문취소 skip,\n  전월 구독수 구간 단가 변동 대응(결제금액 불변)\n- 정산 상세 구독주문내역 표시건수 파라미터 지원(최대 500)","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c563c41207f56aaf57e6b9e7847a755eb291eb39","date":"2026-07-14T19:24:29+09:00","era":"B","subject":"feat(product): 상품 전체조회 응답에 분석건수·판매가 추가","body":"- 기업계약 상품 선택 옵션에 분석건수/금액 병기용(/admin/product/all)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6f226e33f194f7e68a3ebfab214fac91fced39c1","date":"2026-07-13T14:43:53+09:00","era":"B","subject":"feat(treat-monitor): 월 집계를 벤더사별로 분해","body":"월 단위 집계에 byProvider 배열 추가 — 주문상태(요청/완료/진행중)를\nodd_provider 기준 GROUP BY 하고, 실패 3분류(이탈/유저실패/시스템실패)도\nprovider별로 집계. 합계행은 벤더 행의 합과 일치(정합 검증 완료). 온디맨드\n+월별 캐시(60s) 유지라 실시간 폴링 부담 없음.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a1d1b1ea78bee29874f9c7ba4d7833ca1ace63c8","date":"2026-07-13T14:09:43+09:00","era":"B","subject":"fix(corp-contract): 회계팀 이메일 필수값 해제","body":"- 무상(FREE) 외 계약도 회계팀 이메일 없이 등록/수정 가능하도록 서버 검증 제거\n- 미입력 시 정산 메일 발송 시점에 입력 안내(기존 플로우 유지)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"452285b4651252d37a8f78380d8e60ccff8abe4c","date":"2026-07-13T13:32:52+09:00","era":"B","subject":"feat(treat-monitor): 실패를 유저실패(휴먼)/시스템실패로 3분류 통일 + 소요/타임아웃 제거","body":"- 실패 = 이탈(SMS 미입력) / 유저실패(인증번호·정보 오입력·인증서·앱·연령) / 시스템실패(기관·통신·시스템·시간초과)\n  마지막 2차 실패코드의 VENDOR_MAP 카테고리로 휴먼/시스템 판정. 업체별·funnel·처리추이·월 전부 통일\n- 분류 쿼리 통합(LATERAL 1회), 평균/최대소요·타임아웃 지표 + log_treat 스캔 1개 제거","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c866df4305e93940c8849e310b5385e362c36de","date":"2026-07-13T12:54:50+09:00","era":"B","subject":"fix(treat-monitor): 이탈을 처리시점(실패) 창으로 통일 — 이탈 ⊆ 실패 정합","body":"업체별·처리추이 이탈을 odd_created_at(생성) → odd_failed_at(처리) 창으로 바꿔\nprovStat.fail·trend.failed와 동일 기준. 이탈이 실패의 부분집합이 되어 '이탈+실패'가\n총실패로 정합, 주요에러(AUTO-INCOMPLETE)와의 불일치도 해소.\nfunnel은 생성 코호트(완주율) 유지 → 분류 쿼리를 생성/처리 2개로 분리.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ba5dd0662121da05719ce9d6f4667ca715d2040","date":"2026-07-13T11:48:43+09:00","era":"B","subject":"feat(treat-monitor): 월 단위 집계 엔드포인트(온디맨드 + 월별 캐시)","body":"- GET /admin/treat-monitor/monthly?month=YYYY-MM — 월별 성공/진짜이탈/시스템실패/완주율\n- 실시간 폴링·overview 캐시와 분리된 온디맨드 조회. 월별 캐시(60s)로 반복 클릭 시 재조회 방지\n- 풀먼스(6월 8.6만건) 실측 ~850ms, 관리자 월 선택 시 1회 → 15초 폴링에 부담 없음","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fc4aa47e37ac6f50fd9e5f3ac8d7be8bfbddc283","date":"2026-07-13T11:20:52+09:00","era":"B","subject":"feat(treat-monitor): 이탈 정확분류(진짜이탈 vs 시스템실패) + 업체별·처리추이 반영","body":"실패 주문을 2차 수집(CRS002) 로그 유무로 분류 — 없으면 진짜 SMS 미입력 이탈,\n있으면 제출 후 시스템/수집 실패(INH-4001 HIRA 인증반환 미발생·INH-2002 등).\n\"SMS 확정 성공 후 콜백 미발생\"류를 SMS 미입력 이탈로 오분류하던 문제 해결.\n\n- holdingFunnel: 인증이탈 → smsDropout(진짜이탈)/systemFail(시스템·수집실패) 분리\n- 업체별 60분에 dropout(이탈) 컬럼, 처리추이 12h에 시간대별 dropout 추가\n- 세 지표가 동일 분류 공유 → 일관. log_treat.idx_odd_tx EXISTS 저렴(실측 31ms),\n  overview 캐시로 부담 상수화 유지","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d9295dc10f5a44ef6377297fbc002c1ac752087","date":"2026-07-13T10:45:45+09:00","era":"B","subject":"feat(treat-monitor): 보유 이탈 funnel(주문 단위) 신설 + overview 캐시/single-flight","body":"- overview 결과를 짧은 TTL(12s) 캐시 + 동시요청 single-flight → 폴링·다중요청이\n  DB를 매번 안 치게(운영 부담을 TTL당 최대 1계산으로 상수화)\n- holdingFunnel: 생성 코호트(주문 odd) 단위 완료/인증이탈(ODD004)/수집실패(ODD008)/\n  분석실패(ODD007) 집계(order_detail 인덱스, 실측 44ms). 정확한 보유 이탈 grain\n- cert1의 완주율/이탈(1차성공−2차로그 벤더별 뺄셈)은 재시도·벤더 교차 라우팅으로\n  왜곡되어 제거(부수적으로 log_treat 스캔 1개 감소)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"098929a39cd1c3494668302fd4eb6c5d6095866f","date":"2026-07-12T21:05:36+09:00","era":"B","subject":"chore(inhouse): remove unused certificate fallback","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"744892b00ed7c26f4d009c03b5091377ad460503","date":"2026-07-12T20:58:39+09:00","era":"B","subject":"fix(analyze): 보유 분석 상세 basic 조회를 basic PK로 필터","body":"detailBasicWhere 가 basic↔detail 좌조인의 detail 컬럼(asb_id)으로 필터해\ndetail 이 없는 basic 은 결과에서 통째로 누락 → 빈 결과 → 500 발생.\n전체 basic 의 약 35%(detail 미보유)가 상세 조회 시 500 대상이었다.\n\n- detailBasicWhere: eq(tnAnalysisBasic.asbId) 로 basic 테이블 PK 직접 필터\n- 기본정보 부재 시 plain Error(500) 대신 NotFoundException(404)\n- searchId() 는 detail 목록 조회에서 정상이므로 미변경","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6ac3f9fbe83c25e00996415a3bbb358fbb4e32b","date":"2026-07-08T18:56:30+09:00","era":"B","subject":"perf(treat-monitor): overview 주요에러 조회를 LATERAL JOIN으로 통합","body":"실패주문마다 log_treat를 code/msg/stage 상관 서브쿼리 3개로 스캔하던 것을 LATERAL JOIN 1개로 합쳐 3N to N. 결과는 동일하다.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"277fd40513d3c8315155eb0d865faa3389412b18","date":"2026-07-12T18:26:08+09:00","era":"B","subject":"fix(alimtalk): reject unknown invite codes","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"841788800fbb7feb1bc8173ed79587187b7c2454","date":"2026-07-12T17:48:22+09:00","era":"B","subject":"fix(treat): expire stale certify resumes","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-certify-claim.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f3a4fb3c72f10de5eccdb2823314bd29f580fc59","date":"2026-07-12T16:45:30+09:00","era":"B","subject":"fix(treat): align resume with parked slot ttl","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-certify-claim.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97405a425a0e8edc0b00db298eeb8c0173453f5d","date":"2026-07-12T03:17:24+09:00","era":"B","subject":"fix(treat): resume interrupted certify requests","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-certify-claim.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0147d2c00e6f11a172527e9f4fc8dd64f86b5368","date":"2026-07-11T00:56:48+09:00","era":"B","subject":"feat(fc): 사용중지·해지·삭제 seat 하한 판정 및 기업회원 엑셀 컬럼 추가","body":"- resign/unsubscribe/delete에 계약 구독계정수 하한 판정 — 기업 관리자 즉시 차단(SEAT_BELOW_CONTRACT), 내부 관리자 경고(SEAT_BELOW_CONTRACT_WARN, current/after/seat 반환) 후 force=true 강행 허용\n- 기업회원 엑셀 다운로드에 소속조직(전체 경로)·관리자 권한·현재 플랜 컬럼 추가 — 화면 목록과 동일 조회·표기 로직","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d4513a7957516caf5d5a191c608e76394556f7b0","date":"2026-07-11T00:56:48+09:00","era":"B","subject":"feat(settlement): 후불정산 확정 플로우·주문별 반영·계약 과금방식/하한 (변경안 3건)","body":"- DB(0023): 계약 과금방식/구독계정수 하한/회계팀 이메일, 정산 상태·확정 스냅샷·세금계산서, map 반영액션·이월 출처, 메일 발송 로그 테이블\n- 계약: 신규 3필드 CRUD(PREPAID 등록 거부), 상세 activeSubscriptionCount 제공\n- 정산: settleStatus 필터·반영 집계 컬럼, 주문별 반영변경(PENDING 한정), settle/confirm·cancel(단일 트랜잭션·배치 집계 스냅샷), paid/complete 입금일 필수(구 astPaidAt 겸용)·skip 응답, tax-invoice 수기 기록, 정산 안내 메일(구매내역서 첨부)+발송 로그, 구매내역서 PDF(pdf-lib·S3 폰트 메모이즈)\n- 스케줄러: FREE 계약 기업 제외, 전월 CARRYOVER 주문 이월 편입, SETTLE_TARGET_DATE 수동 실행 지원\n- mailer: attachments 지원(sagId 선택화, 하위호환)","body_present":true,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/settlement/settlement-statement.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/settlement-agency.schedule.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0023_agency_settlement_confirm.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8126d593f855031a785d08c61eca8a34caa77fc9","date":"2026-07-09T17:24:37+09:00","era":"B","subject":"fix(corp): QA 회신 — 조직 정렬·필터, 목록 페이지네이션 안정화","body":"- 조직 목록 정렬을 조직명 오름차순으로 변경, 조직명 20자/조직코드 15자 제한\n- 기업FC 조직 필터: 기본 정확 일치(하위 미포함), orgScope=subtree 옵션, UNASSIGNED(미배정) 지원\n- 구독/주문 목록: 정렬키 중복 시 페이지 이동마다 같은 데이터가 반복되던 문제 → subId/ordId 타이브레이커 추가\n- 구독/주문 검색키 dot-prefix(member.memLoginId 등) 정규화","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1683247ccf83a42732ba5bcd016d54b95ddc13cc","date":"2026-07-08T09:35:12+09:00","era":"B","subject":"fix(money): expose charge request approver name","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money-charge-request.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c44e7b8b29dd931946b9ff59a598f0af02165a1","date":"2026-07-08T09:23:32+09:00","era":"B","subject":"fix(money): add charge request approval menu","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"drizzle/0022_money_charge_request_menu.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2780ce158fb0f0ae33ca6a717bd70d067f52aca8","date":"2026-07-08T05:37:49+09:00","era":"B","subject":"feat(subscribe): support agency initial plan ranges","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0019_agency_contract_initial_products.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/0020_agency_contract_initial_range_days.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/0021_agency_contract_initial_plan_table.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"025059edd16dbe98af5e153d096dd2933d93f4e0","date":"2026-07-08T04:38:26+09:00","era":"B","subject":"fix(b2c): bind treat result to order detail","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2e8fc77807970089eee4300e645686bbae03238","date":"2026-07-07T20:54:39+09:00","era":"B","subject":"fix(corp-org): allow organization unassignment","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c3e5bd6c35e9480dfa9e1dd0dd96a2df7526d1fd","date":"2026-07-07T19:16:11+09:00","era":"B","subject":"fix(subscribe): return bad request for upload parse errors","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac537fab2fedf4c9ed3d2d976a25fe74d8c4bcc3","date":"2026-07-07T17:46:00+09:00","era":"B","subject":"fix(subscribe): surface b2b plan failures","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30d40c8fed6a570d527fdc0de2a64869ad1a8e08","date":"2026-07-07T15:42:29+09:00","era":"B","subject":"fix(analyze): require B2C result auth","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/b2c-auth.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea5fb65f41f4c637edfac377a39f458f818e3fab","date":"2026-07-07T13:26:19+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/prod' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b486d0005ba6fcb6bd6b5290b2d81bd5e5e5562","date":"2026-07-07T13:15:44+09:00","era":"B","subject":"fix(subscribe): use b2b initial plan products","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb1c98f6719fb2c99d99a00311b8c663ebd4c2fb","date":"2026-07-07T12:16:59+09:00","era":"B","subject":"fix(subscribe): fix agency initial billing amount","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9de69e283f6bbac8f0d2bbebd77ab13d0bbd6326","date":"2026-07-07T10:18:39+09:00","era":"B","subject":"fix: prevent duplicate certify starts","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-certify-claim.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"45994a83d71e5f01b96795d8b434b7b90c5e1d97","date":"2026-07-07T09:16:38+09:00","era":"B","subject":"fix(alimtalk): fallback invite resume lookup","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f256234e01fbb6a0888f18c3e07dab1be9efba2c","date":"2026-07-06T23:33:06+09:00","era":"B","subject":"fix(alimtalk): retry failed invite attempts","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eab85f0a80bc6cc019b3aef70a3f9f462dbe3e30","date":"2026-07-06T23:15:14+09:00","era":"B","subject":"fix(alimtalk): restart active sms sessions","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b14853aa5515f251069d31e5b10e2b1cbd1da7f","date":"2026-07-06T22:53:27+09:00","era":"B","subject":"fix(alimtalk): allow active invite resume","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"81b0a8a359dc5d4205b1786ea3cbd631e8e8dee2","date":"2026-07-06T17:23:22+09:00","era":"B","subject":"fix(payment): expose selected Toss billing errors","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/pg/src/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f23349d4403bcf32d40a3f04e44923a65290ad8","date":"2026-07-06T17:18:07+09:00","era":"B","subject":"fix(payment): expose selected Toss billing errors","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/pg/src/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d5bede3990d14814b4fcc94101ff74d06967cbb","date":"2026-07-06T17:00:07+09:00","era":"B","subject":"fix(payment): return Toss failure message","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f064fca5c2bd306ac5713e75e7d2d4fea3a1c9f1","date":"2026-07-06T17:00:07+09:00","era":"B","subject":"fix(payment): return Toss failure message","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"531ca7cf8de3fc0cf1a3dc7e06feb3ba81567849","date":"2026-07-06T15:04:53+09:00","era":"B","subject":"fix(money): default Smartro buyer phone","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1e93fd17ea22f51685e8da0b3574e387795d9ff","date":"2026-07-06T15:04:53+09:00","era":"B","subject":"fix(money): default Smartro buyer phone","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"33b0cd06bad7f46909d0384fdeb22f84e071f643","date":"2026-07-06T10:30:27+09:00","era":"B","subject":"fix: resolve admin view token guard dependency","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"397f74538615851b49ed0f0d36f531e092e165fb","date":"2026-07-06T09:32:53+09:00","era":"B","subject":"feat: update agency billing and money controls","body":"","body_present":false,"is_merge":false,"file_count":41,"files":[{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin-view-token/admin-view-token.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/migration/0001_default-organization.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/allow-org-write.decorator.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/corp-readonly.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-charge-request.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-corp.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-grant.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0015_order_settlement_price.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/0016_money_charge_request.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/0017_money_actor_audit.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/0018_order_settlement_price_repair.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8f07c7c4e3cc9efbbf2be1976c7a32e178a6c64","date":"2026-07-02T14:48:16+09:00","era":"B","subject":"ci: 배포 알림 curl 실패 예방 - 커밋 메시지 따옴표에 셸 인용 깨지는 구조를 env+jq 조립으로 교체 (site와 동일 수정)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/notification.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5d6304bd77d211f1413d9d58868ae146af882a29","date":"2026-07-02T14:27:22+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"404186c892a840042ceb3da4a19774fe8cfb61c6","date":"2026-07-02T14:27:21+09:00","era":"B","subject":"feat(org): 조직 상세에 조직관리자 목록(복수) 읽기 표시 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c940210c91d74c4effe9baaf70c9af48ab344d0","date":"2026-07-02T13:57:52+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74feddb251ade4b3baf96ad74d21329b6ab326bd","date":"2026-07-02T13:57:50+09:00","era":"B","subject":"feat(org): 다운로드 엑셀에 소속조직 컬럼·전체 경로 병합 추가 - 구독/주문은 배열 병합, 분석은 keyset 배치 병합+캐시","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"66741e921571ac899e4a0aa2932492035954fe00","date":"2026-07-02T13:44:22+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"23e0663e93aac53164607c0e2fbc0148b0806c4e","date":"2026-07-02T13:44:21+09:00","era":"B","subject":"feat(org): 구독/주문/분석 목록·다운로드에 조직 필터(orgId, 부분트리)와 소속조직 전체 경로(orgFullPath) 추가 - FC 목록/상세 포함","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30e9210c415e23569cb8a193df58bc4bce3d4c15","date":"2026-07-02T11:33:55+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02608f10b4e8541598b3952f799a3621d08ef695","date":"2026-07-02T11:33:53+09:00","era":"B","subject":"feat(org): 조직코드 필수값 승격 - 생성 필수, 수정 시 비우기 불가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44ea9c45fe721566c5344a873a69a97e79a9ac00","date":"2026-07-02T11:23:40+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a4ccfc48df00edbe60b05445d380b5126c6885da","date":"2026-07-02T11:23:35+09:00","era":"B","subject":"fix(corp): 권한 재검증 보강 3건 - 고객 엑셀다운로드 corp 스코프 누락, 머니지급(issue) corp 개방+자기기업 강제, 조직목록 ORG 부분트리 필터","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization-corp.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1929bb9e067c2563d141786269aad1830ca1392a","date":"2026-07-02T11:06:46+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e899f9129740406bedb1b7bbae5634934b7a1c73","date":"2026-07-02T11:06:44+09:00","era":"B","subject":"feat(org): 조직코드 DTO 형식 검증 추가 - 영문/숫자/하이픈/언더스코어만 허용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"712ef4fba35c25e8ef1905a8548b0251278e1e82","date":"2026-07-02T09:10:30+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da3fd31c315d55f8a4ec8531d75d5d5f8b1b899a","date":"2026-07-02T09:10:28+09:00","era":"B","subject":"fix(org): 조직 목록 회원수 집계를 org별 groupBy로 교체 — 상관 서브쿼리 폭증(183611) 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"474a81c6400df6831a409362d55ef3000f9faf52","date":"2026-07-01T21:57:31+09:00","era":"B","subject":"fix(treat): 이탈 비콘 jti 봉투 해제 후 sessionId 복원 (decodeTag)","body":"프론트 jti는 디스패처 라우팅 봉투 {p,j,r}(멀티벤더)라 봉투째 decodeInhouseSession하면\nsessionId 못 찾음(decodedSession=none). decodeTag로 한 겹 까서 p==inhouse일 때 tag.j를\ninhouse jti로 복원. 단일모드(decodeTag=null)면 jti 그대로. 관측로그도 provider 표기로 갱신.\n근본원인: stg 로그 [dropout] jti=present decodedSession=none 로 특정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5bf28eda4cdd5c74da35bda72b2fbf71e47b98df","date":"2026-07-01T20:04:39+09:00","era":"B","subject":"chore(treat): 클라 이탈 엔진 포워드 관측 로그 (jti 유무·복원 세션·포워드 결과)","body":"B 이탈이 대시보드에 안 뜨는 원인 격리용. jti present/decodedSession/포워드 ok·실패를\n남겨 프론트↔서버↔엔진 어디서 끊기는지 확정한다.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"10a9a3424e02c2764ca76ba2e7b71639a085351c","date":"2026-07-01T19:20:08+09:00","era":"B","subject":"feat(treat): 클라 이탈 비콘을 엔진 대시보드로 포워드 (jti→sessionId)","body":"tn_treat_dropout 적재 후, 비콘에 실린 jti에서 engine sessionId를 복원해\nInhouseService.reportClientDropout으로 엔진 /api/client-dropout에 전달.\n엔진 대시보드 해당 세션 타임라인에 이탈이 찍힘. best-effort(실패 무시).","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0d1cfa01bf543099bbe56acf62a5fbbfae6854f1","date":"2026-07-01T22:18:17+09:00","era":"B","subject":"Merge branch 'feat/corp-org-permission' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e0eb4683e2c41e9f977a60ff9d8eb399824acbb7","date":"2026-07-01T22:17:51+09:00","era":"B","subject":"fix(org): 조직 목록 회원수 서브쿼리 상관참조 수정 (raw→drizzle 컬럼, org별 정확 집계)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bbc9713aa47ec3ea3993f31879ca259ea022aec1","date":"2026-07-01T21:57:31+09:00","era":"B","subject":"fix(treat): 이탈 비콘 jti 봉투 해제 후 sessionId 복원 (decodeTag)","body":"프론트 jti는 디스패처 라우팅 봉투 {p,j,r}(멀티벤더)라 봉투째 decodeInhouseSession하면\nsessionId 못 찾음(decodedSession=none). decodeTag로 한 겹 까서 p==inhouse일 때 tag.j를\ninhouse jti로 복원. 단일모드(decodeTag=null)면 jti 그대로. 관측로그도 provider 표기로 갱신.\n근본원인: stg 로그 [dropout] jti=present decodedSession=none 로 특정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a187300030288587378ef2663037d61741892ef","date":"2026-07-01T21:53:23+09:00","era":"B","subject":"merge(stg): 조직트리+조직관리자 권한위임 반영","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea3d2e014ce4d35f0dffcc071bf90ef3355b8712","date":"2026-07-01T21:53:23+09:00","era":"B","subject":"feat(treat-monitor): 진료공급자 장애 통보 웹훅 (tpr_webhook_url)","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat-alert.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0009_treat_provider_webhook.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f0ce46c81f7c554f02c87c451a51acaf71402ee6","date":"2026-07-01T21:46:33+09:00","era":"B","subject":"feat(corp): 조직트리+조직관리자 권한위임 — 부분트리 스코프 조회/최고관리자 수정, 6도메인 스코프+CorpReadonlyGuard, 조직 CRUD·이동·회원배정·조직관리자지정 API, IDOR/스코프 보안 수정","body":"","body_present":false,"is_merge":false,"file_count":40,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/allow-org-write.decorator.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/corp-readonly.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0014_org_tree.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"85649ba47aea0087f6042955ef2355b7ef859b5c","date":"2026-07-01T20:04:39+09:00","era":"B","subject":"chore(treat): 클라 이탈 엔진 포워드 관측 로그 (jti 유무·복원 세션·포워드 결과)","body":"B 이탈이 대시보드에 안 뜨는 원인 격리용. jti present/decodedSession/포워드 ok·실패를\n남겨 프론트↔서버↔엔진 어디서 끊기는지 확정한다.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a048ced466e688f4a6471ce546cb7d079229ecfb","date":"2026-07-01T19:20:08+09:00","era":"B","subject":"feat(treat): 클라 이탈 비콘을 엔진 대시보드로 포워드 (jti→sessionId)","body":"tn_treat_dropout 적재 후, 비콘에 실린 jti에서 engine sessionId를 복원해\nInhouseService.reportClientDropout으로 엔진 /api/client-dropout에 전달.\n엔진 대시보드 해당 세션 타임라인에 이탈이 찍힘. best-effort(실패 무시).","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"800f3445e7867fc032ef81c4b3cff45a28425dde","date":"2026-07-01T16:49:53+09:00","era":"B","subject":"feat(treat): 인증 이탈 클라 비콘 수신 — stage/timing 적재 (미도착 vs 느림 실측)","body":"프론트 sendBeacon으로 인증단계 이탈 시점을 받아 tn_treat_dropout에 적재 + 구조화 로그.\n서버 퍼널(엔진)이 못 보는 '유저가 언제·어디서 이탈했나'를 클라 시점으로 채움.\n- POST /treat/dropout (인증가드 없음, best-effort 항상 200)\n- tn_treat_dropout 테이블(0013) + TreatDropoutService(로그+insert, 실패 삼킴)\nnest build 통과.","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/treat/treat-dropout.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0013_treat_dropout.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40fb82e552ce9b487f88768c7e158893fee972b3","date":"2026-07-01T15:46:46+09:00","era":"B","subject":"merge(stg): prod 핫픽스 reconcile — stg↔prod 통일 준비","body":"prod의 31 핫픽스(자동차토글/하이픈split/쿠콘바이패스/treat-monitor/alimtalk/auth)를 stg로 합침.\n충돌 4개 해소(코드=stg 기능+보안 / 자동차 baseline=prod OFF):\n- inhouse.service: carEnabled superset(자동차 OFF면 prod 동일 동작)\n- hyphen.service: 자동차 수집코드 보존(요청 시만=토글 게이트)\n- treat.module: CertifyRateLimitGuard 유지(기본 OFF)\n- drizzle 0012: enable_treat_car='0'(prod 안전 baseline)\nnest build 통과(spec TS에러는 prod 기존, 빌드 제외).","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a7a2ed328d42637492492c7f2c08795720dd1d6","date":"2026-07-01T02:14:28+09:00","era":"B","subject":"Merge pull request #33 from insuniverse-com/fix/certify-rate-limit","body":"feat(security): /treat/certify 레이트리밋 (게이트 OFF 기본)","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"31f4f8f3e3fc86628c73e44a1c819b90d61669f5","date":"2026-07-01T02:14:21+09:00","era":"B","subject":"feat(security): /treat/certify 폰/IP 레이트리밋 (신원 살포 남용 차단, 게이트 OFF 기본)","body":"certify는 비로그인 capability(altCode/agcCode) 공개 엔드포인트라 세션가드 불가(B2C·알림톡). 대신\n폰/IP 단위 레이트리밋으로 '남 명의 신원 살포' 남용을 막는다(조사 결론: certify 남용은 가드 아닌\n레이트리밋 레이어).\n\n★안전: RATE_LIMIT_CERTIFY_PER_MIN=0(기본)이면 무제한=동작 무변. >0 일 때만 활성 → 임계값은 운영자가\n실유저(가족 공유IP·재시도) 안 자르게 신중히 정해 켠다. Redis 장애 시 fail-OPEN(통과)=인프라 장애로\n실유저 안 막음. type-check + nest build 통과.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/treat/certify-rate-limit.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ce4019e96186fd077d4f6de0e0646ba4868e5cc","date":"2026-07-01T01:06:34+09:00","era":"B","subject":"Merge pull request #32 from insuniverse-com/fix/security-safe-batch","body":"fix(security): 보안 감사 안전수정 배치 (로그유출·SQLi·admin-view IDOR)","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55c4eaac59421a10dcbd56b3e0c6ab02836df734","date":"2026-07-01T00:02:08+09:00","era":"B","subject":"feat(security): admin-view IDOR 차단 토큰(C2) + disease 검색 SQLi 파라미터화","body":"C2(admin-view IDOR): admin-view/* 3개 컨트롤러는 cross-origin iframe이라 세션쿠키 못 싣어 순차 id로\n전회원 PII+진료 조회 가능했다. AdminViewTokenService(HMAC, scope+id+TTL 단명토큰)+AdminViewTokenGuard\n추가. admin(AdminJwtAuthGuard 보호)이 /admin-view-token으로 발급→iframe ?t= 전달→가드 검증.\n★무중단 롤아웃: ADMIN_VIEW_TOKEN_ENFORCE='true' 일 때만 차단, 그 전엔 경고 로그만(코드배포로 iframe\n안 깨짐). admin/site가 토큰 전달하는 것 확인 후 플래그 ON.\n\ndisease: buildFlatSearchCondition이 majorCode/keyword/name/searchText 등 사용자입력을 raw SQL 문자열\n보간하던 것(sql.raw로 실행)을 drizzle bound param(sql``)+sql.join으로 전면 전환. 동작 동일, 인젝션 차단.\n\ntype-check 통과. 서버 무중단(enforce 플래그 OFF 기본).","body_present":true,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.guard.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/admin-view-token/admin-view-token.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c3760627ce3a594302635cb75a36c7eec87ef09b","date":"2026-06-30T23:50:02+09:00","era":"B","subject":"fix(security): XFF IP 화이트리스트 JWT 우회 운영 비활성화","body":"x-forwarded-for는 클라이언트가 위조 가능(ALB는 append라 prod에선 이미 대부분 무력)한데, 특정 IP면\nJWT 검증 실패를 DEV_USER로 통과시키던 스푸핑 백도어. process.env.NODE_ENV !== 'production' 게이트로\n운영에선 비활성(개발/스테이징 편의만 유지). 운영은 정상 토큰 강제.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4bd1eadd541df7cdc0e297daa5a275b302e0a6e","date":"2026-06-30T23:47:49+09:00","era":"B","subject":"fix(security): 인증 SQLi 전수 파라미터화 (searchText/IN절/decryptQuery)","body":"회원검색 searchText가 sql.raw(`'%${searchText}%'`)로 원시보간되던 LIKE절 31곳(admin/sales-agency/\nagency-fc/log-b2c-treat/fc/order-detail/invoice/log-treat/user/alimtalk repo)을 drizzle bound param\n(`%${searchText}%`)으로 교체. AES_DECRYPT LIKE 검색에 인젝션 차단.\n\ninvoice insertHistory: requestedInvoices(dto) IN절을 sql.join bound param으로(문자열 보간 제거).\nfax decryptQuery 3곳: ivhName/AES키 원시보간(sql.raw)을 sql`` bound param으로(키 로그유출+인젝션 차단).\n\n전부 동작 무변(쿼리 결과 동일, 바인딩만). 인증된 admin 한정이라 H2급. type-check 통과.\n\n남음: disease buildFlatSearchCondition(keyword/code 원시보간)은 복잡한 UNION빌더라 별도 신중수정.","body_present":true,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bcb456afa6ef67341f3552f4122b69ab9a1e0254","date":"2026-06-30T23:33:05+09:00","era":"B","subject":"fix(security): 로그 PII/키 유출 차단 + 무인증 SQLi 방어 (안전수정)","body":"C4: order-detail.repository 가망고객 쿼리 디버그 console.log(query.toSQL()) 제거.\n    toSQL() params에 AES_SECRET(FN_DECRYPT 키)가 평문으로 찍혀 CloudWatch에 마스터키 유출되던 것 차단.\nC5: webclient 요청/응답 인터셉터에 redactHeaders/redactPII 추가. x-api-key·authorization·cookie\n    헤더 + 이름/주민/폰/생년/통신사 등 PII 필드를 *** 마스킹. certify 바디·엔진 api-key·진료응답이\n    평문 로깅되던 것 차단(비민감 필드는 유지 — 디버그 가치 보존).\nC3: analyze buildB2cWhereCondition에 asbDiseaseCode 형식 검증(^[A-Za-z0-9.-]+$) 추가. 비인증\n    admin-view 경로로 도달하는 sql.raw 인젝션 표면 차단(정상 KCD 코드는 전부 통과).\n\n전부 동작 무변 안전수정 — 쿼리 결과/인증 동작 동일, 로그 내용만 마스킹.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"libs/webclient/src/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b6dbdc6d631a3f9c30e78977e0795951f35c2b01","date":"2026-06-30T23:13:01+09:00","era":"B","subject":"feat(treat): 쿠콘 진료수집 바이패스(보상닥터 연동) prod 반영","body":"- 외부 파트너(보상닥터)용 쿠콘 진료수집 중계 API(/clients/coocon) — Basic Auth + 요청 봉투 패스스루 + client별 동시 슬롯(429)\n- coocon lib passthrough(우리 인증키 주입·외부 미노출, axios 동적 +30초) 포함","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/treat/coocon-bypass.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.mapper.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac548c8496b7adcf63faf3c273e88693da5b6aa3","date":"2026-06-30T23:09:26+09:00","era":"B","subject":"feat(treat): 진료공급자 라우팅·중지예약·웹훅 발송 + 모니터 집계 prod 반영","body":"- 라우팅 tprSort 우선순위(드래그 순서), 중지예약(graceful drain), 웹훅 구글챗 발송(종류별·30분 중복억제·복구)\n- 모니터 주요에러 주문기준 정합 등 stg 검증본을 진료 모듈만 선별 반영\n- 쿠콘 바이패스/coocon lib는 별개 미검증 변경이라 제외","body_present":true,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-alert.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2415a20d15d940606d1b9531497fd2651a349449","date":"2026-06-30T17:51:39+09:00","era":"B","subject":"fix(coocon): 인증류 TimeoutStep 30→120초 — 쿠콘 권고(통신사 지연 여유 확대), 수집은 300 유지","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e910fca5773911791ed7182aaa5d0f2df4dca442","date":"2026-06-30T15:26:21+09:00","era":"B","subject":"feat(treat-monitor): 모니터링 알림 구글챗 발송 — 종류별 체크 + 30분 중복억제","body":"- 모니터 경고(warnings)에 종류(type) 부여. 웹훅 설정에 발송할 종류(types) 저장(기본 전체)\n- TreatAlertService: 켠 종류의 위험 경고를 구글챗 incoming webhook으로 POST. 신규 30분 억제 + 복구 알림\n- analysis-status 스케줄러(5분)가 checkAndSend 호출(새 스케줄러 불필요). URL 미설정 시 무동작\n- 웹훅 설정 API를 URL+종류로 확장(+종류 카탈로그 제공)","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat-alert.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e5f6ea3f085789ee508c70c48e54b68fddcb6ac","date":"2026-06-30T14:46:21+09:00","era":"B","subject":"fix(treat-monitor): 업체별 주요에러를 주문 최종실패 기준으로 통일 (실패수=에러합)","body":"- 주요에러 집계를 log_treat 호출 단위 → 주문(order) 최종 실패 사유 기준으로 변경.\n  provStat 실패와 동일 WHERE라 Σ에러 = 실패 수가 정합(검증 29=29). 재시도·탈주로 어긋나던 문제 해소\n- 실패 주문 사유 = 마지막 2차 실패코드(odd_transaction_id 매칭), 없으면 상태로 합성(AUTO-INCOMPLETE/AUTO-COLLECT-FAIL)\n- 2차 로그(createTreatLog)도 주문 분석번호로 연결 → 자체엔진 사유가 AUTO로 뭉치지 않고 INH-2002/E0304 분리","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ebbafca56deba06a8a0be426b17cb0a826c9fff","date":"2026-06-30T14:46:21+09:00","era":"B","subject":"fix(treat-monitor): 업체별 주요에러를 주문 최종실패 기준으로 통일 (실패수=에러합)","body":"- 주요에러 집계를 log_treat 호출 단위 → 주문(order) 최종 실패 사유 기준으로 변경.\n  provStat 실패와 동일 WHERE라 Σ에러 = 실패 수가 정합(검증 29=29). 재시도·탈주로 어긋나던 문제 해소\n- 실패 주문 사유 = 마지막 2차 실패코드(odd_transaction_id 매칭), 없으면 상태로 합성(AUTO-INCOMPLETE/AUTO-COLLECT-FAIL)\n- 2차 로그(createTreatLog)도 주문 분석번호로 연결 → 자체엔진 사유가 AUTO로 뭉치지 않고 INH-2002/E0304 분리","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a256b5ebd066056e70aa998894a6b41ba4baa13","date":"2026-06-30T13:55:01+09:00","era":"B","subject":"feat(treat-provider): 모니터링 알림 웹훅 URL 설정 API","body":"- tn_treat_setting에 monitor_webhook_url 저장(자동차 설정과 동일 key-value 패턴 재사용)\n- GET/PATCH /admin/treat-provider/config/webhook (빈 값=알림 비활성)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc76cbe83cc0d416df8843dce771d086de23913c","date":"2026-06-30T13:41:59+09:00","era":"B","subject":"feat(treat-provider): 중지예약(graceful drain) 상태 지원","body":"- tprEnabled에 중지예약(2) 허용(@Max 1→2). 디스패처는 enabled=1만 풀에 포함하므로\n  2는 신규 배정 자동 차단, 진행 중 건은 jti sticky로 끝까지 완료 → 데이터 끊김 없는 graceful drain","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e9b61facd91aa5e582da8b495d033a39fda8c130","date":"2026-06-30T13:24:24+09:00","era":"B","subject":"refactor(coocon): 바이패스 passthrough에서 TimeoutStep/Runtime 주입 제거 — 호출측 봉투 자율, axios만 동적으로 +30초","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"90b878fbba33b76ebb1c43e743a36f30ad59cd6f","date":"2026-06-30T13:15:53+09:00","era":"B","subject":"feat(treat): 진료공급자 라우팅을 tprSort 우선순위 기준으로 전환","body":"- 디스패처 풀 정렬을 단가 오름차순 → tpr_sort 오름차순(동순위는 단가 tiebreaker)으로 변경\n  → 관리자 순서변경(tpr_sort)이 라우팅 우선순위에 직접 반영. 자체엔진(sort=-1) 최우선 라우팅\n- repository findEnabledPool/findAll, ProviderPoolEntry/envPool에 sort 반영\n- 모니터 공급자 표시 순서도 tpr_sort 우선으로 통일 → 라우팅 순서와 화면 순서 일치","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"199d5259f7bd11df15dc50fbe21c7a2197a89ab6","date":"2026-06-30T12:23:51+09:00","era":"B","subject":"feat(treat-monitor): 1차 인증 완주율·이탈 지표 추가","body":"- 1차 성공률은 CF-03002(SMS 발송 도달) 기준이라 거의 100%로 떠 인증 완료처럼 착시된다.\n  발송 후 실제 2차 도달 비율(completionRate)과 중도 이탈수(dropout)를 cert1Providers에 추가\n- smsSent/entered2nd/completionRate/dropout 노출 → 발송≠완주 구분","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"879b17087ae4a0fc2bdfe84621c5d1f62ab22503","date":"2026-06-30T12:23:51+09:00","era":"B","subject":"feat(treat-monitor): 1차 인증 완주율·이탈 지표 추가","body":"- 1차 성공률은 CF-03002(SMS 발송 도달) 기준이라 거의 100%로 떠 인증 완료처럼 착시된다.\n  발송 후 실제 2차 도달 비율(completionRate)과 중도 이탈수(dropout)를 cert1Providers에 추가\n- smsSent/entered2nd/completionRate/dropout 노출 → 발송≠완주 구분","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1115721f7cfa646c474840808f2c73c3c1d109c3","date":"2026-06-30T12:10:47+09:00","era":"B","subject":"fix(treat-monitor): 카드·그래프 실패 개수 불일치 + 탈주 미가시 수정","body":"- 업체별 성공/실패 집계 시간기준을 odd_updated_at → 처리시점(완료=odd_completed_at/실패=odd_failed_at)으로 통일\n  → 카드(provStat)·그래프(trend)·throughput이 동일 모집단을 보게 되어 개수 불일치 해소\n- 탈주(1차 인증 후 SMS 미입력 이탈→자동실패)를 '인증 미완료' 합성코드로 주요에러·1차실패에 합산\n  → log_treat에 실패코드가 없어 누락되던 건을 가시화, 실패수와 에러합 괴리 해소","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7621cccc5dd2b7840cbb1f9513454c5f78010ca9","date":"2026-06-30T12:10:47+09:00","era":"B","subject":"fix(treat-monitor): 카드·그래프 실패 개수 불일치 + 탈주 미가시 수정","body":"- 업체별 성공/실패 집계 시간기준을 odd_updated_at → 처리시점(완료=odd_completed_at/실패=odd_failed_at)으로 통일\n  → 카드(provStat)·그래프(trend)·throughput이 동일 모집단을 보게 되어 개수 불일치 해소\n- 탈주(1차 인증 후 SMS 미입력 이탈→자동실패)를 '인증 미완료' 합성코드로 주요에러·1차실패에 합산\n  → log_treat에 실패코드가 없어 누락되던 건을 가시화, 실패수와 에러합 괴리 해소","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffaa56dfb634b538701c448da9830aeece1ce451","date":"2026-06-30T09:55:22+09:00","era":"B","subject":"fix(treat): 자체엔진 탈주건이 진료 모니터링 집계에서 누락되는 문제 수정","body":"- 1차 인증 응답에 transactionId 없으면(자체엔진 등 다건) codef에 fallback ID 1회 주입\n  → log_treat(1차)와 tn_order_detail이 같은 분석번호를 공유, 주문↔호출 추적 단절 해소\n- 자동실패(인증/분석 미완료) 정산 시 odd_failed_at 기록\n  → 모니터 처리량·실패 집계가 odd_failed_at 기준이라 미기록 시 탈주건이 통째로 누락되던 문제 해결","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b87f7688ff2ecb0937f24fed917fb097ddafff0","date":"2026-06-30T10:27:17+09:00","era":"B","subject":"fix(coocon): 바이패스 passthrough에 TimeoutStep/Runtime 주입 — 인증30/수집300 (8000F101 정책 일관)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4fe89f60830be5cf1455d6eb0efb4d4107d07265","date":"2026-06-30T09:55:22+09:00","era":"B","subject":"fix(treat): 자체엔진 탈주건이 진료 모니터링 집계에서 누락되는 문제 수정","body":"- 1차 인증 응답에 transactionId 없으면(자체엔진 등 다건) codef에 fallback ID 1회 주입\n  → log_treat(1차)와 tn_order_detail이 같은 분석번호를 공유, 주문↔호출 추적 단절 해소\n- 자동실패(인증/분석 미완료) 정산 시 odd_failed_at 기록\n  → 모니터 처리량·실패 집계가 odd_failed_at 기준이라 미기록 시 탈주건이 통째로 누락되던 문제 해결","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eed6bf4f53ee66095d6c3a3b349014ef33839c1b","date":"2026-06-30T02:00:19+09:00","era":"B","subject":"feat(treat): 쿠콘 진료수집 바이패스(보상닥터) — Basic Auth + 봉투 패스스루 + 동시 슬롯","body":"POST /clients/coocon/scrap. ClientBasicAuthGuard(tn_client CODE:PASS) 인증.\n외부가 보낸 쿠콘 봉투를 Auth_key 주입(미노출) 후 게이트웨이로 패스스루.\n본인인증(세션시작) 시 client별 동시 슬롯(coocon-bypass:{code}) TTL 예약, 초과 429.\ntreat 추상화 바이패스(x-b2c-api-key)는 revert, 쿠콘 Job 패스스루로 전환.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/coocon-bypass.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ebb6f78e20f6ac7cfba0df806b843da344be42c4","date":"2026-06-30T01:55:10+09:00","era":"B","subject":"Revert \"feat(treat): 보상닥터 B2C 바이패스 — API키 인증 + 동시 슬롯 제한\"","body":"This reverts commit 39aaecf314880a52faf7dcd27137dd3c221d5243.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d303c4eb1c233641e9451db0c95f87d6b0a13b2f","date":"2026-06-30T01:53:32+09:00","era":"B","subject":"fix(treat-monitor): 에러코드 카탈로그에 inhouse(자체엔진) 누락 추가","body":"vendorErrorCatalog의 벤더 목록(ORDER)에 inhouse가 빠져 자체엔진 에러코드가\n화면에 표시되지 않던 문제 수정. inhouse는 운영 주력이라 포함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc434d31f87c88c8fa9258f617bb30c94fd81b30","date":"2026-06-30T01:53:32+09:00","era":"B","subject":"fix(treat-monitor): 에러코드 카탈로그에 inhouse(자체엔진) 누락 추가","body":"vendorErrorCatalog의 벤더 목록(ORDER)에 inhouse가 빠져 자체엔진 에러코드가\n화면에 표시되지 않던 문제 수정. inhouse는 운영 주력이라 포함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"026ec5a927e985bfb1d014e8bbb0e7aff29425b4","date":"2026-06-30T00:37:55+09:00","era":"B","subject":"chore(treat-error): prod 실측 에러코드 현행화","body":"30일 미매핑 코드 추가: E0304(공통 타임아웃)·80002E25·8000D825·APP00005·\nLBS00009·1000906·CF-99999. E0304는 NETWORK_ERROR로 분류해 폴백 대상에 포함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"550d08c111e43a8c1ae29283a5607e094113112b","date":"2026-06-30T00:37:55+09:00","era":"B","subject":"fix(treat-monitor): 업체별 성공률에 자료수집실패(ODD008) 누락 수정","body":"공급자별 성공/실패 집계와 추세 그래프 fail에 ODD008(자료수집실패)이 빠져\n자료수집 실패가 통째로 누락되고 성공률이 거짓으로 높게 표시되던 문제 수정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53597815fc96bf91fa5930c5eff519dd10bf268c","date":"2026-06-30T00:37:55+09:00","era":"B","subject":"chore(treat-error): prod 실측 에러코드 현행화","body":"30일 미매핑 코드 추가: E0304(공통 타임아웃)·80002E25·8000D825·APP00005·\nLBS00009·1000906·CF-99999. E0304는 NETWORK_ERROR로 분류해 폴백 대상에 포함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c71e04808945372162c6e84211a48ed93508f214","date":"2026-06-30T00:37:55+09:00","era":"B","subject":"fix(treat-monitor): 업체별 성공률에 자료수집실패(ODD008) 누락 수정","body":"공급자별 성공/실패 집계와 추세 그래프 fail에 ODD008(자료수집실패)이 빠져\n자료수집 실패가 통째로 누락되고 성공률이 거짓으로 높게 표시되던 문제 수정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39aaecf314880a52faf7dcd27137dd3c221d5243","date":"2026-06-30T00:22:48+09:00","era":"B","subject":"feat(treat): 보상닥터 B2C 바이패스 — API키 인증 + 동시 슬롯 제한","body":"altCode로 외부서비스 식별, X-B2C-Api-Key 헤더 검증, 동시 슬롯(b2c:bosangdr) TTL 제한.\nenv(B2C_BOSANGDR_*) 미설정 시 비활성(안전). 본 서비스 슬롯과 격리, 쿠콘키 미노출.\n슬롯 즉시해제(settle)는 2단계, 현재는 TTL 자동만료로 동시건수 보장.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d1db562827c9a081a2352972da5eb0f4f639718","date":"2026-06-29T22:14:51+09:00","era":"B","subject":"feat(coocon): 쿠콘 구간 타임아웃(TimeoutStep) Job별 차등 + 단계별 소요 로그","body":"인증류 30초 / 수집(진료조회) 300초. 무거운 건이 구간 디폴트 30초에 끊겨\n8000F101(300초 도달분) 나던 것 완화. job-elapsed 로그로 단계별 소요 측정.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.interface.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"edaf659311848702e3a587e5125caeb59eeffbee","date":"2026-06-29T21:58:17+09:00","era":"B","subject":"fix(coocon): 인증류 TimeoutStep 12→30초 — 검증된 디폴트값(통신사 지연 여유), 수집은 300초 유지","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ebbbca0e03d5349b59a6c8544ba733e00b379ab","date":"2026-06-29T21:44:45+09:00","era":"B","subject":"feat(coocon): TimeoutStep Job별 차등 — 인증류 12초 / 수집(진료조회) 300초","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2093c480e36783a9b075d391ef6a1b82816ae7f","date":"2026-06-29T20:18:34+09:00","era":"B","subject":"fix(hyphen): HyphenModule에 TreatProviderModule import — split DI 누락 수정","body":"hyphen 분할 배포 시 HyphenService가 TreatProviderRepository(findSplitCount)를\n주입받는데 모듈에 미연결돼 기동 크래시(exit 1)났던 것 수정. coocon/stg와 동일하게\nTreatProviderModule import.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/hyphen/src/hyphen.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bea7c228554a3a791ed7f3864bb4194ab7243b05","date":"2026-06-29T20:08:58+09:00","era":"B","subject":"feat(treat): 하이픈 수집분할(split_count) 운영 적용 — 자동차(B0003) 제외","body":"검증된 stg 분할 구현(collectTreat 구간 순차수집 + cookieData 체이닝 + mergeTreatment)\n이식. 자동차 호출 블록만 제거(collectTreat CAR 분기는 미호출 dead path 보존).\nprod tpr_split_count(hyphen=2)에 따라 조회기간 N등분 수집·병합 — B0002-999 자료과다 완화.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"libs/hyphen/src/hyphen.mapper.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"94ae0effdadf5f7137c10dcb2d7716ef03bb4e1a","date":"2026-06-26T14:50:16+09:00","era":"B","subject":"fix(treat): 하이픈 exeTimeout 300초(5분)·axios 330초로 상향","body":"자료 과다 유저 수집시간 확보. 인포텍 실행 타임아웃(exeTimeout)을 5분으로,\n응답 왕복 여유를 위해 우리 axios는 330초로 설정(exeTimeout < axios 유지).\ntreat-test 하네스 기본값·http 타임아웃도 동일 적용.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/http.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/hyphen.vendor.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdbb514e247a30e34a2745e75a30cc356f0e76c1","date":"2026-06-26T09:45:55+09:00","era":"B","subject":"feat(treat): 하이픈 exeTimeout 전송 — 자료과다 수집 세션 조기종료(B0002-999) 완화","body":"인포텍 게이트웨이 실행 타임아웃(초)을 요청 바디 exeTimeout으로 명시 전송.\n미설정 시 240초(axios 300초 내 버퍼). HYPHEN_EXE_TIMEOUT env로 조정,\ntreat-test 하네스는 per-call(input.exeTimeout) 오버라이드 지원.","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/config/profiles.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/hyphen.vendor.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/types.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d9224f578b0694490943a16573f99e6f12a98b19","date":"2026-06-29T18:06:50+09:00","era":"B","subject":"test(coocon): [stg 실증] TimeoutStep 12초로 끊기는지 검증","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6fe4d01399d69cd34752c325c992fdf594a4812","date":"2026-06-29T17:59:12+09:00","era":"B","subject":"chore(coocon): Job별 호출 소요시간 로그 추가 — 단계별(본인인증/OTP/진료조회) 타임아웃 분석용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40b0b59da54b2f7926407687d5222c425c5c14f8","date":"2026-06-29T16:45:29+09:00","era":"B","subject":"fix(coocon): TimeoutStep 120→300초 — 수집 Step 타임아웃을 전체와 동일하게","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a4d24f592b76ec60d58592c248aa2ca68301f6e9","date":"2026-06-29T16:26:22+09:00","era":"B","subject":"feat(coocon): 구간 타임아웃(TimeoutStep) 120초 추가 — 8000F101 완화","body":"가이드 1.0.3 신규필드. 미입력시 구간 30초로 무거운 Step이 끊겨 8000F101 유발 → 120초로 상향","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.interface.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0cee55c52cae15faca063a2c33846242705a9b0f","date":"2026-06-27T20:28:30+09:00","era":"B","subject":"fix(treat): prod 자동차 토글에 자동차 로그 carEnabled 조건 반영 + 진단로그 없음","body":"stg 검증 완료분 반영: 자동차 로그(CAT002) 적재도 carEnabled로 감싸 토글 OFF시\nCAT002 미생성. 외부벤더 .service는 prod 원본(건강만) 유지, seed '0'.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c3bc27dba0220fc91149013a5aece04ed07b5e5","date":"2026-06-27T20:26:58+09:00","era":"B","subject":"chore(treat): 자동차 토글 진단 로그 제거 + dockerfile 캐시버스터 원복","body":"원인 확정(자동차 로그 적재 carEnabled 무관 → 수정 완료) 후 [car-probe]/[probe3]\n임시 로그 6곳 제거. 캐시 문제 아니었으므로 dockerfile RUN 원복.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2182ea2196d9477667115256a3681eb01a134dd0","date":"2026-06-27T20:16:17+09:00","era":"B","subject":"fix(treat): 자동차 로그(CAT002) 적재도 carEnabled 조건으로 — 토글 OFF인데 자동차 나가던 근본","body":"isCarEnabled/treatItems는 정상 동작(자동차 미전송)이었으나, event-handler가 자동차 로그를\ncarEnabled 무관하게 항상 적재해 CAT002(미수집) 슬롯이 남아 자동차가 나간 것처럼 보였다.\nhandler.treat·handlerB2cTreat 둘 다 로그 적재를 carEnabled로 감쌈.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4ee1c219feb926269a325cec04cc80aa176c1710","date":"2026-06-27T19:59:50+09:00","era":"B","subject":"chore(treat): treatItems 진단로그(probe3) + CI cache 복원","body":"isCarEnabled는 정상 동작(carEnabled=false 확인)인데 CAT002가 나가는 원인 추적용.\n캐시 문제 아니었음(로그 필터 오류였음) → no-cache 롤백.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e5413f24891da0fe3d80e1fb3da00ec52cbb05e","date":"2026-06-27T19:40:46+09:00","era":"B","subject":"fix(ci): docker no-cache로 완전 클린 빌드 — GHA 캐시가 옛 nest build를 계속 배포하던 문제","body":"캐시버스터(echo)로도 안 잡혀 cache-from/to를 제거하고 no-cache:true 적용.\nhandlerTreat의 isCarEnabled(자동차 토글)가 stg에 안 떠 토글 OFF가 무시되던 근본 원인.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d73a9ef87fdd1ed377947c98dd44754a28ab0f2","date":"2026-06-27T19:26:02+09:00","era":"B","subject":"fix(ci): nest build 레이어 캐시버스터 — GHA docker 캐시가 소스 변경을 배포 안 하던 문제","body":"isCarEnabled(자동차 토글) 코드가 빌드는 됐으나 stg 컨테이너엔 옛 코드가 떠\n토글 OFF가 안 먹던 문제. RUN build 명령에 캐시버스터를 넣어 강제 재빌드.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"580e31b6f9becb321704815830e68e0becc53a39","date":"2026-06-27T18:58:16+09:00","era":"B","subject":"chore(treat): 자동차 분기 진단 로그 4곳(임시) — isCarEnabled false인데 자동차 나가는 경로 추적","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07ab7ae8261f85aff08385a22a02ce9f6877529e","date":"2026-06-27T17:28:51+09:00","era":"B","subject":"fix(treat): 자동차 토글 캐시 제거 — OFF 즉시 반영 (stale 캐시로 자동차 계속 나가던 버그)","body":"isCarEnabled 15초 캐시가 OFF 후에도 stale ON을 유지해 자동차가 계속 수집되던 문제.\n진료조회당 1~2회뿐이라 매번 DB 조회해도 부하 미미. 캐시 제거로 토글 즉시 반영.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd0c911171cc871ad1fb676cf4caed8a8fdfbe04","date":"2026-06-27T17:13:58+09:00","era":"B","subject":"chore(treat): isCarEnabled 진단 로그(임시) — 토글 OFF인데 자동차 나가는 원인 추적","body":"stg에서 자동차 OFF(enable_treat_car=0)인데 hyphen 자동차가 나가는 현상.\ngetSetting 값·enabled 결과를 로깅해 폴백/캐시/경로 중 원인 확정. 확정 후 제거.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1aaa2ba0c4b5a1bfdc9dcc116dec952579206dc9","date":"2026-06-27T16:50:36+09:00","era":"B","subject":"feat(treat): 자동차 수집 토글 + 하이픈 수집분할 (prod 선별 — 외부벤더 자동차 제외)","body":"prod 운영용으로 자동차 토글/수집분할만 선별 적용:\n- 자동차 수집 전체 ON/OFF 어드민 토글 (env→DB, tn_treat_setting + GET/PATCH config/car)\n- enableTreatCar를 DB(TreatProviderService.isCarEnabled) 기반으로 전환\n- 외부벤더(octover/hyphen/coocon) .service 자동차 호출 코드는 미포함(prod 원본 건강만 유지).\n  외부 codef 벤더는 자동차 2차 세션이 1000032/I0001-010로 불가 → 자동차는 inhouse(자체엔진) 전용.\n- seed enable_treat_car='0' (자동차 OFF 시작). 토글 ON은 inhouse 자동차 준비 후.","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0012_treat_setting.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"79523e03e73a2f6bf7b7b38f7884ff97dd8f7666","date":"2026-06-27T15:51:34+09:00","era":"B","subject":"feat(treat): 자동차보험 수집 전체 ON/OFF 어드민 토글 (env→DB)","body":"자동차 수집 on/off를 env(ENABLE_TREAT_CAR)에서 DB(tn_treat_setting)로 이전.\n운영 중 어드민 진료공급자 설정에서 즉시(~15초 캐시) 전 벤더 자동차 차단/복구.\n- tn_treat_setting 전역설정 테이블(key-value) + enable_treat_car seed (0012 마이그레이션)\n- TreatProviderService.isCarEnabled()로 일원화(DB 우선, env 폴백)\n- treat.service/event-handler 4곳을 DB 기반 비동기로 전환\n- GET/PATCH /admin/treat-provider/config/car 관리자 API","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0012_treat_setting.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3f117f71c02776e3263e1bee5a6f1aaf21c5326","date":"2026-06-27T15:23:28+09:00","era":"B","subject":"chore(octover): 자동차 세션종료 진단 로깅 제거 — 06-26 순수 체인 로직만 유지","body":"원인 확정(octover 측 06-27 정책변화로 자동차 2차 1000032, 벤더 문의 진행) 후\n[octover-probe] 임시 진단 로깅을 제거한다. octover.service는 06-26까지\n정상 동작하던 순수 체인 로직 상태로 정리됨.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be68743215f079ad6590ee08695867c3a2beacec","date":"2026-06-27T14:45:12+09:00","era":"B","subject":"revert(octover): 자동차 세션종료 회피 시도 되돌림 — 06-26 순수 체인 로직 복원","body":"ee605239(encInput 체이닝)·75a8eb04(AB001 단독호출) 둘 다 1000032/1000101로\n효과가 없어 제거한다. 자동차도 건강과 동일하게 phoneVerifyResult+AB001 체인으로\nencInput을 재사용하는 06-26까지 정상 동작하던 로직으로 복원. octover 측 회복\n여부 재확인용. 진단 로깅은 결과 확인 위해 유지.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75a8eb04f554d6c9a0fd86a7bce043749e7e1866","date":"2026-06-27T14:22:29+09:00","era":"B","subject":"fix(octover): 자동차 AB001 단독 호출로 1000032 세션종료 회피","body":"06-27부터 octover가 encInput을 1회용으로 처리해, 건강 2차에서 인증을 소비하면\n자동차 2차의 phoneVerifyResult 재인증이 1000032(세션종료)로 실패했다.\n자동차는 건강에서 본인인증이 이미 확정되었으므로 phoneVerifyResult를 빼고\nAB001만 단독 호출한다(문서 methods:[AB001] 단독 샘플 근거). 건강은 종전 체인 유지.\n진단 로깅은 결과 확인 위해 잠정 유지(확정 후 제거).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb08628989921b7b72bb3de7271832ed5d17d292","date":"2026-06-27T14:12:36+09:00","era":"B","subject":"feat(hyphen): 수집분할(split_count) 지원 — 관리자 진료공급자 설정 적용","body":"coocon에만 있던 기간 N등분 순차수집을 hyphen에 이식. 건강(B0002)만 분할\n(자동차 B0003은 데이터 적어 1회). 구간 간 cookieData 세션 체이닝 유지(세션종료 회피),\n한 구간 실패=전체실패(완전성), Treatment 3배열 병합. split=1이면 기존 동작 동일.\n관리자 tn_treat_provider.split_count로 hyphen도 설정 가능(octover는 세션 한계로 추후).\n- providerRepo.findSplitCount('hyphen'), splitRanges/mergeTreatment 추가\n- DTO 주석 coocon→coocon/hyphen. 타입체크/테스트 8 통과","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3d57a13a10015a88b87be4325f84fb63ff029c15","date":"2026-06-27T14:05:25+09:00","era":"B","subject":"chore(octover): 1000032 세션종료 원인 진단용 응답필드 로깅(임시)","body":"06-27부터 octover 2차 encInput 재사용이 1000032(세션종료)로 거부됨.\nhyphen은 cookieData 체이닝으로 회복했으나 octover는 미해결. 1차 phoneVerify와\n2차 응답의 세션 토큰 후보를 키·타입·길이로만 로깅(값 마스킹, PII 노출 0)해\n재사용할 올바른 세션값을 찾는다. 원인 확정 후 제거 예정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee605239e54e1408109951b6fab7de0af4213262","date":"2026-06-27T12:51:16+09:00","era":"B","subject":"fix(octover): 자동차(insureType=1) 세션종료(1000032) 회피 — encInput 체이닝(방어적)","body":"octover도 건강·자동차가 같은 encInput 재사용 → 건강이 세션 소진 → 자동차에서\n'타깃사이트와 세션이 종료'(1000032) 발생(stg 실측 6/27). 건강 응답 로그인노드의\n갱신 encInput을 자동차 호출에 주입(있으면)해 세션 유지 시도. 미제공 시 기존 동작 동일(무해).\nhyphen(cookieData 문서명확)과 달리 octover는 갱신 메커니즘 불명확 → stg 실호출 검증 필요.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6dab076791f69b827c8b6e6ea640440a7063b7e5","date":"2026-06-27T12:31:04+09:00","era":"B","subject":"fix(hyphen): 자동차(B0003) 세션종료(I0001-010) 수정 — cookieData 체이닝","body":"hyphen은 조회마다 갱신되는 cookieData를 다음 호출에 넘겨야 세션 유지(서비스정의서).\n기존엔 1차 세션(step_data/userData)만 재사용 → 건강(B0002)이 세션 소진 → 자동차(B0003)에서\n'이미 완료된 요청/세션 종료'(I0001-010) 발생(stg 실측 6/27).\n- showCookie=Y로 응답 cookieData 수신\n- 건강 응답 cookieData를 자동차 호출 세션에 주입(체이닝)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3acb6b91970fcafa170cd980564cde52e5d1331","date":"2026-06-26T15:53:55+09:00","era":"B","subject":"feat(inhouse): 자동차보험 진료 수집 복구 — env 게이트 + 자동차 전용 필드 alias","body":"- INHOUSE_CAR_ENABLED=1일 때만 diagAuto 통과(stg 검증용). prod는 미설정→OFF 유지로\n  자동차+건강 동의 고착(71250931) 재발 방지. 엔진도 INHOUSE_ENABLE_AUTO=1 필요.\n- normalizeTreatment 자동차 전용 alias(isAuto): resVisitDays→resTreatDate,\n  resPublicCharge→resMedicalFee. octover/hyphen/coocon 3벤더 표준과 동일\n  (진료일수=resTreatDate, 자동차보험총진료비=resMedicalFee=혜택받은금액, 청구진료비=resTotalAmount).\n  건강(isAuto=false)엔 미적용해 레코드 청결.\n- inhouse 첫 단위테스트(자동차 매핑 5건) 추가.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"A","path":"libs/inhouse/src/inhouse.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5444901ba470af3e28a01b8f3edb5facd4a46a7f","date":"2026-06-26T15:37:03+09:00","era":"B","subject":"feat(treat): octover/hyphen/coocon 자동차보험 진료 수집 매핑 (자체엔진 제외)","body":"3벤더 자동차 매핑을 최신 stg 위에 적용. 소비부(createCarTreat·toNum 가드)·\n분석·호출부는 stg에 이미 존재. 자체엔진(inhouse) 자동차는 별도 진행.\n- octover: AB001 insureType=1 / hyphen: B0003 / coocon: 보험종별=2\n- 자동차총진료비=혜택받은금액(보험부담분), 진료일수 매핑. 단위테스트 26 통과\n- 문서 근거: 자동차보험_연동계획.md 섹션 8","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"libs/coocon/src/coocon.mapper.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"675e4ae2fbbfef9fdc88a0390f201bf40661bf42","date":"2026-06-26T14:50:16+09:00","era":"B","subject":"fix(treat): 하이픈 exeTimeout 300초(5분)·axios 330초로 상향","body":"자료 과다 유저 수집시간 확보. 인포텍 실행 타임아웃(exeTimeout)을 5분으로,\n응답 왕복 여유를 위해 우리 axios는 330초로 설정(exeTimeout < axios 유지).\ntreat-test 하네스 기본값·http 타임아웃도 동일 적용.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/http.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/hyphen.vendor.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02a60c88422eaf39f08a71433c2765427fa769f5","date":"2026-06-26T11:15:34+09:00","era":"B","subject":"fix(treat): 디스패처 안전 — CF-12001 분류 + Redis장애 rate 폴백","body":"- CF-12001(sticky 2차 공급자 없음) AUTH_TIMEOUT→VENDOR_ERROR:\n  유저에게 \"기관오류 재시도\"(retryable) 안내 → 1차부터 재시도해 다른 벤더로 완주 가능.\n  인증타임아웃 오분류 정정. 실유저 인증흐름 무변경(에러 분류만).\n- rateAllow Redis 장애 시 true→false: rate_enabled 공급자(현재 octover)를\n  BUSY→폴백시켜 분당한도 초과(429) 예방. inhouse는 rate_enabled=0이라 무관.\n  reserve는 가용성 우선 유지. Redis 정상 시 동작 무변경.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d99015dd936f5bb31904db32c9386d37550e115d","date":"2026-06-26T09:45:55+09:00","era":"B","subject":"feat(treat): 하이픈 exeTimeout 전송 — 자료과다 수집 세션 조기종료(B0002-999) 완화","body":"인포텍 게이트웨이 실행 타임아웃(초)을 요청 바디 exeTimeout으로 명시 전송.\n미설정 시 240초(axios 300초 내 버퍼). HYPHEN_EXE_TIMEOUT env로 조정,\ntreat-test 하네스는 per-call(input.exeTimeout) 오버라이드 지원.","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/config/profiles.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/hyphen.vendor.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat-test/vendors/types.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d0a7ef207fa294082c5db8dc362c3e70ed79505a","date":"2026-06-25T16:13:07+09:00","era":"B","subject":"feat(treat): inhouse 엔진 로그 상관키(traceId)+단계 로그 추가","body":"prod 카나리 사후분석에서 엔진 sessionId↔주문(odd/ord)을 시각 추론으로\n손매칭해야 했던 관측 갭 해소.\n\n- TreatmentMultipleItemDto에 optional traceId(주문ID) 추가 — 외부 벤더 무시\n- certify/treat 요청에 traceId 실어 엔진 로그(trace=)와 직접 조인\n- InhouseService 1·2차 단계 로그(trace↔session↔결과코드) 추가\n\n라우팅·예약·폴백·수집 로직 불변, 순수 관측. traceId 미전달(B2C 등)은\nundefined로 안전 통과(하위호환).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c556c5b78b0be6ef4b9015f0b8851eba539bccf9","date":"2026-06-24T17:49:25+09:00","era":"B","subject":"fix(auth): 중복 _aT 쿠키 중 유효 토큰 선택으로 로그인 직후 튕김 해결","body":"옛 만료 _aT(다른 path/속성으로 잔존)가 새 _aT와 공존하면 Cookie 헤더에\n_aT가 2개 실리는데, cookie-parser는 첫 번째(옛 만료)만 담아 서버가 만료\n토큰을 읽고 401 → 로그인 직후 메인 API 전부 튕김(prod 로그 실측).\n\ngetAuthTokenCandidates로 raw Cookie의 모든 _aT + Authorization 헤더를\n후보로 추출하고, 가드가 verify 성공하는 토큰을 선택. 정상 환경은 첫 후보가\n바로 유효해 영향 없음(하위호환).","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/helpers/cookie.helper.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/cookie.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6de8cf4803a26f77ff258a7d3d2d23fb27ed86b","date":"2026-06-24T17:49:25+09:00","era":"B","subject":"fix(auth): 중복 _aT 쿠키 중 유효 토큰 선택으로 로그인 직후 튕김 해결","body":"옛 만료 _aT(다른 path/속성으로 잔존)가 새 _aT와 공존하면 Cookie 헤더에\n_aT가 2개 실리는데, cookie-parser는 첫 번째(옛 만료)만 담아 서버가 만료\n토큰을 읽고 401 → 로그인 직후 메인 API 전부 튕김(prod 로그 실측).\n\ngetAuthTokenCandidates로 raw Cookie의 모든 _aT + Authorization 헤더를\n후보로 추출하고, 가드가 verify 성공하는 토큰을 선택. 정상 환경은 첫 후보가\n바로 유효해 영향 없음(하위호환).","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/helpers/cookie.helper.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/cookie.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8a539c9b615d829dd630117902997be6b7d78d8","date":"2026-06-24T14:30:02+09:00","era":"B","subject":"fix(alimtalk): 구독 해지여도 이용종료일 전이면 초대링크 사용 허용","body":"해지는 '이용종료일까지 쓰고 이후 미갱신' 의미이므로 해지 여부 자체는 차단\n사유가 아니다. 구독상태 해지 단독 차단을 제거하고 이용종료일(subNextPayDay)\n경과만으로 판정하도록 변경. (기획 피드백 반영)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c9a6a5837519ba885fe9a439412d518717bdb1c2","date":"2026-06-24T10:34:04+09:00","era":"B","subject":"feat(alimtalk): 초대링크 진입 즉시(checkAlimtalk) 만료 판별 추가","body":"- check/:altCode 응답에 inviteExpired 추가 (isInviteExpired = validateInviteAccess 재사용)\n- 프론트가 링크 클릭 즉시 '접근 기간 만료' 화면으로 보낼 수 있게 (인증요청 시점 차단은 유지)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f2f84a3767f4a7e8f46a3f1e5518fe810a01dc3","date":"2026-06-23T17:30:16+09:00","era":"B","subject":"fix: getAdminDetail 의도외 필드 제거 — 초대링크 검사는 getDetail에만 (범위 정리)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d8f6b2683634b5cd55fe2ba433ac6ef0a168be36","date":"2026-06-23T17:00:13+09:00","era":"B","subject":"feat(treat): 초대링크 접근 검사에 회원탈퇴/계정중지·기업접근차단 추가","body":"- memIsResigned(일반 탈퇴 = 기업 계정중지, 동일 컬럼) 차단\n- agcDeliquent(기업 접근차단/불량기업) 차단\n- getDetail에 두 필드 select 추가, 단위테스트 9건","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2db63b18b8862a45a72bd07ec232114639925616","date":"2026-06-23T16:33:32+09:00","era":"B","subject":"feat(treat): 초대 알림톡 링크 분석시작 시 접근 유효성 검사 추가","body":"- certify 진입에 validateInviteAccess 호출(발송 시점만 검사하던 누락 보완)\n- 구독종료일(sub_next_pay_day)+구독상태+분석건수+결제로 판정, ord_expired_at은 미사용\n  (ord_expired_at은 구독 갱신과 불일치해 구독 유효 고객 7천여건 오차단 위험)\n- 차단 시 EXPIRED_ACCESS_LINK(E0214) → 프론트 '접근 기간 만료' 화면\n- getDetail에 sub_next_pay_day 추가, 단위테스트 7건","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e1827fb72b46daa18a0fc986bf07b90591a1a4b5","date":"2026-06-24T14:30:02+09:00","era":"B","subject":"fix(alimtalk): 구독 해지여도 이용종료일 전이면 초대링크 사용 허용","body":"해지는 '이용종료일까지 쓰고 이후 미갱신' 의미이므로 해지 여부 자체는 차단\n사유가 아니다. 구독상태 해지 단독 차단을 제거하고 이용종료일(subNextPayDay)\n경과만으로 판정하도록 변경. (기획 피드백 반영)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9795bdb9c9b4e7d11b535e5c157b1ff427964878","date":"2026-06-24T13:18:59+09:00","era":"B","subject":"feat(treat): 테스트회원 폰 화이트리스트로 inhouse 격리 라우팅","body":"운영 카나리를 단가로 열면 랜덤 실유저가 inhouse로 섞여 들어와, 느린 certify(도쿄\n프록시 ~50-67초)를 못 기다리고 이탈→인증실패(ODD004, 1차 성공이라 폴백도 안 됨)가\n양산된다. 테스트는 본인 주문만 inhouse로 보내 격리해야 한다.\n\n디스패처 fetchCertifyMultiple에서 요청 phoneNo가 env TREAT_INHOUSE_TEST_PHONES\n(콤마구분)에 들면 inhouse를 후보 맨 앞으로 강제(단가 무시). env 비면 no-op라\n실트래픽 100% 무영향. inhouse 단가는 100(꼴찌) 유지해 실유저는 안 가고,\n테스트 폰만 inhouse로 — 운영에서 본인 계정만 안전하게 반복 테스트.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd9c6a2081c10ac63d2d40beb6ebb0764b0b4887","date":"2026-06-24T00:54:58+09:00","era":"B","subject":"fix(treat): 진료 숫자필드 NaN 가드로 INSERT 500(ODD004) 차단","body":"벤더가 비숫자(폴백 라벨 오염 등) 값을 보내면 +x.replace()가 NaN을 만들고,\nINSERT가 \"Unknown column 'NaN'\"으로 통째 500나 주문이 ODD004 인증실패로 떨어졌다.\ntoNum 가드(null/undefined/비숫자→0)로 정회원·B2C 진료/세부/처방·codef 경로 34곳을 일괄 보호.\n어느 벤더든(codef/쿠콘/옥토버/하이픈/inhouse) 더러운 값에도 저장이 깨지지 않는다.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3742c1787eb9aa272246d348c475e15e32c51fb8","date":"2026-06-24T10:34:04+09:00","era":"B","subject":"feat(alimtalk): 초대링크 진입 즉시(checkAlimtalk) 만료 판별 추가","body":"- check/:altCode 응답에 inviteExpired 추가 (isInviteExpired = validateInviteAccess 재사용)\n- 프론트가 링크 클릭 즉시 '접근 기간 만료' 화면으로 보낼 수 있게 (인증요청 시점 차단은 유지)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5bc8d33932f56ad20e91dc6b40a788fd5475f52b","date":"2026-06-24T00:54:58+09:00","era":"B","subject":"fix(treat): 진료 숫자필드 NaN 가드로 INSERT 500(ODD004) 차단","body":"벤더가 비숫자(폴백 라벨 오염 등) 값을 보내면 +x.replace()가 NaN을 만들고,\nINSERT가 \"Unknown column 'NaN'\"으로 통째 500나 주문이 ODD004 인증실패로 떨어졌다.\ntoNum 가드(null/undefined/비숫자→0)로 정회원·B2C 진료/세부/처방·codef 경로 34곳을 일괄 보호.\n어느 벤더든(codef/쿠콘/옥토버/하이픈/inhouse) 더러운 값에도 저장이 깨지지 않는다.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"58313514e2036802ae8485142d1111cd630e8bcf","date":"2026-06-23T17:30:16+09:00","era":"B","subject":"fix: getAdminDetail 의도외 필드 제거 — 초대링크 검사는 getDetail에만 (범위 정리)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc603b6cb622d54a49b96cc11d42e7bccf440c1f","date":"2026-06-23T17:00:13+09:00","era":"B","subject":"feat(treat): 초대링크 접근 검사에 회원탈퇴/계정중지·기업접근차단 추가","body":"- memIsResigned(일반 탈퇴 = 기업 계정중지, 동일 컬럼) 차단\n- agcDeliquent(기업 접근차단/불량기업) 차단\n- getDetail에 두 필드 select 추가, 단위테스트 9건","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5d1dc1244925080c05eb0ff142ebd1c21802dc16","date":"2026-06-23T16:33:32+09:00","era":"B","subject":"feat(treat): 초대 알림톡 링크 분석시작 시 접근 유효성 검사 추가","body":"- certify 진입에 validateInviteAccess 호출(발송 시점만 검사하던 누락 보완)\n- 구독종료일(sub_next_pay_day)+구독상태+분석건수+결제로 판정, ord_expired_at은 미사용\n  (ord_expired_at은 구독 갱신과 불일치해 구독 유효 고객 7천여건 오차단 위험)\n- 차단 시 EXPIRED_ACCESS_LINK(E0214) → 프론트 '접근 기간 만료' 화면\n- getDetail에 sub_next_pay_day 추가, 단위테스트 7건","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alimtalk/alimtalk-invite.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0aae138683397847751f6cf0331fcccb5ada4971","date":"2026-06-23T14:46:59+09:00","era":"B","subject":"Merge pull request #31 from insuniverse-com/fix/inhouse-diagauto-prod","body":"fix(inhouse): 자동차(diagAuto) 제거 — 건강 동의 0개 고착 회피","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"71250931d98cff9e428350f13a9d7f6f2b4f3137","date":"2026-06-23T14:40:51+09:00","era":"B","subject":"fix(inhouse): 자동차(diagAuto) 제거 — 첫 건강 동의 0개 고착 회피","body":"자동차 낀 처리 × 11시 HIRA 지연이 겹치면 첫 건강 동의가 0개로 고착돼 건강 0건이 됨(prod 02시 62%, stg는 자동차 꺼져 0%라 못 봄).\n자동차보험 미서비스이므로 inhouse services에서 diagAuto만 제외. 다른 벤더 영향 없음.\nENABLE_TREAT_CAR=false는 codef 등 타 벤더 자동차까지 꺼지므로 사용 금지 — inhouse만 필터.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6cd66d1bdcbd3aad39d9f891c1755812dbdfd5f7","date":"2026-06-23T12:48:19+09:00","era":"B","subject":"fix(auth): 로그인 직후 메인 API 401 튕김 수정 — 인증쿠키 옵션 통일","body":"- _aT 쿠키를 cross-site(www↔api) https에서 sameSite=none+secure로 전송 (Lax라 메인 XHR에 미전송→401)\n- signin/refresh가 set 전에 옛 _aT를 동일옵션으로 clear → 만료 옛토큰 누적·우선읽힘 방지\n- signout clearCookie도 동일옵션 → 실제 삭제\n- 원인: 메인 401 전수분석 토큰없음50%+옛만료50%, 유효토큰 거부 0건(가드/회원상태 무관)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/helpers/cookie.helper.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/cookie.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccb459a657b3c2f2e92dfeda779a5c7c7ef89b63","date":"2026-06-23T12:48:19+09:00","era":"B","subject":"fix(auth): 로그인 직후 메인 API 401 튕김 수정 — 인증쿠키 옵션 통일","body":"- _aT 쿠키를 cross-site(www↔api) https에서 sameSite=none+secure로 전송 (Lax라 메인 XHR에 미전송→401)\n- signin/refresh가 set 전에 옛 _aT를 동일옵션으로 clear → 만료 옛토큰 누적·우선읽힘 방지\n- signout clearCookie도 동일옵션 → 실제 삭제\n- 원인: 메인 401 전수분석 토큰없음50%+옛만료50%, 유효토큰 거부 0건(가드/회원상태 무관)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/helpers/cookie.helper.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/cookie.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d3d257b9fc418f04cf01c48fd65e1f2bf10d44b","date":"2026-06-23T09:38:24+09:00","era":"B","subject":"Revert \"feat(treat): octover/hyphen/coocon 자동차보험 진료정보 수집 연동\"","body":"This reverts commit 0328dfcb4118ef5dd54f0bd84dfbcda86caa0f6d.","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"libs/coocon/src/coocon.mapper.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.mapper.ts","old_path":null,"score":null},{"status":"D","path":"libs/hyphen/src/hyphen.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.mapper.ts","old_path":null,"score":null},{"status":"D","path":"libs/octover/src/octover.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0328dfcb4118ef5dd54f0bd84dfbcda86caa0f6d","date":"2026-06-22T21:57:03+09:00","era":"B","subject":"feat(treat): octover/hyphen/coocon 자동차보험 진료정보 수집 연동","body":"- octover: AB001 insureType=1 별도 호출, 자동차 전용필드(진료일수/자동차보험총진료비) 매핑\n- hyphen: B0003 별도 호출(자동차보험총진료비는 medicalExpensesIPaid로 정확 매핑)\n- coocon: 보험종별=2 별도 호출(자동차총진료비는 혜택받은금액으로 근사)\n- 정책 통일: 자동차 수집 실패는 전체 실패, 자료없음은 빈 성공\n- 자동차 분석 0값 버그 수정(createCarTreat가 읽는 resTreatDate/resMedicalFee 채움)\n- 단위테스트 27케이스 추가","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"libs/coocon/src/coocon.mapper.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63e5fb5992b4aa1ff8887d4f9d7df48a3035b859","date":"2026-06-22T14:32:56+09:00","era":"B","subject":"feat: 청구서 양식 팩스 한도 초과 시 업로드 시점 압축 옵션 추가","body":"- 양식 5MB 초과 시 NEED_COMPRESS 응답으로 관리자에 압축 동의 요청\n- 동의 시 ghostscript(150dpi 다운샘플)로 압축 후 S3 업로드\n- 압축 후에도 초과 시 실패 처리\n- 런타임 이미지에 ghostscript 추가","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/invoice/pdf.util.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eb3f1c018ec83c974c3a9a359fc0068f3c40b339","date":"2026-06-22T14:32:56+09:00","era":"B","subject":"feat: 청구서 양식 팩스 한도 초과 시 업로드 시점 압축 옵션 추가","body":"- 양식 5MB 초과 시 NEED_COMPRESS 응답으로 관리자에 압축 동의 요청\n- 동의 시 ghostscript(150dpi 다운샘플)로 압축 후 S3 업로드\n- 압축 후에도 초과 시 실패 처리\n- 런타임 이미지에 ghostscript 추가","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/invoice/pdf.util.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f5e14047b68e5ea0cebfdc4b72b93d959850e1e","date":"2026-06-20T17:44:44+09:00","era":"B","subject":"fix(auth): jwt-optional 가드 빌드 에러 수정 (payLoadId 잔재 → memId)","body":"validateAgencyMember 파라미터를 memId로 변경했으나 logger.warn 두 줄이\n옛 변수명 payLoadId를 참조해 TS2304로 nest build 실패하던 문제 수정.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f2608fb773cbd22210f1c68bff6dc49e755ee46b","date":"2026-06-20T17:43:14+09:00","era":"B","subject":"fix(auth): jwt-optional 가드 빌드 에러 수정 (payLoadId 잔재 → memId)","body":"직전 커밋에서 validateAgencyMember 파라미터를 memId로 변경했으나\nlogger.warn 두 줄이 옛 변수명 payLoadId를 참조해 TS2304로 빌드 실패.\n배포 빌드 단계(nest build)가 깨지던 원인.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b549876422043e3f6b801a64086d98df44f85c8a","date":"2026-06-20T17:39:12+09:00","era":"B","subject":"fix(auth): 기업회원 가드 재검증을 loginId→memId로 변경","body":"로그인아이디는 (mem_login_id, agc_id) 복합 유니크라 기업 간 중복 가능.\nJwtAuthGuard/JwtOptionalGuard의 매 요청 기업회원 재검증이 loginId로만\n조회하여, 동명 회원이 불량기업(agcDeliquent=1)에 존재하면 그 행을 먼저\n매칭해 E0207을 던지고 프론트가 자동 로그아웃되던 문제 수정.\n\n토큰의 유니크 PK(memId)로 재검증하도록 getAgencyMember를 변경.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth-guard.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"686b9020da71ec7fd9561572c008ef6011f3df30","date":"2026-06-19T17:10:49+09:00","era":"B","subject":"merge: stg → prod (재분석 가드+가짜완료 차단 / 자료수집실패 상태 / 관리자 재분석 사전가드)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6726f9d5887e34d5be935fedd72616ab8c2a6f2f","date":"2026-06-19T13:41:56+09:00","era":"B","subject":"fix(treat): 관리자 재분석도 수집 데이터 없으면 사전 차단","body":"admin reAnalyze는 resetForReAnalyze로 상태(자료분석중)·예약을 compare 전에 선반영해서,\ncompare 가드가 막아도 중간상태가 남던 문제. reset 전에 hasCollectedData 가드 추가.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"142c746c7698b39b54f53a0c0f934bc022f63b24","date":"2026-06-19T11:59:04+09:00","era":"B","subject":"feat(treat): 자료수집실패(ODD008) 상태 신설","body":"인증 통과 후 수집 실패(타임아웃·처리중오류·기관오류 등)를 분석실패와 분리.\n- OrderDetailState.자료수집실패=ODD008 추가\n- errorTreat 3분기: 인증단계 실패→인증실패 / 그 외 2차 실패→자료수집실패 (분석실패는 createAnalyze만)\n- 수동 상태변경 시 ODD008도 예약수 환불 대상\n* tc_common(ODD008 라벨) 별도 등록 필요","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6da498bda80279cc901966e8934e97eb602e27a3","date":"2026-06-19T11:45:23+09:00","era":"B","subject":"fix(treat): 수집 데이터 없으면 재분석 차단 (가짜완료 방지)","body":"인증/수집 실패건(인증오류·처리중오류·타임아웃)은 수집 원본이 없는데 재분석하면\ncreateAnalyze가 빈 결과로 '분석완료(ODD006)'를 만들어 가짜완료+quota 차감이 발생.\ncompare()/userReAnalyze에 hasCollectedData 가드 추가 — 원본 없으면 차감 전 차단(NO_COLLECTED_DATA).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8f2b6d4d0ec236e4e9b0deb9646fec3998b11144","date":"2026-06-18T18:01:22+09:00","era":"B","subject":"merge: stg → prod (2차 인증/수집 실패 단계별 분기 + 병원코드 NULL 정규화 + inhouse 어댑터(휴면) + 처리량 그래프 처리시점 집계 + 기업정산 엑셀)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aff118079daf7683b0ce9ecda1b9da976e1d824d","date":"2026-06-18T17:17:23+09:00","era":"B","subject":"fix(treat): 2차 인증/수집 실패를 단계별 인증실패·분석실패로 분기","body":"errorTreat가 2차 실패를 일괄 분석실패(ODD007)로 박아, 하이픈 '인증번호가\n올바르지 않습니다'까지 분석실패로 노출되던 문제 수정. 수집 타임아웃만\n분석실패 유지(건강이음 안내), 그 외(인증오류·인증서·처리중오류)는 인증실패(ODD004).\n스케줄러 단계별 분기와 동일 기준.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5ce16c47be5eba08daf064ff3f5c9bcf107a746b","date":"2026-06-18T16:13:33+09:00","era":"B","subject":"fix(treat-monitor): 시간대별 처리량 그래프를 실제 처리시점 기준으로 집계","body":"odd_updated_at 기준이라 매일 ~06:10 도는 '30일 경과 원본데이터 삭제'\n배치의 일괄 UPDATE(30일 전자 ~1,700건)가 6시 가짜 처리량 폭증\n(완료 ~1,400/실패 ~280)으로 찍히던 문제.\n완료=odd_completed_at, 실패=odd_failed_at 처리시점으로 매칭하도록 변경.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7239947cba3101eef83a978acb5062a758ad7e11","date":"2026-06-18T15:57:53+09:00","era":"B","subject":"feat(inhouse): ALB stickiness 쿠키 유지로 멀티박스 라우팅 지원","body":"certify 응답의 AWSALB 쿠키를 InhouseSession(jti)에 실어 treat 요청에 전달.\n멀티박스에서 certify-treat이 같은 박스로 가게 함(동시사용자 격리, 단일박스는 무해).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.types.ts","old_path":null,"score":null},{"status":"M","path":"libs/webclient/src/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a061abdf26e52f354abf72785a9b749ce07594d","date":"2026-06-18T14:41:55+09:00","era":"B","subject":"fix(treat): 병원코드 빈문자 NULL 정규화","body":"벤더별 병원코드 미수집 표기 통일(inhouse '' vs coocon/hyphen NULL).\n진료 기본정보 저장 3경로(trb/btrb/ctrb)에 동일 적용.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9861f51d77b0f6df4f53ea936671830802480b81","date":"2026-06-18T14:39:10+09:00","era":"B","subject":"feat: 기업정산 구독내역 엑셀 다운로드 엔드포인트 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be44dd9826910ce2db12122997bbc7c4fbc54162","date":"2026-06-18T09:35:27+09:00","era":"B","subject":"fix: 30일투약 상세 정렬 기준을 진료시작일 최신순으로 변경","body":"기존 약품명 기준 → 진료시작일 내림차순(최신>오래된)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b810a0e0bf03e263138e02a936c6e656efbbe89","date":"2026-06-17T18:44:23+09:00","era":"B","subject":"feat: 7일치료 5년내 분류 5단계 계층 트리 (중>소>세>세세>세세세)","body":"- batchLookupFullHierarchy: 질병코드→전체 분류 계층(major~subFine) 일괄 매핑 (진단로그와 동일 규칙)\n- getTreatment7DayGroups: 평면 6계층 반환 (프론트에서 트리 조립), 7일 필터는 중분류 기준 유지","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3e22a51b0fb881cf2069a025276680f5446069d","date":"2026-06-17T16:56:54+09:00","era":"B","subject":"fix: 진료분석 효능효과·소분류명 표시 정정 + 처방 인덱스 형상","body":"- 30일투약 상세표 효능효과: 분류명(category) → 분류효능(msc_name) (task-675)\n- 7일치료 소분류명: 주상병명 → 질병분류 분류항목명(tc_disease_minor)\n- tn_analysis_prescibe / tn_b2c_analysis_prescribe odd_id 복합인덱스 형상 반영 (prod 적용 완료분)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39dbf9a78538f40b4714cb2518aa2758688147a0","date":"2026-06-17T14:47:40+09:00","era":"B","subject":"fix(treat): stall 자동처리 최종상태를 분석실패로 환원","body":"자료수집완료/자료분석중 1시간 stall 백업 자동처리의 final_state를\n인증실패(ODD004)→분석실패(ODD007)로 환원. 인증은 통과하고 수집/분석\n단계에서 멈춘 건이므로 분석실패가 맞고, 실시간 경로(event-handler)와도 일치.\n\n사유 표시(isAuto / 목록 COALESCE failCode·failMessage)도 ODD004/ODD007을\n함께 인식하도록 확장 → 분석실패로 박혀도 '자료수집 미완료' 사유 유지.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b7061485c49eac96a4f1fb5c27206efef1fbd446","date":"2026-06-17T09:59:36+09:00","era":"B","subject":"fix(treat): 2차 수집 실패를 분석실패로 분류","body":"인증 통과 후(수집/분석) 실패를 인증실패로 박으면 상태↔사유가 안 맞음\n(예: 수집 타임아웃 timeout 300000ms인데 '인증실패').\nerrorTreat(handlerTreat 2차 경로) oddState 인증실패→분석실패.\n1차 인증(certify) 실패는 별도 경로라 인증실패 유지.\n모니터링 '분석 실패 0' 비정상 수치도 정상화됨.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ba1a6dbecb139902a1c14524bd238e544654caf","date":"2026-06-15T18:02:50+09:00","era":"B","subject":"fix(push): 예약 푸시 다중 인스턴스 중복 발송 차단 (pending→sending 원자적 선점)","body":"api 서비스는 여러 인스턴스로 떠 있고(현재 prod 9대) 각 인스턴스가\n@Cron(EVERY_HOUR) 푸시 스케줄러를 매시 정각에 동시 실행한다.\nsendScheduledPush()의 SELECT(status=pending)는 여러 인스턴스가 같은\n예약 푸시를 동시에 집어갈 수 있고, 발송 후에야 status=sent로 갱신하므로\n선점 보호가 없어 회원당 인스턴스 수만큼 중복 발송됐다(prod 실측 8회).\n\n발송 직전 `UPDATE ... SET status=sending WHERE pshId=? AND status=pending`\n조건부 갱신으로 affectedRows=1인 1대만 발송하도록 선점한다.\n(order.repository의 기존 atomic 패턴과 동일)\n\n- PushStatus.SENDING 중간상태 추가\n- 선점 실패 시 해당 푸시 skip","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c6831bf4e19d5ae991ba61329c3f3815db717cd","date":"2026-06-12T17:42:33+09:00","era":"B","subject":"fix(treat-inhouse): 진료 데이터 정규화로 ODD004 자동실패 차단","body":"엔진 raw 진료 데이터의 null/undefined/숫자가 보유 treatRepository.create()의\n무가드 .trim()/.replace() 호출에서 throw → 주문이 ODD004(인증실패)로 떨어지던 문제.\noctover mapOctoverToTreatment와 동일하게 어댑터 경계에서 전 필드를 안전 문자열로\n강제하고 키 철자(resTotalDosingdays)를 맞춘다. 보유 코어 로직은 불변.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dcb548465a8c5dd887054904d0798ae8674b4f98","date":"2026-06-12T15:34:50+09:00","era":"B","subject":"fix(treat-inhouse): 에러 분류 + 자료없음 처리 정합","body":"- INHOUSE(INH-*) 에러맵 추가 → inhouse 실패가 UNKNOWN 대신 올바른 카테고리로 분류\n- 어댑터 실패 시 INH 코드 emit (CF-12000/CF-99999 제거 — 맵과 일치)\n- 자료없음(INH-3001)을 실패 아닌 '빈 분석 성공'(CF-00000+빈 Treatment)으로 처리 — octover/coocon 정책과 동일(환불 X)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null},{"status":"M","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"45f2698b498312a1eaf0ee3277c12d16ab36d96d","date":"2026-06-12T10:17:49+09:00","era":"B","subject":"feat(treat): inhouse(자체 스크래퍼) 5번째 벤더 어댑터 추가","body":"- libs/inhouse: 엔진 HTTP API(/api/certify, /api/treat)를 TreatScraper 계약으로 정규화\n- 디스패처 풀에 inhouse 등록(기본 OFF — 풀 미등록 시 dormant)\n- 인프라/용량/기관 오류는 throw로 기존 벤더 폴백(독립성 보장)\n- 엔진 호출 시 API키 인증 헤더 전송","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/inhouse/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/inhouse/src/inhouse.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/inhouse/src/inhouse.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/inhouse/src/inhouse.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3b44ebae7508cf113e1f28d1eabf98161087a40","date":"2026-06-12T12:58:27+09:00","era":"B","subject":"feat(treat-error): hyphen 동적 변형코드 4종 매핑 (prod 실측)","body":"InfoTech 문서 미정의 런타임 생성코드를 prod 실측 메시지로 분류.\n- B0002-999/I0001-999 → VENDOR_ERROR (처리중 오류)\n- I0001-V01 → AUTH_CODE_WRONG (인증번호 오류)\n- I0001-N01 → NETWORK_ERROR (네트워크 실패)\nerrMsg [업무코드] 보정으로 CF-99999 래핑건도 함께 해소.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f0e04dcb2b7604a6badbb9ce8b14f8fc6dca4bea","date":"2026-06-12T10:57:47+09:00","era":"B","subject":"fix(treat-queue): 빈 슬롯 병렬 충전 — 대기열 1명씩 직렬 입장 해소","body":"기존: 활성 맨앞 1명만 admit → 슬롯이 N개 비어도 폴링 사이클당 1명씩\n직렬 입장 → 대기열 적체(슬롯 여유인데 대기).\n변경: 앞의 '미입장(admit 미보유) 활성 대기자 수 < 여유 슬롯 수'면 admit\n→ 빈 슬롯 N개에 앞 N명 동시 READY.\n- activeAheadCount: admit(hold) 보유 앞사람 제외(freeSlots 이중차감 방지)\n- freeSlotCount: Σ max(0, maxFlows − inflight)\n- issueAdmit의 maxFlows reserve가 최종 게이트라 과다입장 불가(벤더 한도 보호)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae8f41bbc72725d4f1f237286281ff6570c9be70","date":"2026-06-11T16:58:39+09:00","era":"B","subject":"merge: stg → prod (진료 자료없음 빈 분석 성공 처리 + 벤더 에러카탈로그 + 푸시 발송내역 조회 API)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a268f5cba7b9a98ee457bd2a36b15d961d066c9","date":"2026-06-11T16:45:07+09:00","era":"B","subject":"test(treat): 쿠콘 자료없음(42110000) 빈 성공 처리 검증","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8ff405510bf59b085d82f55c3a7e2212303d440f","date":"2026-06-11T15:52:16+09:00","era":"B","subject":"fix(treat): 진료 자료없음을 실패 아닌 빈 분석 성공으로 처리","body":"- 쿠콘 42110000(거래내역 없음): 실패+환불 → 빈 분석 성공(ODD006)\n- 분할 수집 시 일부 구간만 0건이어도 전체 실패되던 문제 해소\n- 옥토버 내용없음(1000204 등) 정상등급 코드 성공 인정\n- 하이픈은 자료없음을 이미 CF-00000으로 정상 처리(변경 없음, 주석만)","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/octover/src/octover.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ceeda399ccc7aed13a1ab7aff879fccbf87bc80f","date":"2026-06-11T14:32:16+09:00","era":"B","subject":"feat(treat-error): octover 오류코드 사전 등록 (DOZN 공통 1000xxx 87종)","body":"octover 오류코드 구글시트(공통 오류코드 탭) 기준으로 VENDOR_MAP.octover 채움.\nHIRA 본인인증+조회 체계인 공통 1000/1001/1010만 매핑, GOVM 1500xxx(자동차/출입국 등)는 진료수집 무관이라 제외.\n기존 '1000200만 확정' 테스트도 갱신.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-resolver.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"339f51b64d8560533c8b3c7f6c06f1cf32aced60","date":"2026-06-11T13:13:19+09:00","era":"B","subject":"refactor(treat-monitor): 벤더 에러 카탈로그에서 codef 제외 (계약종료)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1fdf667c2f56e6e1ae987e585b05862ab4cf62eb","date":"2026-06-11T11:14:01+09:00","era":"B","subject":"refactor(treat-monitor): 벤더 에러표를 사전 전체+발생률 기준으로 재구성","body":"- 아는 에러(VENDOR_MAP) 전부를 벤더별로 노출, 각 코드에 발생건수·발생률(전체 시도 대비) 부착(발생 0도 표시)\n- 의미 미상(사전 미수록) 코드는 실패건만 모아 별도 반환\n- unmapped 판정에 실패(CRT002) 조건 추가해 정상/추가인증 오탐 제거","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a9cc447aa6392755812b7544e52bc57dcf5ada6","date":"2026-06-11T10:50:43+09:00","era":"B","subject":"feat(push): 푸시 발송내역 조회 API 추가","body":"발송된 푸시의 tn_alarm 기록을 회원/기업 조인해 조회.\n회원타입·기업명·열람여부 필터 + 회원아이디 검색 + 페이지네이션.\nGET /admin/push/:pshId/send-history","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/push/push.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"596aba3f7837b5a558bbdae26a89a546356d2de0","date":"2026-06-11T10:50:43+09:00","era":"B","subject":"feat(treat-monitor): 벤더별 에러 카탈로그 API 추가","body":"log_treat 실패 로그를 VENDOR_MAP 사전과 대조해 벤더별로 집계.\n사전 미수록 코드는 mapped=false로 표시해 미분류 에러를 부각.\nGET /admin/treat-monitor/vendor-errors?days=N","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b51bd75b1d6822445a09b199d031f2035e607109","date":"2026-06-11T09:48:50+09:00","era":"B","subject":"merge: stg → prod (수집 타임아웃 건 목록 건강이음 안내 + 재시도 숨김)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"884596e9baf16281cc59220af7f94d9acab5c47e","date":"2026-06-11T09:35:49+09:00","era":"B","subject":"feat(order-detail): 수집 타임아웃 건 목록 구분 (재시도 막고 건강이음 안내)","body":"타임아웃 실패는 재시도해도 또 타임아웃이라, 유저 분석목록에서 '인증 재시도'\n대신 '건강이음 안내'로 노출하고 재시도 버튼을 숨긴다.\n- order_detail.odd_timeout 컬럼(errorTreat에서 isTimeout이면 set)\n- 분석목록 응답(OrderDetailDto)에 oddTimeout 노출\n- DB: drizzle/0011 수동 적용 필요","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0011_order_detail_timeout.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a723001a68f7ecb07337329c55cd317fa28fd5c2","date":"2026-06-10T17:40:41+09:00","era":"B","subject":"chore(coocon): [실증임시] stg 타임아웃 테스트 원복 — axios 330초 복구","body":"건강이음 안내 검증 완료. 임시 3초 분기 제거하고 운영과 동일한 330초로 복구.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"862296e7912f7a11eb961a9960ab656566c4249f","date":"2026-06-10T17:30:45+09:00","era":"B","subject":"chore(coocon): [실증임시-stg] 내진료정보열람만 3초 — 인증은 정상","body":"1차 인증(본인인증/휴대폰인증)까지 3초로 깨져 수집 단계 전에 멈추던 것 수정.\n수집(내진료정보열람)만 강제 타임아웃. 검증 후 330000 원복.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"73ed3580e4cda297b681ea2cc6fd613fe56d11da","date":"2026-06-10T17:20:31+09:00","era":"B","subject":"chore(coocon): [실증임시-stg] axios 3초 — 타임아웃 알림톡 검증용","body":"우인우 수집을 강제 타임아웃시켜 건강이음 안내 발송 확인. 검증 후 330000 원복.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cd126112c69b4ed8854f56b4b102af9cc79d4962","date":"2026-06-10T17:17:42+09:00","era":"B","subject":"merge: stg → prod (수집 타임아웃 시 건강이음 안내 알림톡)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b43cfa43111941b6a0798ed83ee293745a7fd556","date":"2026-06-10T17:17:26+09:00","era":"B","subject":"fix(treat): 타임아웃 알림톡은 건강이음 안내만 발송","body":"기존 실패 메시지(기관오류 등) 붙이지 않고 \"병력 데이터가 많아 분석\n제한됩니다. '건강이음'을 확인하세요.\" 한 문장만 보낸다.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"16e6b47e9cf542c3a5314f879b10b82092be35e4","date":"2026-06-10T16:57:27+09:00","era":"B","subject":"feat(treat): 수집 타임아웃 시 알림톡에 건강이음 안내 추가","body":"coocon/hyphen 수집이 '타임아웃'으로 실패한 건에 한해, 실패 알림톡 메시지에\n\"병력 데이터가 많아 분석이 제한됩니다. '건강이음'을 확인하세요.\" 문구를 덧붙임.\n- 타임아웃 감지: isTimeout 플래그(실측). coocon은 기존 측정값 전파, hyphen은 감지 추가\n- 인증실패/데이터없음 등 다른 실패에는 붙이지 않음(정확히 타임아웃만)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c4173cb34ae1ff52dc2d87e42733c7d94d5664a","date":"2026-06-10T16:32:59+09:00","era":"B","subject":"merge: stg → prod (쿠콘 axios timeout 330초 — 미완료 과금 회피)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01a871b90d5574e9bf2000519a44435d3994d39b","date":"2026-06-10T16:29:04+09:00","era":"B","subject":"fix(coocon): axios timeout 300→330초 — 미완료 과금 회피","body":"쿠콘 TimeoutRuntime(300초)보다 30초 길게 설정해 항상 쿠콘이 먼저\n8000F101로 끊게 한다. 쿠콘은 '클라이언트가 끊은 미완료'만 과금하므로\n우리가 안 끊으면(쿠콘이 끊으면) 과금되지 않는다. coocon 전용(다른 벤더 무관).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"942568dc5bc6d70250ce366e37400f44bd3acc16","date":"2026-06-10T16:11:31+09:00","era":"B","subject":"merge: stg → prod (분석로그 타임아웃 필터 E0003 수정)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b9b8ff45f4e3468431fa878ec8f9e607b851498","date":"2026-06-10T15:44:33+09:00","era":"B","subject":"fix(treat-log): 분석로그 타임아웃 필터 E0003 수정","body":"codefTimeout을 @IsInt(숫자) 검증에서 빼고 문자열 쿼리로 받도록 변경.\nURL 쿼리는 문자라 '1'이 숫자검증에 막혀 입력값오류(E0003) 나던 문제.\nwhereClause에서 Number() 변환은 그대로.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"98803b16e516bb2d15e94836d9fb99b38f4606bf","date":"2026-06-10T15:13:49+09:00","era":"B","subject":"merge: stg → prod (수집 구간별 소요 노출 + 진료모니터 최대소요 + 분석로그 타임아웃 필터)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"999af69155a53026ee2445ef13731f5916122900","date":"2026-06-10T15:10:28+09:00","era":"B","subject":"feat(treat-log): 분석로그 타임아웃 필터 + 소요시간 정렬키 지원","body":"- codefTimeout 필터(타임아웃만/정상)\n- sortKey에 codefElapsedMs(오래걸린순) 추가","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc09ffb576283dc5089796c686dc29a54c8b864e","date":"2026-06-10T14:56:13+09:00","era":"B","subject":"feat(coocon): 수집 구간별 소요 메시지 노출","body":"분할 수집 시 어느 구간이 몇 초/타임아웃인지 결과메시지에 기록\n(예: '[21.06~23.12]213초 / [23.12~26.06]300초 타임아웃').\n합산 소요만으론 어느 구간이 터졌는지 몰라 분석로그에서 바로 보이게 함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f7865554a035d292e4404ab026cc7da2e6dc99d","date":"2026-06-10T13:54:10+09:00","era":"B","subject":"merge: stg → prod (진료 수집 소요시간·타임아웃 기록 + 모니터링/분석로그 지표 표시)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e8c57f6c91225c8f7003788f20bf54b584c3c9e","date":"2026-06-10T13:47:43+09:00","era":"B","subject":"feat(treat-monitor,treat-log): 수집 소요·타임아웃 지표 표시","body":"- 진료모니터링 업체별 표: 평균 수집소요 + 타임아웃 건수/비율 (분할 효과 측정)\n- 분석로그관리 목록/엑셀: 수집소요·타임아웃 컬럼 노출 (오래 걸린 실패 추적)\n- log_treat codef_elapsed_ms/codef_timeout 기준 집계","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a33b10dcf8cdb5b17e31ceecdbbe01aca099427","date":"2026-06-10T13:39:23+09:00","era":"B","subject":"feat(treat-log): 진료 수집 소요시간·타임아웃 기록","body":"2차 수집(내진료정보열람) 호출 소요(ms)와 조회 타임아웃 여부를 log_treat에 적재.\n분할 효과 측정 + 오래 걸린 실패 유저 집계의 기반 데이터.\n- coocon이 수집 소요 측정(분할이면 전체 구간 합산) → result에 실어 전파\n- 성공/일반실패/타임아웃(axios throw) 모두 기록 (coocon-auth가 원본 에러코드 보존)\n- handler 예외 경로 failResult에도 elapsed/timeout 반영\n- DB: drizzle/0010 수동 적용 필요","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0010_log_treat_elapsed.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95cadfcc8270cdc28942c54975540c5ff501b641","date":"2026-06-10T13:29:32+09:00","era":"B","subject":"merge: stg → prod (coocon 수집 조회기간 고정 분할 — 기본 OFF, split=1)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da605c9146d7c36445708a8ee770c1b95f669655","date":"2026-06-10T12:17:18+09:00","era":"B","subject":"feat(coocon): 수집 조회기간 고정 분할 (공급자 설정 tpr_split_count)","body":"5년치 무거운 조회가 300초 타임아웃으로 끊기는 것을 줄이기 위해, 공급자 설정의\n분할 횟수(tpr_split_count, 기본 1=분할없음)에 따라 조회기간을 N등분해 같은\n세션으로 순차 수집 후 병합한다. 현재 coocon만 지원.\n- 동적 재분할(타임아웃 후 쪼개기)은 세션이 죽어 불가(실증 확인) → 처음부터 고정 분할\n- 한 구간이라도 실패하면 5년 완전성 위해 전체 실패(부분 저장 안 함)\n- 경계 겹침/누락 0 (구간 끝+1일 = 다음 시작)\n- 어드민 진료공급자 설정에서 분할 횟수 조정\n- DB: drizzle/0009 운영/stg 수동 적용 필요","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0009_treat_provider_split.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6d8b28fddcc906bdf8e0ebefe262527feabc231a","date":"2026-06-10T11:20:18+09:00","era":"B","subject":"merge: stg → prod (회원머니 기업코드·미리보기·영업대리점·DTO + 진료모니터 + coocon실증 원복)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5020470024288e0d9ebe3b8fc09fa42cecfa9ed1","date":"2026-06-10T11:16:04+09:00","era":"B","subject":"fix(money): 응답 DTO에 agcCorporateCode @Expose — 기업코드가 잘려서 안 보이던 문제","body":"- excludeExtraneousValues로 @Expose 안 된 새 필드(agcCorporateCode)가 응답에서 잘림\n- MoneyIssueTargetEntity(상세 회원목록)·MoneyIssueEntity(목록/헤더)에 @Expose 추가","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money-issue.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5573d1c42af59a8a5955dc31c7f2774a7c30b789","date":"2026-06-10T11:00:30+09:00","era":"B","subject":"ci(notify): Google Chat 알림 셸 인젝션·글로빙 수정","body":"- 커밋 메시지의 대괄호([])·따옴표(')가 curl 글로빙/셸 파싱을 깨 알림이\n  exit 3으로 실패하던 문제 수정\n- 페이로드 값을 env로 전달 + jq로 JSON 안전 생성(자동 이스케이프)\n- 줄바꿈은 \\n 대신 <br>로, webhook 미설정 시 스킵\n- continue-on-error로 알림 실패가 배포 워크플로를 죽이지 않게 처리","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/notification.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5585388e79e705566d203322de26720848b56999","date":"2026-06-10T10:55:00+09:00","era":"B","subject":"fix(money): 회원머니 상세 영업대리점을 기업 sag로도 매칭 — 기업회원 미소속 오표시 수정","body":"- 기업회원은 회원 sag_code가 NULL이라 영업대리점이 '미소속'으로 뜨던 문제\n- 영업대리점 조인을 '회원 sag_code OR 소속기업 sag_id'로 (중복위험 0 실데이터 확인, 조창훈 정상 표시)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"774323df850238db48ec358b79283b9bcc41f4af","date":"2026-06-10T10:51:21+09:00","era":"B","subject":"fix(money): 회원머니 상세 타겟회원 목록에 기업코드 추가","body":"- getIssueTargetList에 agcCorporateCode 추가 → 상세 회원목록 기업명(코드)에 코드 표시","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a7df137fe92c64ec6d8297a21c7765d7c3ccbce","date":"2026-06-10T10:43:13+09:00","era":"B","subject":"fix(money): 엑셀 업로드 헤더·데이터 .text로 읽기 — Excel 저장파일 리치텍스트 대응","body":"- Excel에서 열어 저장하면 셀이 리치텍스트 객체가 돼 .value.toString()=\"[object Object]\"로\n  헤더검증/파싱이 실패('3번째 열이 기업코드여야' 오거부)하던 문제\n- ExcelJS .text(표시 텍스트)로 읽어 정상 인식","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7b361c73443c522fd30153a59eddb714999be2c1","date":"2026-06-10T10:23:28+09:00","era":"B","subject":"fix(treat-monitor): 업체별 1차 실패 집계 + 에러 라벨에 업체 실제 메시지 노출","body":"- provErrRows를 odd_provider 조인 대신 codef_provider 기준으로 통일\n  (1차 인증실패는 odd_provider(2차 라우팅 태그)가 NULL이라 업체별 1차실패가\n   비어 보이던 문제 — cert1ProvRows와 동일 소스로 정합)\n- 단계별/업체별 에러 라벨을 codef_result_message(업체 실제 메시지) 우선 표시,\n  메시지 없으면 기존 코드 라벨로 폴백(임의 메시지 생성 금지로 코드 추적성 유지)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd902d4380f53e4c74d979222bd4a095832114a6","date":"2026-06-10T10:10:31+09:00","era":"B","subject":"fix(money): 회원머니 적립 목록/상세에 기업코드 노출 — 동명 기업 구분","body":"- getIssueList/getIssueById에 agcCorporateCode 추가\n- 삼성화재 3개 등 동명 기업, 머니가 어느 기업으로 갔는지 확인 가능(검증용)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6b96e24c1944fb94a58734218a293bf77d8ac963","date":"2026-06-10T09:26:30+09:00","era":"B","subject":"chore(coocon): 진료 수집 분할 실증 코드 전체 원복","body":"stg 실증 결과 동적 분할 불가 확정(타임아웃 후 세션 종료/선행거래 처리중).\ncollectMedical/splitCollect 등 분할 로직 + spec + 실증용 timeout 단축을\n분할 도입 직전(a75fdf79) 상태로 되돌려 단일 5년 조회로 복귀.\n분할 방식은 쿠콘 회신(세션/구간/과금) 후 '처음부터 고정 분할'로 재설계 예정.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"D","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"61e54ffc7efba34a351b788f414c632da582bb99","date":"2026-06-09T18:08:18+09:00","era":"B","subject":"chore(coocon): [실증임시] axios 20초 — 5년 끊고 2.5년 성공 데이터 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5b579b4de6239c2ce6b39bcc1b9a5991f171d147","date":"2026-06-09T18:06:32+09:00","era":"B","subject":"feat(money): 회원머니 업로드 미리보기(dryRun) — 적용 전 명단 확인","body":"- issue/excel/preview: 파싱·검증·회원매칭만 하고 적용 안 함 → 화면 모달로 확인 후 실제 업로드\n- uploadIssue(dryRun) 동일 경로 재사용 → 미리보기 통과=적용 성공 보장\n- getMemberByLoginId(AndAgcCode)에 회원명·기업명 표시필드 추가","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eab22cd32de263fc7bf8cd8462566cbfea6c6383","date":"2026-06-09T17:58:37+09:00","era":"B","subject":"chore(coocon): [실증임시] axios 8초로 — 5년 끊고 작은구간 성공시켜 데이터 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c7d3e1423d492ba4cc4f4432ca2aa272873cbb9","date":"2026-06-09T17:53:50+09:00","era":"B","subject":"fix(money): 회원머니 업로드 옛양식 차단 헤더검증 (금액 오적용 방지)","body":"- 기업코드 컬럼 없는 옛 양식 업로드 시 3열부터 밀려 금액이 엉뚱한 열에서 읽히는 사고 방지\n- 헤더 3열이 '기업코드' 아니면 즉시 거부","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ebfef1cb4f64c49c1cac7fbe013ea02ca66b6457","date":"2026-06-09T17:49:28+09:00","era":"B","subject":"chore(coocon): [실증임시] 케이스B 감지수정 — axios 에러코드 보존해 우리끊김 타임아웃 인식","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd37d08da52ede140b00a77383562cf7b76a2673","date":"2026-06-09T17:48:49+09:00","era":"B","subject":"fix(money): 회원머니 엑셀업로드에 기업코드 추가 — 기업회원 오배정 방지","body":"- 동일 회원아이디가 여러 기업에 존재 시 회원아이디만으로 매칭돼 다른 기업 회원에게 적립되던 문제\n- 엑셀 양식에 '기업코드'(기업회원 필수) 컬럼 추가, 기업회원은 회원아이디+기업코드로 특정(미입력 시 거부)\n- repository getMemberByLoginIdAndAgcCode 추가","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eb1371e4a761c35a221de978f9142f1951e03720","date":"2026-06-09T17:40:38+09:00","era":"B","subject":"chore(coocon): [실증임시] axios 3초로 '우리가 끊는' 케이스 — 세션 유지 검증 (동적 복귀)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f434ad5c9a3d031001ef67b9ca9f149ff3d58d8","date":"2026-06-09T17:34:10+09:00","era":"B","subject":"test(push): 발송대상 결정 로직 순수함수 추출 + 단위테스트","body":"- getMembersByTargetType의 '누가 받는가' 로직을 resolvePushTarget으로 분리(동작 동일)\n- 기업회원 미선택 시 전체발송되는 위험 동작 등 16케이스 테스트 (push 13 전체발송 사고 회귀 방지)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/push/push-target.util.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push-target.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0eb672cd1079452bff37d065580864e3cef530f5","date":"2026-06-09T17:25:11+09:00","era":"B","subject":"chore(coocon): [실증임시] 처음부터 분할 모드 — 성공 후 세션 유지 검증 (TimeoutRuntime 300 복구)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b2288070b96446defcf6497624d48dbb1ebd048","date":"2026-06-09T17:11:30+09:00","era":"B","subject":"fix(coocon): 분할 호출 사이 세션 갱신 — '잘못된 SAS_SessionID' 해결","body":"쿠콘은 매 호출 새 SAS_SessionID를 주는데(auth.normalize가 응답 세션 반환),\ncollectMedical이 이를 안 받아써 분할 2번째 호출이 옛 세션ID를 보내 거부당했다.\n매 응답 세션을 refreshSession으로 현재 세션에 반영(8000F101 응답 포함).\n+ [실증임시] TimeoutRuntime 7초로 조정.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3589ae3ade50d39ee4920c96a3f655eee58927ed","date":"2026-06-09T16:55:30+09:00","era":"B","subject":"chore(coocon): [실증임시] TimeoutRuntime 3초로 (우인우 수집이 가벼워 15초로는 분할 안 됨)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7b6264bea2b6b862b7624572db573d30da4c1c0","date":"2026-06-09T16:48:43+09:00","era":"B","subject":"chore(coocon): [실증임시] 수집만 TimeoutRuntime 15초로 8000F101 유도 (axios timeout 복구)","body":"직전 axios timeout 15초가 인증(휴대폰인증_1)까지 죽여 ODD004 발생.\naxios는 300초 복구하고, 진짜 쿠콘 조회 타임아웃인 TimeoutRuntime을\n'내진료정보열람'에만 15초로 둬 8000F101 유도 → 수집만 분할 트리거.\n검증 후 TimeoutRuntime '300' 복구 필요.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15d413ea92c738f0a807ab98c34d8fa1a6573daa","date":"2026-06-09T16:39:32+09:00","era":"B","subject":"chore(coocon): [실증임시] timeout 15초 단축 — 분할 동작 stg 검증용 (검증 후 복구)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfd1e2ef701412f7e2f60860b80d480c514669ea","date":"2026-06-09T16:18:38+09:00","era":"B","subject":"test(coocon): 분할 경계 겹침0/누락0 검증 추가","body":"5년간 주간 진료일(~260개)을 깔고 분할 후 각 진료일이 정확히 1구간에만\n잡히는지 확인. next=mid+1(쿠콘 inclusive 가정)이라 겹침/누락 없음.\n쿠콘이 exclusive면 next=mid로 조정 필요(API 동작 확인 대상).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"86371cc00d69e2689b96765a7314a1bb27e52312","date":"2026-06-09T16:05:55+09:00","era":"B","subject":"test(coocon): 동적 재분할 단위 테스트 5종","body":"auth.call mock으로 타임아웃을 흉내내(실 쿠콘 불필요) collectMedical 검증:\n- 큰 기간 타임아웃(소켓끊김) → 날짜 이분 분할 후 4구간 병합\n- 8000F101 응답도 동일하게 분할\n- 한쪽만 무거우면 그쪽 가지만 분할(성공 가지 미접촉)\n- 타임아웃 아닌 에러는 분할 없이 실패 전파(분할 트리거 한정 보장)\n- MAX_DEPTH 도달까지 타임아웃이면 더 분할 않고 throw","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"libs/coocon/src/coocon.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7013e70e3ac8b6aa75a8422eaf869c59655b9d5c","date":"2026-06-09T16:00:06+09:00","era":"B","subject":"feat(coocon): 진료 수집 조회 타임아웃 동적 재분할 (8000F101/소켓끊김 한정)","body":"5년치 내진료정보열람이 무거우면 300초 timeout으로 끊기던 것을, 조회기간을\n날짜 이분으로 재귀 분할해 재시도한다(쿠콘 제안 일반화).\n- 분할 트리거는 쿠콘 \"조회 타임아웃\"에 한정: errorCode 8000F101 또는\n  소켓끊김(ECONNABORTED/ETIMEDOUT/socket hang up). 그 외 에러는 분할 없이 실패 전파.\n- 타임아웃 난 구간만 또 양분(이분 탐색), 성공 구간은 안 건드림. MAX_DEPTH=2(1.25년)에서 멈춤.\n- 세션('S') 재사용 → 인증/로그아웃 1회, 내진료정보열람만 분할 다회 호출.\n- 두 구간 결과(개인진료정보요약/기본진료내역/세부진료정보/처방조제정보)는 배열 concat 병합.\n  기간이 안 겹치게 분할(mid+1)하므로 중복 없음.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d772d0ad5cd927170a03b91b387c30fc75b64df3","date":"2026-06-09T15:36:08+09:00","era":"B","subject":"merge: stg → prod (엑셀 다운로드 실패사유 배치 IN쿼리 최적화 + requestTimeout 30분)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a75fdf792bd7c107d6d00be23fa424b129bc9c0c","date":"2026-06-09T15:17:46+09:00","era":"B","subject":"perf(order-detail): 엑셀 export 실패사유를 배치 IN쿼리로 (행당 서브쿼리 제거)","body":"- 행마다 log_treat 상관 서브쿼리 2개(약 40만회) → 배치당 IN쿼리 1회(ROW_NUMBER 최신 1건)\n- 자동실패(ODD004) 폴백은 Node에서 재현(쿼리 COALESCE와 동일 기준)\n- 분석관리 다운로드 ~310초 → 대폭 단축(IN쿼리 2000건 0.2초 실측)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3669a6b27c6da9b767616642e3e51877b8eadc89","date":"2026-06-09T15:07:33+09:00","era":"B","subject":"fix(api): 대용량 엑셀 다운로드 requestTimeout 5분→30분 상향","body":"- 분석관리(10만행+) 다운로드가 Node 기본 requestTimeout(300초)에 'request aborted'로 잘리던 문제","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d65dc450ba5396a3a87eb44d01424549260235f","date":"2026-06-09T14:36:10+09:00","era":"B","subject":"merge: stg → prod (엑셀 처리업체·실패사유 컬럼 + 다운로드 계측 로깅)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a72e8a038bd2b544e80aecb75e02a31ba853af4","date":"2026-06-09T14:26:07+09:00","era":"B","subject":"chore(excel): 분석관리·분석로그관리 다운로드 배치/행수/에러 계측 로깅","body":"- 전체다운로드 조기 종료 원인 진단용: 배치별 진행·최종 행수·실패 스택 로깅","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b27fd9bb8ad176c6483bc0e6a778e6789b8daed1","date":"2026-06-09T14:12:47+09:00","era":"B","subject":"fix(treat-log,order-detail): 엑셀에 처리업체·실패사유 컬럼 추가","body":"- 분석로그관리: 처리업체(codefProvider)\n- 분석관리: 처리업체(oddProvider)·실패코드·실패사유 (쿼리엔 있었으나 엑셀 컬럼 누락)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d9a083afdb6fd9f4cacda693708e0a61636b86a0","date":"2026-06-09T14:02:14+09:00","era":"B","subject":"merge: stg → prod (분석관리·분석로그관리 엑셀 전체다운로드 배치 스트리밍)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7317c7873abed6f66c356096a974160ed1bc172","date":"2026-06-09T13:59:46+09:00","era":"B","subject":"fix(treat-log): 분석로그관리 엑셀 전체다운로드 keyset 배치 스트리밍","body":"- log_treat 30만+ 행을 한 번에 받던 구조를 ltrId keyset 2000행 배치 스트리밍으로\n- 응답 즉시 시작 → 게이트웨이 타임아웃 회피, 메모리 일정","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"757c7b9092e062bc9a92a2c21c3585de4827cba0","date":"2026-06-09T13:07:11+09:00","era":"B","subject":"fix(order-detail): 분석관리 엑셀 전체다운로드 keyset 배치 스트리밍","body":"- 10만+ 행을 한 번에 받던 구조를 oddId keyset 2000행 배치로 스트리밍\n- 응답 즉시 시작 → 게이트웨이 타임아웃 회피, 메모리 일정 유지\n- 전체(무필터) 다운로드 정상화","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ceeeaad7250cdfac74553df9159683cbd5d2428","date":"2026-06-09T11:22:54+09:00","era":"B","subject":"merge: stg → prod (벤더 거래번호 reqCd/trSeq 저장 + 하이픈 실제코드 노출)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3387bdd7e1d93722a41463a2f8203c20a1d53e90","date":"2026-06-09T10:51:17+09:00","era":"B","subject":"fix(treat): 벤더 거래번호 저장 + 하이픈 실제코드 노출","body":"- 하이픈 reqCd를 1차 세션에 실어 2차까지 동일 유지(주문 분석번호=로그 거래번호 정합)\n- 하이픈 reqCd·쿠콘 trSeq를 성공/실패/타임아웃 전 경로에서 transactionId로 기록\n- 타임아웃 예외에 거래번호(vendorTx) 실어 jti 블롭 대신 실제 추적키 저장\n- 하이픈 [B0002-999] 등 실제 코드를 결과코드로 끌어올림(CF-99999 포장 제거)","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a17e7f30d74eda3483c962aaf89e4d13009cbf1d","date":"2026-06-08T15:12:11+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fac460957e65da6c762a017700c0d4daf9832bc2","date":"2026-06-08T14:47:47+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ed62705b4bb086944239884ba24d654ae868149","date":"2026-06-08T14:41:27+09:00","era":"B","subject":"fix(treat): providerFromTag를 treat-tag.util로 분리 — 모듈 순환참조 해소","body":"직전 변경에서 log-treat.service가 providerFromTag를 treat-dispatcher.service에서\nimport하며 log↔dispatch 모듈 순환이 생겨, TreatModule 생성 실패로 ECS 헬스체크가\n깨지고 새 task가 롤백됐다(stg/prod 모두 옛 이미지 유지, 수정 미반영).\n순수 인코딩 함수(DispatchTag/encodeTag/decodeTag/providerFromTag)를 의존 없는\ntreat-tag.util로 추출하고, dispatcher는 providerFromTag를 re-export해 기존 import\n경로를 호환 유지. log-treat은 util에서 직접 import해 순환 고리를 끊음.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-tag.util.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6a39e48eee59cef09ac016b533fc93f1a6a4641","date":"2026-06-08T14:18:29+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"afe46362ce10f49a27e3abdf42139d6cef9dc1b4","date":"2026-06-08T14:12:50+09:00","era":"B","subject":"fix(order): 분석관리 처리업체(oddProvider) 검색 400(E0003) 수정","body":"조회 DTO의 oddProvider 필드에 class-validator 데코레이터가 없어,\nValidationPipe(whitelist+forbidNonWhitelisted)가 화이트리스트 미등록 속성으로\n거부(E0003 입력값오류)하던 것. @IsOptional()+@IsString() 추가.\n@ApiPropertyOptional은 swagger 문서용이라 검증에는 영향 없었음.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"abc7ef48025b141a1e49fcb75d40b968aef52529","date":"2026-06-08T14:06:01+09:00","era":"B","subject":"fix(treat): 분석로그 2차 처리업체 기록 + 백업 자동처리 최종상태·실패사유 표시","body":"- log-treat: 2차 자료수집(CRS002) 로그에 codefProvider가 누락돼 처리업체가\n  관리자 화면에서 빈칸이던 것을, jti(1차 성공 시 디스패처 태깅)에서 복원해 기록.\n  단일모드면 null이라 기존 동작과 동일.\n- order-detail: 백업 자동 실패처리건의 최종분석상태를 인증실패(ODD004)로 통일.\n  분석관리 조회 failCode/failMessage에 fallback 추가 — log_treat 실패행이 없는\n  자동처리건도 raw odd_state로 단계 구분 사유([자동] 인증 미완료 / 자료수집 미완료) 노출.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48431bf697e78507b002ce3dbaafe434e720ede7","date":"2026-06-08T10:51:06+09:00","era":"B","subject":"feat(treat-test): 벤더 자격증명을 TEST_DEV_*/TEST_PROD_* 로 분리(실서비스 env와 격리)","body":"UI select(dev/prod)에 따라 getConfig가 TEST_DEV_/TEST_PROD_ 접두사 env를 읽음.\n실서비스 env(CODEF_ID 등)는 그대로 유지.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat-test/config/profiles.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6431ee639b157f8d53317460f55cbd920159d5b0","date":"2026-06-08T10:30:30+09:00","era":"B","subject":"fix(treat): 하이픈 I0001-004(보안문자 불일치) 분류 추가 — prod 실측","body":"prod 하이픈 첫 실패 로그에서 resCd=0000 errYn=Y, errMsg '[I0001-004] 보안문자가\n일치하지 않습니다'로 확인. vendor-map에 누락돼 UNKNOWN(generic)으로 분류되던 것을\nINPUT_INVALID로 매핑. errMsg '[코드]' 파싱 형식은 실측으로 가정대로임이 검증됨.\nresolver.spec에 해당 실측 케이스 회귀 테스트 추가.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-resolver.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b444a6d3229ad25ffa896bc813b50e331add2ed4","date":"2026-06-08T10:17:40+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb64649ca222761efc1b215b31e7fc45d2c741e5","date":"2026-06-08T09:43:07+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f79a8f4faf73c6387274e74f9e82ce078cf31287","date":"2026-06-08T09:41:50+09:00","era":"B","subject":"fix(treat): 대기열 admit 자격을 active(최근 폴링)로 분리 — 백그라운드 맨앞 슬롯 점거 해소","body":"ALIVE_MS 90초만으로는 맨앞이 백그라운드면 그 슬롯을 90초 막아 회전이 정체됐다.\n큐 생존(alive 90초)과 admit 자격(active 12초)을 분리:\n- status가 alive·active 둘 다 갱신, enqueue도 active set(첫 폴링 전 오인 방지)\n- issueAdmit 조건을 '앞에 active한 대기자 없음'으로(anyActiveAhead)\n  → 백그라운드(active 만료) 맨앞은 건너뛰고 뒷사람이 입장, 순번은 alive로 보존\n- anyActiveAhead는 Lua early-exit(맨앞부터 첫 active에서 종료)로 폴링당 O(rank) 부하 회피\n- jest 3종 추가(백그라운드 건너뛰기 / 새치기 차단 유지 / 복귀 시 admit)","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.spec.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c1bc56c3900bb95f5ba00d5e3ec9b5ed9f0ba5ef","date":"2026-06-08T05:14:46+09:00","era":"B","subject":"merge: stg → prod (분석로그관리 카운트 최적화·중복조인 수정 + 분석관리 처리업체 검색)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f3a4a1c9c6c03fc1b19a4fa545c8f9eaa44a13c1","date":"2026-06-08T05:12:50+09:00","era":"B","subject":"fix(treat-log): 분석로그관리 목록 중복 제거 - 회원 조인에 agc_id 추가","body":"mem_login_id가 여러 기업에 활성 공존(유니크 제약 없음)해서, (login,type)만\n조인하면 그 로그인의 모든 기업 회원이 붙어 로그가 1.75배 뻥튀기 + 엉뚱한 기업명\n표시되던 문제. 조인에 agc_id <=> (null-safe) 추가해 해당 기업 회원 1명만 매칭.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39029d0e258b4205c876e15b27407b1e06df0dde","date":"2026-06-08T04:59:06+09:00","era":"B","subject":"perf(treat-log): 분석로그관리 카운트 쿼리 조인 제거","body":"페이지 병목이던 카운트(12만행+4조인 ~1.5s)를, 영업필터(sagId/sacCode) 없을 때\nlog_treat 단독 카운트로. agcId도 log_treat 컬럼 직접 필터로 바꿔 조인 의존 제거.\n영업필터 있을 때만 기존 조인 유지(동작 보존).","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"207f550140f3dbc086a2258238f8373d843efcc9","date":"2026-06-08T04:57:40+09:00","era":"B","subject":"Merge branch 'feature/treat-vendor-error-handling' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e47e6c146e9e9bd41c6ca0d31d7ed300bfaeca42","date":"2026-06-08T04:54:13+09:00","era":"B","subject":"fix(treat): 대기열 하트비트 TTL 15초→90초 (백그라운드 이탈 완화 ②)","body":"모바일 백그라운드로 폴링 setTimeout이 스로틀되면 15초 TTL이 정상\n대기자를 이탈로 오판. 90초로 늘려 짧은 화면 끔/앱전환을 견딘다.\n창 닫기(진짜 이탈)는 sendBeacon leave로 즉시 제거되므로 좀비 안 쌓임.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c86c0ba8a246042bf423df63b2e26634bb7239b","date":"2026-06-08T04:49:28+09:00","era":"B","subject":"feat(order-detail): 분석관리 처리업체(공급자) 검색조건 추가","body":"GetCommonOrderDetailListDto에 oddProvider 필터 + whereClause eq 조건 추가.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b22c3c4e862f26385a6af0a023c699cb93dae013","date":"2026-06-08T04:44:13+09:00","era":"B","subject":"merge: stg → prod (실패사유 자동차 미수집·대기열 제외 수정)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"24af1705589a9b0b1f9655a10a34faaa1532dab0","date":"2026-06-08T04:42:36+09:00","era":"B","subject":"fix(order-detail): 실패사유에서 자동차 미수집(CAR-NODATA)·대기열 제외","body":"자동차 2차 수집(CAT002/CAR-NODATA)은 미수집이 정상인데 log_treat에 CRT002로\n찍혀, 분석완료 건도 실패사유에 '자동차 진료정보 미수집'으로 잡히던 버그 수정.\n자동차/CAR/CF-QUEUE 제외해 진짜 실패만 노출.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4a20d8643af354c3c3518b2f0d9d239dd3487f2c","date":"2026-06-08T04:15:16+09:00","era":"B","subject":"merge: stg → prod (분석관리·로그관리 실패사유·처리업체 필터·실패메시지 + 조회 인덱스 + rate-limit 모니터·에러라벨)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"43c332f05683d5660b10e90c48fa5382a8222021","date":"2026-06-08T03:49:36+09:00","era":"B","subject":"feat(order-detail): tn_order_detail 조회 인덱스(0008) - 분석관리 정렬/필터 성능","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"drizzle/0008_order_detail_indexes.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cf13a1c62e126c5cbca82a16c49bd53113a9c1a7","date":"2026-06-08T03:45:35+09:00","era":"B","subject":"feat(order-detail): 분석관리 실패사유(마지막 실패 로그) 노출","body":"order_detail 목록에 failCode/failMessage 추가 — 해당 거래의 마지막\n실패(CRT002) log_treat 코드·메시지를 상관 서브쿼리로 가져옴(성공행 NULL,\nidx_odd_tx 인덱스 사용). 분석관리에서 인증/분석 실패 사유를 바로 확인.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c44e0be4d334f5626a358c96873ee65472b14f0","date":"2026-06-08T03:02:27+09:00","era":"B","subject":"feat(treat-log): 분석로그관리 처리업체 필터·실패메시지 검색 + 조회 인덱스","body":"- log_treat에 codef_provider(처리업체) 필터·응답 컬럼 추가\n- 결과메시지(codef_result_message) 검색조건 추가\n- 0007 마이그레이션: 조회 성능 인덱스(ltr_created_at / status·provider 복합 /\n  odd_transaction_id). PK 단일 인덱스라 풀스캔이던 목록 정렬·필터 개선. 수동 적용.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0007_log_treat_indexes.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1984e61482371a71d970a4e283dba5fb6fd44ca7","date":"2026-06-08T03:02:27+09:00","era":"B","subject":"feat(treat-log): 분석로그관리 처리업체 필터·실패메시지 검색 + 조회 인덱스","body":"- log_treat에 codef_provider(처리업체) 필터·응답 컬럼 추가\n- 결과메시지(codef_result_message) 검색조건 추가\n- 0007 마이그레이션: 조회 성능 인덱스(ltr_created_at / status·provider 복합 /\n  odd_transaction_id). PK 단일 인덱스라 풀스캔이던 목록 정렬·필터 개선. 수동 적용.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0007_log_treat_indexes.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44f49dabfa0b288a04be67dcef3472d8d12b51c3","date":"2026-06-08T02:46:39+09:00","era":"B","subject":"feat(treat): 1차 인증 실패 HTTP에 라우팅 벤더 전파 (⑤b 일부)","body":"certify 1차 실패 throw에 dispatcher가 부착한 provider를 vendor로 실어\nfilter가 coocon·hyphen native코드를 codef 폴백이 아닌 실제 벤더로 분류.\n사용자가 가장 자주 보는 1차 인증 에러부터 정확해진다.\n\n- 2차 동기 경로(errorTreat)·미사용 errorCertify는 후속","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0afb594e110cd3844015efa6e3d58ed937fa8471","date":"2026-06-08T00:16:07+09:00","era":"B","subject":"feat(treat): HTTP 에러 응답에 category·retryable 부착 (⑤ filter)","body":"CodefExceptionFilter가 resolveTreatError로 통합 분류해 기존 응답에\ncategory·retryable 필드를 덧붙인다. 기존 stage별 응답(INVALID_INFOMATION\n등)은 그대로 보존(mapped) — 회귀 없음, 필드만 추가(하위호환).\n\n- 프론트가 retryable로 '일시오류 재시도 vs 진짜실패'를 구분 가능(갭 A 기반)\n- vendor는 CodefException에서 전달, 없으면 codef 폴백\n- 비codef HTTP 정확 분류는 treat.service throw의 vendor 배선 후 완성(후속)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/fliters/codef-exception.filter.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"524154e8fce16f04a92aac9b9ac582b294f74a5a","date":"2026-06-08T00:13:07+09:00","era":"B","subject":"feat(treat): 알림톡 에러 메시지를 통합 resolver로 연결 (②③④)","body":"codefErrorMessage switch(codef 21케이스)를 resolveTreatError로 교체.\ncodef는 기존과 동일 메시지(resolver 36테스트 보장), coocon·octover·\nhyphen native코드도 이제 category로 분류돼 generic default를 벗어남.\n\n- errorTreat: jti 태그(providerFromTag)로 처리 벤더 식별 → resolve에 전달\n- CF-03002(2차)는 loginType 의존 특수 메시지라 분기 유지\n- CodefException에 vendor 부착 (⑤ filter의 category·retryable 해석용)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6e323b575986db1cb353a115fd46386caaf8f59","date":"2026-06-08T00:05:01+09:00","era":"B","subject":"feat(treat): 4벤더 통합 에러 분류(category) resolver 도입","body":"server/docs/treat-vendor-error-handling.md 기반. codef·coocon·octover·\nhyphen native 코드를 단일 category로 수렴시켜 유저/알림톡 메시지·재시도성의\n단일 출처를 만든다. 아직 출력지점(filter/event-handler) 미연결 —\n순수 추가라 운영 동작은 무변경(① 단계).\n\n- category 18종 + 메타(userMessage·alimtalkMessage·retryable·audience)\n- vendor-map: 문서 3장 매핑 그대로 (codef 16 / coocon / octover / hyphen)\n- resolve(vendor, native, errMsg?): hyphen errMsg '[코드]' 보정 포함\n- retryable: 일시오류(network·vendor·timeout) vs 진짜실패(input·age·app) 구분\n- 테스트 36: codef 알림톡 메시지 보존 + 벤더 매핑 + 폴백 + null 안전\n\n베이스: feature/treat-slot-staged-ttl (jest 인프라 의존)","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/treat/error/index.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/error/treat-error-category.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/error/treat-error-resolver.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/error/treat-error-resolver.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/error/treat-error-vendor-map.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ab3bf98ca29194c2084e83f72678867b9e40946","date":"2026-06-07T23:23:57+09:00","era":"B","subject":"fix(treat): 2차 진료조회 예외 실패 시 진료 로그 누락 수정","body":"- 2차(treatCompare) fetchTreatmentMultiple이 예외(타임아웃/E0304/네트워크)로\n  실패하면 createTreatLog 적재 전 핸들러가 중단되어 로그관리에 미표시되던 문제 수정.\n  예외 시에도 실패 로그를 적재하고 인증실패(ODD004)+예약 환불 처리 후 중단.\n- createCertLog/createTreatLog의 result.message null 가드 추가\n  (message 없는 응답에서 로그 적재 자체가 throw되어 누락되던 문제 방지).","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"624366f8d544d976c59141ae6a66786c53be8598","date":"2026-06-07T23:19:32+09:00","era":"B","subject":"test(treat): 대기열 중간 이탈 케이스 검증 추가","body":"맨앞이 아닌 중간 위치 이탈자 처리 경로를 명시적으로 검증.\n\n- 중간 이탈자는 pruneFront가 못 잡음(살아있는 맨앞에서 break) →\n  full prune(전체 스캔)이 제거 + dropped 집계. prune 전에도\n  aliveCount는 exists로 실시간 유령 제외.\n- 중간 좀비가 앞사람 빠져 맨앞 도달 시 pruneFront 즉시 제거 →\n  READY는 죽은 좀비가 아닌 산 사람에게만 발급(새치기/헛READY 방지).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d857c45d6af8556ce6b2651c67aa36a8fdf3fefe","date":"2026-06-07T22:54:40+09:00","era":"B","subject":"test(treat): 대기열 TreatQueueService 통합 테스트 8종","body":"오버플로 대기열 실 코드를 실 redis로 검증(기존엔 dispatcher에서\nmock으로만 덮여 빈 구멍이던 영역).\n\n- FIFO 순번(position/ahead)\n- 맨앞+슬롯여유 → READY, issueAdmit이 그 슬롯을 hold 선점(새치기 차단)\n- 만석(20) → 맨앞이어도 READY 보류(WAITING)\n- 본인 하트비트 끊김 → status EXPIRED + 큐 제거\n- 맨앞 이탈 → pruneFront 정리, 뒷사람 승급 + dropped 집계\n- isStillQueued / aliveCount(유령 제외) / metrics(size·alive·ghost·capacity)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.spec.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39b933dac03fa9739edd7dc5e454d6c94f2f4e93","date":"2026-06-07T22:41:10+09:00","era":"B","subject":"test(treat): 슬롯 단계별 TTL 통합·단위 테스트 + jest 도입","body":"테스트 인프라(jest+ts-jest)를 신규 도입하고, 슬롯 회전 로직을\n실 redis 대상으로 검증. prod 빌드는 tsconfig.build의 spec 제외라 무관.\n\n- jest 설정: ts-jest, alias(@api/@lib) 매핑, drizzle/* 스텁\n  (dispatcher가 값 import로 끌어오는 스키마 체인 차단, repository 미호출)\n- reservation 단위 8: reserve 하드캡·동시경쟁 race, refresh XX purge거부,\n  OTP 자동회수, slotStat score-window, admit 1회소비, settle\n- dispatcher 통합 4: 실제 TreatDispatcher+실 redis로\n  CF-03002→OTP(180s) / treatCompare→COLLECT(420s)+settle /\n  인증실패 즉시 settle / 만석→CF-QUEUE 초과점유 없음\n- npm test = jest","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.spec.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.spec.ts","old_path":null,"score":null},{"status":"A","path":"jest.config.js","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"A","path":"test/jest-drizzle-stub.js","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"12c1c89f12038f23394424f441fc358f02a440d9","date":"2026-06-07T18:40:15+09:00","era":"B","subject":"feat(treat): 슬롯 단계별 TTL — OTP 대기 이탈 회전율 개선","body":"1차 시작~2차 완료를 단일 10분 TTL로 잡던 것을 단계 전환마다\nrefresh로 재설정. OTP 미입력 이탈 슬롯을 10분→3분에 회수.\n\n- 상수 3분할: RESERVE 360s(1차 백업) / OTP 180s / COLLECT 420s\n- CF-03002 시점 refresh(OTP) — 1차 지연(codef)을 OTP 타이머에서 분리\n- 2차 진입(treatCompare) refresh(COLLECT) — 수집 구간 커버\n- promoteHold를 OTP_TTL로 + slotStat score-window 필터\n  (확정 hold 유령 카운트 제외, rename 누수 회피)\n- admit 경로 1차 호출 전 refresh(RESERVE) — 직접 경로와 대칭\n  (18s hold가 codef 1차 도중 만료→되살림 동시성 초과 방지)\n- 동시성: maxFlows 하드캡 유지\n\n배포 전 stg E2E 필수: zadd XX CH / zrange WITHSCORES 실동작,\n1차→OTP→수집 정상, OTP 미입력 3분 회수, 만석 admit 경로.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97bd45754e663da3edfae98e639a6773023fbfb1","date":"2026-06-07T18:11:30+09:00","era":"B","subject":"fix(treat-monitor): 에러 코드 라벨 정확도 수정","body":"failLabel이 8000*=수집오류, CF-*=CODEF오류, 나머지=기타로 뭉개\n틀린 라벨 표시(CF-12103을 2차인증실패로, 42110000을 기타로 등).\n실제 prod 로그 기반 코드 사전으로 교체. 미등록 코드는 틀린 라벨 대신\n코드 그대로 노출.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2df76b03ee8f005292b876699177002dfd5b8622","date":"2026-06-07T17:52:57+09:00","era":"B","subject":"feat(treat-monitor): 공급자 분당 rate-limit 사용량 모니터링 추가","body":"분당 rate-limit(타임) 설정을 모니터에 노출. provider에 rateEnabled,\n분당허용건수(ratePerMin=분당한도÷플로우비용), 최근 60초 실호출(rateUsed) 추가.\nreservation.rateUsed()는 Redis rate ZSET(treat:rate:*)의 60초 슬라이딩 카운트.\n벤 방지 한도 근접도를 운영에서 바로 확인.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"411ba998cbfa2c5bc758acc1773487bf00985dcf","date":"2026-06-07T16:23:23+09:00","era":"B","subject":"merge: stg → prod (인증 입력 사전검증)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aa901f69659d59bceb7b1e783dab59bb20f82459","date":"2026-06-07T15:56:14+09:00","era":"B","subject":"feat(treat): 인증 입력 사전검증 (체크섬·생년월일·만14세 — 대기열·codef 진입 전 차단)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"A","path":"apps/api/src/helpers/identity.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b65e416f1292d8fbd6221d9386ad6cb93a871d74","date":"2026-06-07T15:22:44+09:00","era":"B","subject":"feat(treat-monitor): 파이프라인 완료/실패를 24시간 기준으로 통일","body":"파이프라인 퍼널이 진행단계는 24시간 backlog인데 완료/실패만 10분이라\n한 박스에 시간창이 섞여 혼란. overview()에 24시간 완료/실패/인증실패/\n분석실패 집계 추가해 퍼널은 24시간으로 통일(분당 처리율 10분은 요약 보드 유지).","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"03850ef07adb74b90074ea42d12a979932a80784","date":"2026-06-07T14:03:45+09:00","era":"B","subject":"ci: 눈물의 다이어트 2탄 - Docker 레이어 캐시로 빌드 단축","body":"build 잡 Docker 빌드가 매번 npm ci+네이티브 컴파일(koffi/cmake)을\n처음부터 수행하던 문제 해결.\n\n- dockerfile: 의존성 레이어(package*.json→npm ci)를 소스 COPY 앞으로\n  분리. 소스만 바뀌면 무거운 deps 레이어 캐시 재사용.\n- api.yml: docker build → buildx + GHA 레이어 캐시(cache-from/to gha).\n  러너가 매번 새 머신이라 외부 캐시로 레이어 재사용.\n\npackage-lock 안 바뀐 배포는 nest build만 → 빌드 ~2분20초에서 대폭 단축.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"023d01aacdf6adfadf7604b6f451804976088319","date":"2026-06-07T13:19:49+09:00","era":"B","subject":"Merge branch 'test/treat-error-tester' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2296e03abb6c48b4eeb59fc993af514ae290b0b9","date":"2026-06-07T13:17:46+09:00","era":"B","subject":"feat(treat-test): 진료내역 벤더 오류 RAW 테스터(관리자 전용)","body":"- 4벤더(codef/coocon/octover/hyphen) raw 어댑터 + reference 이식\n- S3 JSON 저장소(catalog/coverage) + 기존 수집분 최초부팅 시드(.initialized 마커)\n- 카탈로그 메모/수정/삭제, 커버리지 결과 수정/삭제 엔드포인트\n- @Controller('admin/treat-test') + AdminJwtAuthGuard, getConfig는 ConfigService 사용\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/config/profiles.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/reference/flows.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/reference/mapping-reference.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/store/seed.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/store/treat-test.store.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/treat-test.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/treat-test.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/treat-test.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/codef.vendor.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/coocon.vendor.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/crypto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/http.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/hyphen.vendor.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/octover.vendor.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat-test/vendors/types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e88d4ed50a3a461e8f70a73d0a62db72c62f7a9","date":"2026-06-07T13:14:53+09:00","era":"B","subject":"merge: stg → prod (rate-limit + 대기열 입장권 게이트 1~3단계)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3aeef51d9c5d500e1fb5fba6c0d37c962ee8ba95","date":"2026-06-07T13:09:08+09:00","era":"B","subject":"perf(treat): 대기열 폴링 부하 최적화 (3단계: prune 경량화)","body":"- pruneFront: 맨앞 죽은 대기자만 즉시 정리(앞막힘 방지) — 핫패스 경량\n- maybeFullPrune: 전체 스캔은 인스턴스당 10초 throttle → 폴링당 O(N) 부하 제거\n- 중간/뒤 좀비는 throttle 전체 prune에 위임(순번 영향 없음)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"105822f4c9a46b5b4cda1d13d38ea4c2d6b3a648","date":"2026-06-07T12:57:46+09:00","era":"B","subject":"feat(treat): 대기열 입장권 게이트 (2단계: 새치기 차단 + 슬롯 hold)","body":"- reservation: issueAdmit/consumeAdmit/promoteHold/slotStat\n  · 슬롯+rate 동시점검 Lua(rate ON 공급자 헛입장권 방지), hold 멤버 'hold:' 접두사로 정식예약과 구분\n  · consume는 GET+DEL Lua(Redis 6.2 GETDEL 의존 제거), 멱등\n- queue.status: anySlotFree→issueAdmit (맨앞에게 슬롯 hold + 입장권 발급) + aliveCount\n- dispatcher: 재요청 입장권 소비(공급자측 실패 시 hold 반납 후 폴백), 신규는 여유분(freeSlots-(대기자-hold))>0 일 때만 직접(새치기 차단)\n- 로컬 통합검증(iu-redis): 새치기 차단·입장권 입장 통과","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"71d3a4e59089c68baabb649a0d1fb8da2a52d646","date":"2026-06-07T12:57:11+09:00","era":"B","subject":"ci: api 배포 워크플로 다이어트 - 단일 이미지 빌드로 통합","body":"배포 1회당 Docker 이미지를 16개(api + 스케줄러 15) 빌드하던 것을\napi 이미지 1개 빌드로 통합. dockerfile이 런타임에 RUN_MODE/SCHEDULER_TYPE\nenv로 분기하므로, 스케줄러 task-def들은 동일 api 이미지를 재사용하고\n해당 env만 주입해 리비전을 재등록한다(빌드 0회).\n\n- build: api 이미지 1회 빌드 후 ECR push (nest build 타입체크 포함)\n- deployApi: 빌드 이미지 재사용해 서비스 배포\n- deploySchedules: 15개 스케줄러 task-def를 api 이미지+env로 재등록\n  (EventBridge가 패밀리 참조라 최신 리비전 자동 적용)\n\nGitHub Actions 빌드 분량 약 16배 → 1배 수준으로 감소.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8abc47402e4d05d4b40d4fd253cabba0ecccae4b","date":"2026-06-07T01:55:46+09:00","era":"B","subject":"chore(deploy): GitHub CI 우회 로컬 배포 스크립트 추가 (deploy-api.sh)","body":"결제/한도로 Actions 막힌 동안 origin/<env> 브랜치를 docker build→ECR→ECS 롤링으로 직접 배포. 준비물·사용법 README 포함. api 전용(스케줄러는 TODO).","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"A","path":"deploy/README.md","old_path":null,"score":null},{"status":"A","path":"deploy/deploy-api.sh","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f081b9e4769d46465ea010e09da680a4ccb32deb","date":"2026-06-07T01:26:24+09:00","era":"B","subject":"feat(treat): 대기열 재요청 시 순번 유지 (1단계: queueId 인계)","body":"- CertiftDto.queueId 추가 → certify가 dispatcher에 인계\n- dispatcher: 만석 시 재요청(queueId 생존)이면 기존 순번 유지(재enqueue 금지), 죽었으면 재진입(영구 미아 방지)\n- TreatScraper 인터페이스 reqQueueId? optional 추가(단일 공급자 무변경)\n- queue.isStillQueued 추가(alive+rank 확인 + 재요청 생존 갱신)\n- 새치기 차단·슬롯 hold(admit 게이트)는 2단계","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.interface.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9115819363a8e09c79661c974d898b3e2abf1251","date":"2026-06-06T22:26:23+09:00","era":"B","subject":"feat(treat): 공급자별 분당 rate-limit(타임) 토글 + 1차 실패 폴백","body":"- tn_treat_provider.tpr_rate_enabled 추가: ON이면 limitPerMin/flowCost를 '분당 허용건수'로 적용\n- reservation.rateAllow(): sliding window 60초 (이탈해도 60초 hold = 벤 방지)\n- dispatcher: rate ON 공급자 분당 초과 시 다음 공급자로, IP차단(CF-12103)/예외 시 폴백\n- provider getPool/repo/dto에 rateEnabled 반영\n- ⚠️ stg/prod DB에 0006 마이그레이션 수동 적용 필요","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0006_treat_provider_rate.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d09fa3a02592180dd5962ae651a3bc69ae13e965","date":"2026-06-06T21:05:52+09:00","era":"B","subject":"merge: stg → prod (인증방식 라벨 CCF)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a7ad935c946107f52480b281b4016072aac28d7","date":"2026-06-06T21:05:48+09:00","era":"B","subject":"fix(treat-monitor): 인증방식 코드 라벨 수정 (CCT→CCF, CCF002=휴대폰 등)","body":"실제 codef_cert_type는 CCF00x인데 매핑이 CCT00x라 raw코드(CCF002)가 노출됐다. 인증서/휴대폰/카카오톡/페이코/삼성패스/KB/PASS/네이버/신한/TOSS 매핑.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"165076bb1a9c36d9bedfc7af4a5ad1cf33b0d3b7","date":"2026-06-06T21:00:28+09:00","era":"B","subject":"merge: stg → prod (파이프라인 24h 기준 한정)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0020ce1a973573559ce5740ed686d80337618685","date":"2026-06-06T21:00:25+09:00","era":"B","subject":"fix(treat-monitor): 진행 파이프라인을 최근 24h 기준으로 한정","body":"final_state 미박힘 전체를 세던 것을 odd_created_at 24h 내로 제한. 몇 달 된 장기 미종결(좀비)이 자료수집 정체로 오탐되던 문제 해결. 분석은 수분이면 끝나 24h면 실제 진행건은 다 포함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bfa5922bd860132bf19250eba8cc369b9fe1e626","date":"2026-06-06T20:44:49+09:00","era":"B","subject":"merge: stg → prod (예약 TTL 10분 복원)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6c354a3e3189e66246a90811ce4b3871b5d4921","date":"2026-06-06T20:43:47+09:00","era":"B","subject":"fix(treat): 예약 TTL 10분 유지 (heartbeat 미배선 prod에서 슬롯 조기회수 방지)","body":"슬롯은 2차 settle까지 점유되어 OTP승인+수집(3.4분) 전구간을 단일 타이머로 버텨야 함. refreshReservation 엔드포인트가 운영 배선되기 전까지 검증된 600s 유지.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dcf1e55b99c80f86ab9b28603762cd17e437261d","date":"2026-06-06T20:21:38+09:00","era":"B","subject":"merge: stg → prod (진료 모니터링·공급자 귀속·자동차제외·예약수 reconcile·1차인증 벤더)","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"00b0adc1c951f62de8a4bc2a09792e74e92debaa","date":"2026-06-06T20:20:22+09:00","era":"B","subject":"fix(treat-monitor): 레디스 장애 시 대시보드 500 방지 가드","body":"queue.metrics()/reservation.inflight() 실패를 catch해 대기열 지표만 0으로 폴백(나머지 정상)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7039b8b93ba02c0a6b1069017b0c747da159a9a","date":"2026-06-06T19:58:31+09:00","era":"B","subject":"feat(treat): 1차 인증 벤더 기록 + 벤더별 인증 모니터","body":"- log_treat에 codef_provider 추가(마이그 0006, nullable)\n- 디스패처: 1차 라우팅 벤더를 응답에 부착(성공·실패 공통) → order_detail 없는 인증실패도 벤더 귀속\n- createCertLog: codef_provider 기록\n- monitor: '1차 인증 벤더별' 패널(시도/성공/실패, log_treat 60분 기준)","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0006_log_treat_codef_provider.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b4ac53380b0bd8371d132916b03d810305ee401","date":"2026-06-06T19:05:09+09:00","era":"B","subject":"feat(push): 기업회원 푸시 발송 시 특정 기업 선택 지원","body":"- 기업회원(mem002) 대상 발송 시 특정 기업(agcId)만 선택 가능\n- 미선택 시 전체 기업회원 발송 (기존 동작 유지)\n- pshTargetUserIds 컬럼 재사용으로 DB 마이그레이션 불필요","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eecc08422004d486a5e6508e6bd165af60268d30","date":"2026-06-06T19:04:40+09:00","era":"B","subject":"fix(fc): 기업회원 수정 시 빈 orgId E0303 차단 완화 - 운영 조직 미가동 핫픽스","body":"edit(수정) 경로도 프론트가 빈 orgId를 보내면 E0303으로 차단됨. 빈값은\n소속 변경 의도가 아니므로 무시(덮어쓰기 방지)하고, 유효한 orgId일 때만 검증.\n\n(cherry picked from commit f6def80dcbad3f7bd2f3114abd0524b789adb9c7)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6def80dcbad3f7bd2f3114abd0524b789adb9c7","date":"2026-06-06T19:04:40+09:00","era":"B","subject":"fix(fc): 기업회원 수정 시 빈 orgId E0303 차단 완화 - 운영 조직 미가동 핫픽스","body":"edit(수정) 경로도 프론트가 빈 orgId를 보내면 E0303으로 차단됨. 빈값은\n소속 변경 의도가 아니므로 무시(덮어쓰기 방지)하고, 유효한 orgId일 때만 검증.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a53bdc4c367c77c819b81f95bba00a25c9d082fc","date":"2026-06-06T18:49:31+09:00","era":"B","subject":"fix(fc): 기업회원 신규등록 orgId 강제 완화 - 운영 조직 미가동으로 등록 전면차단 핫픽스","body":"운영은 조직(task-688) 데이터 미가동(전원 미지정)인데 신규등록에 orgId를\n필수 강제해 기업회원 추가가 전면 차단됨. orgId가 명시됐을 때만 소속검증하도록\n완화(엑셀 경로/운영 호환). 수정 경로는 기존대로 orgId 전송 시에만 검증.\n\n(cherry picked from commit 0f75beee1cf5abd3f0d220055f1228166fb42279)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f75beee1cf5abd3f0d220055f1228166fb42279","date":"2026-06-06T18:49:31+09:00","era":"B","subject":"fix(fc): 기업회원 신규등록 orgId 강제 완화 - 운영 조직 미가동으로 등록 전면차단 핫픽스","body":"운영은 조직(task-688) 데이터 미가동(전원 미지정)인데 신규등록에 orgId를\n필수 강제해 기업회원 추가가 전면 차단됨. orgId가 명시됐을 때만 소속검증하도록\n완화(엑셀 경로/운영 호환). 수정 경로는 기존대로 orgId 전송 시에만 검증.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"018421fc637e8c897bb2d257ca79899fe92c04ff","date":"2026-06-06T18:06:32+09:00","era":"B","subject":"feat(treat): 1차 인증부터 공급자 귀속 + 모니터링 집계 보강","body":"- certify: 1차 인증 라우팅 공급자를 odd 생성 시점부터 odd_provider에 기록(인증실패도 업체별 귀속, 멀티 디스패처 한정)\n- monitor: 업체별 1차/2차 실패, 현재 적체·정체, 12시간 추이(연속축), 인증실패(ODD004)/분석실패(ODD007) 분리, 자동차(CAT002) 제외, 디테일 패널 60분 창\n- queue: 대기시간 분포·최장/평균·유령·가용슬롯 metrics + 이탈 집계\n- reservation: OTP heartbeat refresh + inflight 조회","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fe91ca576262634046bfe656a067383996892e2","date":"2026-06-05T12:38:55+09:00","era":"B","subject":"fix(codef): 진료 단건 전송으로 다건 배열 거부(CF-09999) 해결","body":"(cherry picked from commit 20336d9f98e922def99bc0d8dc217fda1dc0e963)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bbd686f995cc46578dbe5392ab68393393c59294","date":"2026-06-06T14:18:53+09:00","era":"B","subject":"chore(db): 하이픈 공급자 시드 파일 0004→0005 리네임 (0004 메뉴 시드와 번호 충돌 정리)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"R","path":"drizzle/0005_treat_provider_hyphen.sql","old_path":"drizzle/0004_treat_provider_hyphen.sql","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53afec5e97c0e889bfa72d72e684f1fe2ef1c6dc","date":"2026-06-06T14:17:48+09:00","era":"B","subject":"merge: feature/hyphen-treact-api (하이픈 InfoTech 진료내역 공급자) into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6078e2f34d422b075d7e18b43cf28156826f7baa","date":"2026-06-06T14:00:23+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/prod' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f74f4354cd67c20893abcbe599dcf10d4ca6ac1c","date":"2026-06-06T13:53:31+09:00","era":"B","subject":"chore(db): 진료 모니터링 메뉴 시드 마이그레이션(0004)","body":"tn_menu + auth_map 멱등 삽입. 권한은 구독>분석관리 매핑 복사. prod 적용 시 수동 실행.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"drizzle/0004_treat_monitor_menu.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5523e063b150ecae99699449b65a37918d013ad0","date":"2026-06-06T13:39:11+09:00","era":"B","subject":"fix(treat-log): 분석로그에서 자동차(CAT002)+만석대기(CF-QUEUE) 제외","body":"정회원/B2C 분석로그 목록에서 자동차 수집 로그와 대기열 진입(CF-QUEUE) 로그를\n항상 제외해 노이즈 숨김 (NULL 안전 조건).","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"94efd1e1d521c357fcd647e506d324f7071873d9","date":"2026-06-06T13:32:05+09:00","era":"B","subject":"fix(queue): anySlotFree를 DB 풀(getPool)로 통일 - 대기열 헛 READY 방지 (핫픽스)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d8ca146a89c946c7d26eb3d2c4d144a835d2a294","date":"2026-06-06T13:21:22+09:00","era":"B","subject":"Merge feature/treat-monitor into stg (진료 모니터링)","body":"# Conflicts:\n#\tapps/api/src/modules/order/order/order.repository.ts\n#\tapps/api/src/modules/order/order/order.service.ts","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b2723b364a4ddd9628dc00e437c7d9b8501b3e5","date":"2026-06-06T13:19:16+09:00","era":"B","subject":"feat(treat): 진료 처리 실시간 모니터링 API 추가","body":"GET /admin/treat-monitor/overview — 큐(Redis)·슬롯 점유·처리량·진행중 상태·\n공급자 성공률·예약수 정합성·최근 실패코드를 한 번에 집계. 큐 metrics() 메서드 추가.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/monitor/treat-monitor.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/monitor/treat-monitor.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2270c55a33f3a8fe0e2e0506b36b51897851726","date":"2026-06-06T13:18:27+09:00","era":"B","subject":"refactor(hyphen): 정식 InfoTech 연동문서 기준으로 재작성","body":"크롤링(hyphen.im /in0165001213) 기반에서, 전달받은 정식 연동문서\n(InfoTech_API_공통가이드 / 건강보험심사평가원_서비스정의서) 기준으로 교체.\n\n- 엔드포인트: apigw.infotech.co.kr/api/service (헤더 api-cloud-key)\n- 바디 공통부: appCd + orgCd:'hira' + svcCd:'B0002' (평문, 암호화 없음)\n- 응답 봉투: resCd/out/outB0002 + 최상위 step_data — 평탄/래핑 양형태 모두 정규화(unwrap)\n- 통신사 mobileCo: SK/SM/KT/KM/LG/LM 로 정정\n- 2-step: 간편=step_data / SMS=userData+step_input(captchaPass→identityCheck)\n- 오류 2계층: 통신(resCd≠0000) + 업무(out.errYn=Y, [LOGIN-*]/[VALID-*]/[I0001-*])\n- hyphen.crypto.ts 제거(정식 스펙상 PII 암호화 없음), config는 baseUrl/apiKey/appCd 로 단순화\n- 매퍼(basic/detailed/prescription→res*TreatList)는 필드명 동일하여 재사용\n\n⚠️ 실호출 검증: captchaPass 자동통과 실패 시 수동 보안문자(captcha) 폴백 / EASY sign 하위단계 유무\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"D","path":"libs/hyphen/src/hyphen.crypto.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6da83eeb1d66d143b5fb4a85524721e427476e3","date":"2026-06-05T17:53:34+09:00","era":"B","subject":"fix(order): 예약수 누수 자가치유 reconcile를 analysis-status 스케줄러(5분)에 추가","body":"ord_reserved_qty를 실제 진행중(비종료 AND final_state IS NULL) order_detail 개수로\n주기 재계산. stale 인증실패(raw state는 ODD001로 남고 final만 박힘)를 진행중으로\n오판하지 않도록 final_state 필터 포함. 환불 누락으로 카운터가 새도 5분마다 자가치유.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bced36ecadc25b01fc3dfe58115c2f8dadd13ba2","date":"2026-06-05T17:41:17+09:00","era":"B","subject":"fix(hyphen): SMS 인증 step 단계 분리(1차 captchaPass→2차 identityCheck)","body":"기존엔 1·2차 모두 identityCheck 였음. 명세상 1차는 보안문자 자동통과+SMS발송,\n2차는 수신 인증번호 확인이므로 phase 별 step 분기. (captchaPass 실패 시 수동 캡차 폴백은 실호출 검증 필요)\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"236112a52e90a4012724406737e94ce9cf4f3c05","date":"2026-06-05T17:19:15+09:00","era":"B","subject":"chore(db): 하이픈 공급자 시드 SQL 준비(비활성, 수동적용·검토용)","body":"tn_treat_provider 에 hyphen 행 추가(INSERT IGNORE, tpr_enabled=0).\n파이프라인 자동적용 안 함 — DB 적용은 검토 후 수동.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"drizzle/0004_treat_provider_hyphen.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68853192caae9a2239782e6bbeb370758cda412a","date":"2026-06-05T17:13:04+09:00","era":"B","subject":"feat(treat): 하이픈(HYPHEN) 심평원 진료내역 공급자 추가","body":"내 진료정보 조회(in0165001213) API를 TreatScraper로 구현.\n- libs/hyphen: types/crypto/mapper/service/module (octover·coocon 패턴 동일)\n- 간편인증(EASY) 2-step: 1차 요청 → step_data 세션 → 2차 재전송 → 진료내역\n  (휴대폰 SMS 경로는 step_input 포함, 실호출 검증 필요)\n- step_data를 CODEF jti 자리에 base64 인코딩하여 클라 계약 무변경 왕복\n- PII는 평문 허용(in0165001213), hyphen.useEnc=true+키 설정 시 *Enc 암호화\n- treatProvider='hyphen' 단일 스위치 + multi 디스패처 풀 + configuration 등록\n- 응답 매핑: basic/detailed/prescription → res*TreatList (Treatment 계약)\n\n⚠️ 후속 확인: 하이픈 OAuth Bearer 필요 여부 / 암복호화 명세 / SMS 캡차 흐름\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.crypto.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/hyphen.types.ts","old_path":null,"score":null},{"status":"A","path":"libs/hyphen/src/index.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7653ed8bbe946ad1391e49339ac0481de0be5a73","date":"2026-06-05T16:04:51+09:00","era":"B","subject":"fix(redis): ioredis 재연결 보강(retryStrategy/keepAlive/connectTimeout/offlineQueue) - prod Redis 연결 끊김·분산 쏠림 복구","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d0c3ab39f8ef6ee52610689e8c8aaac0acc8967","date":"2026-06-05T15:16:34+09:00","era":"B","subject":"fix(coocon): 스크래핑 세션 타임아웃 300초 설정 (8000F101 오류 완화)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39cc801040e015e2d0fef239c7c5121c7c0669fd","date":"2026-06-05T14:30:41+09:00","era":"B","subject":"perf(treat): 예약 TTL 10분→4분 단축 (이탈 슬롯 빠른 회수)","body":"실측 분석 소요 최대 3.4분이라 4분이면 충분. 인증만 걸고 이탈한 좀비가\n슬롯을 10분간 점유하던 것을 4분으로 줄여 슬롯 회전·큐 처리량 개선.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8897f85a1112a80315a3bbca9c3d92cb8afa37c3","date":"2026-06-05T14:15:46+09:00","era":"B","subject":"fix(order): 예약수 누수 자가치유 reconcile 추가","body":"ord_reserved_qty 를 실제 진행중(ODD001/002/003/005) order_detail 개수로\n주기 재계산. 환불 누락으로 카운터가 누수돼도 stall 스케줄러(10분)에서 자동 보정.","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-stall.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa4a793c6496a7408e2bd4c5dd09cfbb79b6073f","date":"2026-06-05T13:15:17+09:00","era":"B","subject":"fix(treat-log): 대기열 진입(CF-QUEUE)을 실패 아닌 '대기'로 분류","body":"전 공급자 만석 시 CF-QUEUE 응답을 1차 인증로그에 무조건 실패로 적재하던 것을\n대기(CRT003) 상태로 분리. 분석관리 실패율 통계 오염 방지.","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"20336d9f98e922def99bc0d8dc217fda1dc0e963","date":"2026-06-05T12:38:55+09:00","era":"B","subject":"fix(codef): 진료 단건 전송으로 다건 배열 거부(CF-09999) 해결","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfed0be211951b706bf128a6389f5d7c0c4413b2","date":"2026-06-05T10:14:08+09:00","era":"B","subject":"Merge branch 'release/stg-pms-done' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7611a096b16996ce5588a4b43310353feb8458a3","date":"2026-06-05T10:13:11+09:00","era":"B","subject":"fix(treat): 분석번호 누락 방지 - 벤더 응답에 transactionId 없으면 자체 생성","body":"다건 인증(fetchCertifyMultiple) 등에서 벤더가 result.transactionId를 안 내려주면\noddTransactionId가 빈값으로 저장되던 회귀를 수정. 주문번호와 동일하게 자체 생성값으로 폴백.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35c98d0211132f9d3d68fc5d25d90ae021a04e40","date":"2026-06-05T09:04:06+09:00","era":"B","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5fcccb3608b6ea418043c660b9bb3e42cd47253","date":"2026-06-05T06:19:56+09:00","era":"B","subject":"Merge branch 'release/stg-pms-done' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"171458bebcb97b9628694ec32bec0bac9f97f6e3","date":"2026-06-05T06:19:54+09:00","era":"B","subject":"fix: 진료 공급자 목록 단가 오름차순 정렬 (정렬 컬럼 의존 제거)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bfaa687f36879a856209540e1c0fddf21de391c0","date":"2026-06-05T05:03:23+09:00","era":"B","subject":"Merge branch 'release/stg-pms-done' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"42fb6e775e88523847d58f58770a33b165abbee5","date":"2026-06-05T02:14:03+09:00","era":"B","subject":"feat: 진료 멀티 공급자 처리업체 기록 + 관리자 단가 설정","body":"- tn_treat_provider 테이블/마이그레이션(0003) + odd_provider 컬럼 추가\n- 디스패처가 풀을 DB에서 읽음(15초 캐시, env 폴백), 처리완료 시 처리업체 기록\n- 관리자 공급자 설정 API(GET/PATCH /admin/treat-provider)\n- 주문조회 응답에 처리업체(oddProvider) 노출","body_present":true,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/provider/treat-provider.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0003_treat_provider.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"49ba343422f8add06983ca5a3910849e42c9e36e","date":"2026-06-05T00:34:03+09:00","era":"B","subject":"feat: 진료내역 멀티 공급자 대기열(서버 큐) + 생존추적","body":"- TreatQueueService: Redis FIFO 대기열, 폴링 하트비트 + alive TTL(이탈 자동제거),\n  살아있는 맨앞 + 자리 있으면 READY. 떠난 유저엔 인증 안 쏨(벤더 호출 보호)\n- 디스패처 만석 → CF-QUEUE + queueId (CF-BUSY 대체)\n- certify: CF-QUEUE 처리(예약수 환불, queueId 반환)\n- 큐 상태/이탈 엔드포인트 GET/POST treat/queue/:id","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-queue.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"af16d981a0475af4ba603b7a3fc2dd990d394f78","date":"2026-06-05T00:07:53+09:00","era":"B","subject":"feat: 진료내역 멀티 공급자 분산 디스패처 + Redis 예약 카운터 (TREAT_PROVIDER=multi)","body":"- TreatDispatcher: 비용 우선 + 자리 기반 라우팅, jti 공급자 태깅(sticky), 정산\n- TreatReservationService: Redis Lua 원자 예약/정산 + 정렬셋 TTL(이탈 자동회수)\n- 만석 시 CF-BUSY (대기열 UX는 클라 재시도 — 후속)\n- ioredis 추가, treatPool/redisUrl 설정","body_present":true,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-dispatcher.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/dispatch/treat-reservation.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75a52914d7710af7cce9b3e313ffbe46f0c42cc7","date":"2026-06-04T23:37:10+09:00","era":"B","subject":"feat: 진료내역 공급자 옥토버(octover) 어댑터 추가 + provider 스위치","body":"- libs/octover: TreatScraper 구현(RSA-OAEP 암호화, 로그인결과+AB001 체인, AB001→표준모델 정규화)\n- treatProvider 스위치에 octover 추가 (codef|coocon|octover)\n- 검증된 레퍼런스 기준, nest build 통과","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.crypto.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/octover/src/octover.types.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"961c8ffff28bdb23b692171257d19fa53c31bdd1","date":"2026-06-04T23:24:39+09:00","era":"B","subject":"merge: 쿠콘 진료내역 공급자(TreatScraper) 통합","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cef4aca41a6b042f3c0dff16516c45bd90c64c02","date":"2026-06-04T22:44:53+09:00","era":"B","subject":"fix(coocon): 문자인증 SMS 발송(휴대폰인증_1)·세션 로그아웃·봉투 보강","body":"- 문자(MOBILE): certify에서 본인인증 직후 휴대폰인증_1 호출 → SMS 발송 트리거 (본인인증만으론 미발송 확인)\n- 내진료정보열람 후 별도 '로그아웃' 거래 추가(try/finally) — 세션 잔존 방지(벤더 요청사항)\n- 응답 봉투/세션 보강: SAS_SessionID 최상위 추출, Gw_sys_no 송수신, TimeoutRuntime 필드 추가\n- twoWayTimestamp를 number(epoch-ms)로 — 프론트 카운트다운 즉시 만료(step-fail) 버그 수정\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"23132977e1076fa6cd848378cc976f2be4fd7338","date":"2026-06-04T22:12:01+09:00","era":"B","subject":"chore: 5차 PMS 운영 DB 적용 SQL 추가 (task-12 약관/16 조직·org_id/01·08 먹는약 summary)","body":"배포가 마이그레이션을 자동 적용하지 않으므로 운영 DB에 직접 실행하는 SQL.\nidempotent(IF NOT EXISTS + 컬럼 존재검사), 파괴적 구문 없음.\nDDL은 stg 실 스키마(SHOW CREATE)에서 추출.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"drizzle/0002_pms5_terms_org_medicine.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21b4a602d5cc399d2dd504211f6ac99dd5ef8331","date":"2026-06-04T21:45:32+09:00","era":"B","subject":"feat(treat): 진료내역 공급자 쿠콘(coocon) 추가 및 provider 스위치","body":"- libs/coocon 신설: 쿠콘 게이트웨이 연동(CooconService/CooconAuthService/매퍼/DTO)\n  - 본인인증→OTP(간편)/휴대폰인증_2(문자)→내진료정보열람 2-way, 세션(SAS_SessionID) 유지\n  - 응답을 기존 Treatment 계약으로 매핑(주상병코드·부담금·처방조제), AES256-CBC 지원\n- TreatService/TreatEventHandler: TREAT_PROVIDER(codef|coocon)로 전 호출점 분기\n- ENABLE_TREAT_CAR 플래그로 자동차보험 수집 기능 제외(코드 보존)\n- 범위: 건강보험 진료내역만(자동차·약 제외)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/coocon-auth.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/coocon.interface.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/coocon.mapper.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/coocon.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/coocon.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/coocon/src/index.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8ce256d7cf0546501e4d56f209e0c0a801e119fa","date":"2026-06-04T17:50:14+09:00","era":"B","subject":"chore: 인증확인 알림톡 발송 비활성화 - 템플릿코드 승인 전까지 (task-05)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba3c83687fb6a71f608227df611c7f86d19f21e0","date":"2026-06-04T17:50:14+09:00","era":"B","subject":"feat: 코드에프 먹는약 한눈에 응답 평면화 매핑 (task-01)","body":"CODEF_DRUG_URL 인프라 미설정으로 호출부 비활성화(no-op). 인프라 준비 후 주석 해제.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"acf9c24a263a94ef0d4f76892532bc197bf7c218","date":"2026-06-04T17:50:14+09:00","era":"B","subject":"feat: 약관 관리 어드민 BE - 기업 필터/검색/수정 (task-12)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/agency/terms/terms.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/terms/terms.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dcd23cefd99dd4d16475a143c4bbb0ac5b541caa","date":"2026-06-04T16:08:11+09:00","era":"B","subject":"fix: 코드에프 다건요청(진료+자보 단일인증) 통합 (task-06)","body":"- 진료/자보 분리호출 → fetchTreatmentMultiple 다건수집(단일 인증)으로 전환\n- 01 먹는약(fetchMedicineSummary)은 별도 호출로 유지\n- 07 NtsMedical(국세청 의료비)은 미사용이라 분리(import/정의 제외)","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6e03d2328e20263cf4223f7401d93423feb5e6f0","date":"2026-06-04T13:42:13+09:00","era":"B","subject":"Merge pull request #29 from insuniverse-com/hotfix/retention-30days","body":"fix: 진료정보 보관기간 30일로 단축 (핫픽스)","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9cb87dbba88021596bb6348f7624d60859ce613a","date":"2026-06-04T13:30:05+09:00","era":"B","subject":"Merge pull request #28 from insuniverse-com/hotfix/retention-30days","body":"fix: 진료정보 보관기간 30일로 단축 (핫픽스)","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e389132f88c3ce1a7c6c20c8110643de494b135","date":"2026-06-04T13:22:13+09:00","era":"B","subject":"fix: 진료정보 보관기간 30일로 단축","body":"심평원 원본데이터(90일)·분석결과·인적사항(1년)을 모두 30일로 변경.\n정회원/B2C/기업회원 동일 적용. 사용자화면 30일 비노출은 기존과 동일.","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d4f957865f75b3d808cd8f0f6333c5b8d5b10ee0","date":"2026-05-18T16:40:32+09:00","era":"B","subject":"fix(task-684): [task-684] 12. 기업별 약관관리","body":"[영역] 관리자/유저\n[위치] 신규\n[케이스] 기업별 약관관리","body_present":true,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/sanitize.helper.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/terms/terms.service.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78ca58ff09046e9051e6cf60c2584b19045f1fec","date":"2026-05-18T16:13:27+09:00","era":"B","subject":"fix(task-684): [task-684] 12. 기업별 약관관리","body":"[영역] 관리자/유저\n[위치] 신규\n[케이스] 기업별 약관관리","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"869664be92611be059ad7622f5c25f291d300f70","date":"2026-05-18T13:57:22+09:00","era":"B","subject":"fix(task-680): [task-680] 08. 30일 경과 분석결과/원본데이터 일괄 삭제","body":"[영역] 백엔드\n[위치] -\n[케이스","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26d1e0b961669e3a6de7e03afadbd2246eab8326","date":"2026-05-19T11:54:52+09:00","era":"B","subject":"fix(task-677): [task-677] 05. OK마이보험 간편인증 알림톡 추가","body":"[영역] 유저\n[위치] 진료분석정보 > 진료정","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77f6a12cc4fffc44a145ed668bfd082bc978355f","date":"2026-05-18T18:20:41+09:00","era":"B","subject":"fix(task-674): [task-674] 02. 투약정보 상세버튼 활성화 + 효능효과 노출","body":"[영역] 유저\n[위치] 진료분석정보","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b5bd2fa3c9d921ea532017a32b57ad623c92b5ab","date":"2026-05-18T18:09:51+09:00","era":"B","subject":"fix(task-674): [task-674] 02. 투약정보 상세버튼 활성화 + 효능효과 노출","body":"[영역] 유저\n[위치] 진료분석정보","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-prescibe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5be3c2b56663609c72eccc51d1db37d95fc4c55","date":"2026-06-04T10:05:57+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/fix/task-688' into release/stg-pms-done","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d85902da41a3c980e9a08edab88a5a80c38a927","date":"2026-06-04T10:05:57+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/fix/task-683' into release/stg-pms-done","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0334cce6a847c58d2d2f29e48021a9eb3f41f8b1","date":"2026-06-04T10:05:57+09:00","era":"B","subject":"Merge remote-tracking branch 'origin/fix/task-709' into release/stg-pms-done","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b244e7804647bbae2bb7effc809523fc6781bc6b","date":"2026-06-02T11:40:06+09:00","era":"B","subject":"fix(treat): 유저 재분석 시 분석결과 미삭제 PK중복 404 및 차감 잔여량 검증 누락 수정","body":"- 유저 재시도(/treat/compare)를 관리자 재분석과 동일하게 [기존 분석결과 삭제 + 잔여량 검증 후 예약(차감)] 후 분석하도록 변경\n- tn_analysis_basic PK 중복으로 인한 ANALYSIS_FAILED(404) 해소\n- 진행/완료 건 재시도는 ConflictException 으로 차단(중복분석/중복차감 방지)\n- 한도 초과 시 ORDER_NOT_AVAILABLE(400)","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"59ed03ff7182ca1d564066c7714792336c5ff416","date":"2026-05-29T15:50:47+09:00","era":"B","subject":"Merge pull request #27 from insuniverse-com/fix/reanalyze-charge-limit-check","body":"fix(order): 차감 재분석에 한도 검증 추가","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b0e2b5ce5b996f03099e8a8922da50d390f467c7","date":"2026-05-29T15:49:26+09:00","era":"B","subject":"fix(order): 차감 재분석에 한도 검증 추가","body":"재분석 차감(charge=true) 시 resetForReAnalyze가 한도 검증 없이 예약수를\n무조건 +1 하여, 일반 분석요청(reserveQty)과 달리 사용완료+예약이 한도를\n초과하는 상태를 만들 수 있었음. 동일한 조건부 UPDATE(사용완료+예약 < 한도)로\n변경하고 affected=0 이면 ORDER_NOT_AVAILABLE 으로 차단(트랜잭션 롤백).\n검증을 트랜잭션 선두로 옮겨 한도 초과 시 분석결과 삭제도 수행하지 않도록 함.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19abd12fc6137d6bef58d329158e6e4fa7acead9","date":"2026-05-29T15:16:33+09:00","era":"B","subject":"Merge pull request #26 from insuniverse-com/feature/odd-final-state-display","body":"fix(order): 분석 응답 DTO에 oddFinalState 필드 추가","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"309d3321b0838ca13ba014a1b6576ed38e6e13ca","date":"2026-05-29T14:58:16+09:00","era":"B","subject":"fix(order): 분석 응답 DTO에 oddFinalState 필드 추가","body":"repository select에는 oddFinalState가 있으나 OrderDetailDto(PickType)에\n필드가 빠져 excludeExtraneousValues 직렬화에서 제거되어 응답에 안 옴.\n인증요청 후 이탈 시 스케줄러가 박은 최종분석상태가 분석관리 화면에\n표시되지 않던 문제 수정. list/detail 응답이 공유하는 DTO라 양쪽 모두 반영.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b7bcab8344673f8fb9cf01d9d88d9ad473cf5cb","date":"2026-05-28T14:22:55+09:00","era":"B","subject":"Merge pull request #25 from insuniverse-com/fix/re-analyze-alarm-msg","body":"fix: 재분석 알람 메시지 자연어화","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2eeb3db4ecdebf52ae9ad88ecd47c9768168cf97","date":"2026-05-28T14:22:47+09:00","era":"B","subject":"fix: 재분석 알람 메시지를 자연어 + 분석번호/회원 식별자로 변경","body":"기존 \"oddId=N\" raw 표기를 다른 알람들 톤과 맞춰 자연어로 변경.\n- \"재분석이 완료되었습니다 (회원: rsteam / 분석번호: 69d6fd10..., 차감).\"\n- 실패 시 \"재분석이 실패했습니다 (..., ...).\"\n\neventEmitter dto 에 transactionId, memLoginId 동봉하여 핸들러에서 메시지 조립.","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44b91c2c7722f970798138e83163700c23af49ee","date":"2026-05-26T17:56:56+09:00","era":"B","subject":"Merge pull request #24 from insuniverse-com/fix/re-analyze-delete-prev-analysis","body":"fix: 재분석 시 기존 분석 결과 row 선삭제","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"85e0e222be378d352c2c106abb4179f651e2cc05","date":"2026-05-26T17:56:50+09:00","era":"B","subject":"fix: 재분석 시 기존 분석 결과 row 선삭제","body":"재분석 시 createAnalyze 가 tn_analysis_basic 에 INSERT 시도하다가 PK 중복 충돌로 항상 실패.\nresetForReAnalyze 트랜잭션에서 oddId 의 기존 분석결과(tn_analysis_*) 행을 선삭제하도록 변경.\n원본 진료자료(tt_treat_*) 는 유지.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f3be23f5168bed026b971b55b80bfeb62fa62e5","date":"2026-05-26T17:36:27+09:00","era":"B","subject":"Merge pull request #23 from insuniverse-com/feature/re-analyze-admin-notify","body":"feat: 관리자 재분석 결과 알림 push","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e86accb76546256ea9baaebe32e79100b7f0f3af","date":"2026-05-26T17:36:11+09:00","era":"B","subject":"feat: 관리자 재분석 결과 알림 push","body":"비동기 compare 가 끝나면 요청한 관리자에게 결과 알람 생성.\n- AdminAlarmType.분석 (AAD003) enum 추가\n- treat.event-handler reAnalyze 핸들러가 try/catch 로 결과 분기하여 성공/실패 알람 등록\n- controller 가 req.admin.admId 추출하여 service → eventEmitter 까지 전달","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alram-admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a79e13aad9348d054a7b5099beef9c30bfe06da","date":"2026-05-26T16:59:41+09:00","era":"B","subject":"Merge pull request #22 from insuniverse-com/fix/re-analyze-set-state-immediately","body":"fix: 재분석 시 odd_state 즉시 자료분석중으로 set","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"488e77d6485eead7a9e7bac032efd6ea243fb9b6","date":"2026-05-26T16:59:23+09:00","era":"B","subject":"fix: 재분석 시 odd_state 즉시 자료분석중으로 set","body":"기존: resetForReAnalyze 가 final_state/settled 만 reset 하고 odd_state 는 그대로 두어\ncompare 가 비동기로 ODD005 박을 때까지 짧은 시간 동안 admin 화면이 옛 상태 (자료수집완료/분석실패) 로 보임.\n이 시간 동안 재분석 버튼 다시 클릭 가능 + 진행 상태 미식별 문제.\n\n수정: resetForReAnalyze 트랜잭션 안에서 odd_state 도 ODD005 자료분석중으로 즉시 set.\n효과:\n- 화면에서 자료분석중 표시되어 진행 중임을 식별 가능\n- 활성 조건(ODD002/ODD007) 어긋나서 재분석 버튼 비활성 → 중복 클릭 차단","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27a90278363d3266399204439779777a5198be70","date":"2026-05-26T15:05:22+09:00","era":"B","subject":"Merge pull request #21 from insuniverse-com/fix/re-analyze-event","body":"fix: 관리자 재분석 이벤트 분기 수정","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4fdd56235e467bf09f1b3d6dba75a99cfaf0c1d7","date":"2026-05-26T15:05:00+09:00","era":"B","subject":"fix: 관리자 재분석 이벤트 분기 수정","body":"기존 reAnalyze 가 'treatCompare' 이벤트를 emit 하여 자료수집 흐름까지 다시 타게 되어\n자료수집 단계에서 데이터 없음으로 ODD004(인증실패) 박히는 문제 발생.\n\n수정:\n- 'reAnalyze' 이벤트 신설\n- treat.event-handler 에 OnEvent('reAnalyze') 핸들러 추가\n- 핸들러는 treatService.compare(oddId) 만 호출 (분석만 실행, 자료수집 건너뜀)\n- order-detail.service.reAnalyze 가 새 이벤트 emit","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f264d6784866c7c2e3f9f39a162402b2fb4e3bc3","date":"2026-05-26T14:12:18+09:00","era":"B","subject":"Merge pull request #20 from insuniverse-com/feature/admin-re-analyze","body":"feat: 관리자 재분석 endpoint + 차감 옵션","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be828b434f5479c5ffa109ee413b63ef07ae9f61","date":"2026-05-26T14:11:50+09:00","era":"B","subject":"feat: 관리자 재분석 endpoint + 차감 옵션 (정아님 #2)","body":"- POST /admin/order-detail/re-analyze : { oddId, chargeQuantity }\n- chargeQuantity=true : settled 0 reset + final_state NULL + ord_reserved +1 → 정상 사이클 재시작 (분석완료시 ord_used +1)\n- chargeQuantity=false: settled 1 유지 + final_state NULL → compare 만 실행, 카운터 영향 X\n- 분석 실행은 eventEmitter('treatCompare') 비동기\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4af56df619427ad22030f16da99209f399014f4","date":"2026-05-26T13:29:47+09:00","era":"B","subject":"Merge pull request #19 from insuniverse-com/fix/auth-failed-final-state","body":"fix: 5분 스케줄러가 raw odd_state 대신 odd_final_state 박도록","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a268bc33132c5dcd4b4222ec07e51c06ed2c64e1","date":"2026-05-26T13:29:19+09:00","era":"B","subject":"fix: 5분 스케줄러가 raw odd_state 대신 odd_final_state 박도록 변경","body":"기존 analysis-status 스케줄러가 인증요청중/추가인증요청중 odd 의 raw odd_state 를\nODD004(인증실패) 로 직접 변경하여 정책(raw 보존 + final_state 박기) 과 불일치.\n\n수정:\n- 1시간 stall 스케줄러와 같은 setFinalStateAndRefund 호출 패턴 적용\n- settleStaleAuthAsAuthFailed 메서드 신규 (raw 보존 + final_state=ODD004 + 환불)\n- getStateListForSchedule 에 ordId 같이 반환 + idempotent 가드 (final_state IS NULL, settled=0)\n- analysis-status.schedule.ts 가 새 메서드 호출\n\n결과:\n- 분석상태: 인증요청중 ODD001 그대로\n- 최종분석상태: 인증실패 ODD004 박힘\n- 사용자/관리자 노출: final_state 우선\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a0492cc3c1124bf789446fe8a98e20e5f3f5672","date":"2026-05-26T10:16:43+09:00","era":"B","subject":"Merge pull request #18 from insuniverse-com/hotfix/fax-pdf-insurer-matching-prod","body":"hotfix(fax): 청구서 PDF 묶음을 보험사 목록 순서에 맞춰 정렬","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"240fdecd72c7ec4fe065fee806a9780d83862c58","date":"2026-05-20T14:02:07+09:00","era":"B","subject":"fix(fax): 청구서 PDF 묶음을 보험사 목록 순서에 맞춰 정렬","body":"저장된 청구서 PDF 배열(ivhS3Key)이 보험사 목록(ivhInsurers)과\n다른 순서일 때, 클라이언트가 같은 인덱스로 짝지어 발송 요청을\n만들어 잘못된 보험사에 다른 보험사 청구서가 전송되던 이슈 수정.\n다건·단건·재발송 모두 동일 매칭 로직을 사용하므로 본 패치 한 곳으로\n모두 해결됨.\n\n영향 발송: 26건 어긋남 (실 피해 14건 / 자동 환불 7건 / 환불 누락 5건)\n사용자: 5명 (실 피해 3명 / 환불만 2명)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e1f2c593c526e26dd049e37c34a388fa7c426396","date":"2026-05-26T09:24:53+09:00","era":"B","subject":"Merge pull request #17 from insuniverse-com/feature/odd-final-state-display","body":"feat: 분석 목록 응답에 oddFinalState 노출","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c890f7ce79fc3a7033a9f6257bfe07ef44e38d9f","date":"2026-05-26T09:23:38+09:00","era":"B","subject":"feat: 분석 목록 응답에 oddFinalState 노출","body":"OrderDetail entity 에 @Expose oddFinalState 이미 추가했었으나\nrepository select (getList, getDetail) 에 oddFinalState 누락되어 응답에 안 옴.\n관리자가 강제 종결 또는 stall 스케줄러가 박은 분석실패 건을 화면에서 식별 가능하도록\nGET_STATUS(oddFinalState) 한 줄씩 추가.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db11e380916a928d5da831ee4ffe8d95394b8049","date":"2026-05-22T17:34:44+09:00","era":"B","subject":"Merge pull request #16 from insuniverse-com/fix/subscribe-state-reserved-qty","body":"fix: subscribe state 응답에 ordReservedQty 누락 보완","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc5b6f08fad6627e55ac060298dca4756e8a409c","date":"2026-05-22T17:34:12+09:00","era":"B","subject":"fix: subscribe state 응답에 ordReservedQty 누락 보완","body":"GET /subscribe/:memId 의 order select 에 ord_reserved_qty 가 빠져있어\nsite 마이페이지/분석페이지 잔여 계산 시 항상 0 으로 계산됨 (잔여 = 한도-사용 = 8 로 표시).\nselect 한 줄 추가.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08e421ea992895bc01542d44386267115db64605","date":"2026-05-22T17:04:39+09:00","era":"B","subject":"Merge pull request #15 from insuniverse-com/fix/order-reserved-qty-dto","body":"fix: Order 응답 DTO 에 ordReservedQty 노출","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e23c445c9f072a4cb76cd09d3893aa291e6b392","date":"2026-05-22T17:04:13+09:00","era":"B","subject":"fix: Order 응답 DTO 에 ordReservedQty 누락 보완","body":"GetAdminOrderListResponseDto 등이 plainToInstance(..., excludeExtraneousValues: true) 로 응답 직렬화되는데\norder.entity.ts 에 ordReservedQty 가 @Expose 안 되어 있어서 응답에서 빠져 admin 화면 분석예약수 컬럼이 항상 하이픈으로 표시됨.\n@Expose / @ApiProperty / @IsInt 로 노출 추가.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"72d09d1232571a77f114a49b6bbd48495f33664e","date":"2026-05-22T15:48:09+09:00","era":"B","subject":"Merge pull request #14 from insuniverse-com/chore/analysis-stall-workflow","body":"ci: 분석 stall 스케줄러 빌드/배포 job 추가","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca098372b56e32f55a72da38a37f6207ca97bca6","date":"2026-05-22T15:47:08+09:00","era":"B","subject":"ci: 분석 stall 스케줄러 빌드/배포 job 추가","body":"- deployAnalysisStallSchedule job 추가 (analysis-status 패턴 그대로 복사)\n- SCHEDULER_TYPE=analysis-stall, ECR insuniverse/{branch}/schedule/analysis-stall\n- 사전 등록 완료: stg ECR repo, ECS task def revision 1, EventBridge schedule (DISABLED)\n- 이 PR 머지 후 첫 빌드 완료되면 schedule 을 ENABLED 로 전환\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"83d88d491a6059988a6232ee28c6221ed734dcf6","date":"2026-05-22T14:49:34+09:00","era":"B","subject":"Merge pull request #13 from insuniverse-com/chore/limit-data-migration","body":"chore: 한도 예약수 모델 마이그레이션 SQL","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbb77f8f746c727ecd52254ce1c69f8c6d87cdd9","date":"2026-05-22T14:49:28+09:00","era":"B","subject":"Merge pull request #12 from insuniverse-com/feature/limit-reservation-model-stg","body":"feat: 한도 예약수 모델 + 1시간 stall 스케줄러","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3775e2cce95813396b61edd45e2e4e3fc2a18cc2","date":"2026-05-22T10:59:11+09:00","era":"B","subject":"feat: 분석 stall 1시간 자동 종결 스케줄러 추가","body":"- analysis-stall.schedule.ts 신규 (AWS EventBridge 등록 필요)\n- 자료수집완료(ODD002) / 자료분석중(ODD005) 상태가 1시간 경과 + 최종분석상태 미박힘 인 odd 에 대해 odd_final_state=분석실패(ODD007) 박고 예약수 환불\n- raw odd_state 는 변경하지 않아 관리자 화면에서 원본 진행상태 보존\n- 환불은 odd_reservation_settled 마커로 1회 보장 (중복 호출 안전)\n- 기존 updateStateOrderDetail(인증요청중 5분 스케줄러 경로 포함) 이 ODD004/ODD007 박을 때 환불 호출 누락되어 있던 부분 보강\n- dockerfile case 분기 analysis-stall 추가\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/analysis-stall.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cde68072ecae98eb1332fada6d237f31347c419b","date":"2026-05-21T00:02:44+09:00","era":"B","subject":"fix(task-688): [task-688] 16. 기업↔기업상품 1:n 관계 변경","body":"[영역] 관리자\n[위치] 신규\n[케이스] 기업상","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"A","path":"scripts/run-task688-migration.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c409874c361366cd0c098d6a14b7de92fdebfdb4","date":"2026-05-20T23:28:39+09:00","era":"B","subject":"fix(task-688): [task-688] 16. 기업↔기업상품 1:n 관계 변경","body":"[영역] 관리자\n[위치] 신규\n[케이스] 기업상","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"62770c75bcd71d2d2a2c12640682a27c0bed7e65","date":"2026-05-20T23:13:29+09:00","era":"B","subject":"fix(task-688): [task-688] 16. 기업↔기업상품 1:n 관계 변경","body":"[영역] 관리자\n[위치] 신규\n[케이스] 기업상","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization-corp.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"31ec2dcf66a2bec02c47f5994d748e079a401991","date":"2026-05-20T22:54:28+09:00","era":"B","subject":"fix(task-688): [task-688] 16. 기업↔기업상품 1:n 관계 변경","body":"[영역] 관리자\n[위치] 신규\n[케이스] 기업상","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/agency/organization/organization.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8be772dba7d45c4ba532d768badf374e72dac96a","date":"2026-05-20T22:16:34+09:00","era":"B","subject":"fix(task-688): [task-688] 16. 기업↔기업상품 1:n 관계 변경","body":"[영역] 관리자\n[위치] 신규\n[케이스] 기업상","body_present":true,"is_merge":false,"file_count":13,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/uid.helper.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/migration/0001_default-organization.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization-corp.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/organization/organization.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47524df53f5086dd9793e8477cde646ba55e108d","date":"2026-05-20T16:40:25+09:00","era":"B","subject":"chore: 최종분석상태 + 환불 마커 컬럼 ALTER 추가","body":"- tn_order_detail.odd_final_state, odd_reservation_settled 컬럼 ALTER 동기화\n- backfill 단계에서 종결 상태(ODD004/ODD006/ODD007) odd 의 settled 마커 1로 박아 마이그레이션 이후 raw 환불 경로 중복 호출 방지\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":0,"files":[],"excluded_only":true,"large_commit":false,"structural_event":false}
{"sha":"b0df343b1417ea8fe9301f82f6ae1b15ffb7a3e0","date":"2026-05-20T16:40:16+09:00","era":"B","subject":"feat: 최종분석상태 + 환불 idempotent 가드 추가","body":"- tn_order_detail.odd_final_state (관리자 강제 종결용, 화면 노출 우선)\n- tn_order_detail.odd_reservation_settled (환불 1회 보장 마커)\n- refundReserveQty / updateQty / setFinalStateAndRefund 를 odd 단위 atomic 마커 set 기반으로 재작성하여 raw 종결 / 관리자 종결 중복 환불 방지\n- certify CODEF 실패는 odd 생성 전이라 별도 함수 refundReserveQuantityWithoutOdd 로 분리\n- 모든 호출부(treat.service / treat.event-handler) 에 oddId 전달\n- POST /admin/order-detail/final-state 관리자 강제 종결 endpoint 추가\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"43f84c5d275056fc01419a502d9e3e33682cebe2","date":"2026-05-20T16:05:56+09:00","era":"B","subject":"fix(task-709): [task-709] 01. 심평원 '내가 먹는약 한눈에 API' 추가","body":"[영역] 유저\n[위치] 진료분석정보","body_present":true,"is_merge":false,"file_count":10,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8c42c17b3e6b1383fdff1d73b08d1704c188fc6a","date":"2026-05-20T14:06:24+09:00","era":"B","subject":"Merge pull request #11 from insuniverse-com/hotfix/fax-pdf-insurer-matching-v2","body":"fix(fax): 청구서 PDF 묶음을 보험사 목록 순서에 맞춰 정렬","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4fe81de9de0e7a634451ed4148a8e738ae71997b","date":"2026-05-20T14:02:07+09:00","era":"B","subject":"fix(fax): 청구서 PDF 묶음을 보험사 목록 순서에 맞춰 정렬","body":"저장된 청구서 PDF 배열(ivhS3Key)이 보험사 목록(ivhInsurers)과\n다른 순서일 때, 클라이언트가 같은 인덱스로 짝지어 발송 요청을\n만들어 잘못된 보험사에 다른 보험사 청구서가 전송되던 이슈 수정.\n다건·단건·재발송 모두 동일 매칭 로직을 사용하므로 본 패치 한 곳으로\n모두 해결됨.\n\n영향 발송: 26건 어긋남 (실 피해 14건 / 자동 환불 7건 / 환불 누락 5건)\n사용자: 5명 (실 피해 3명 / 환불만 2명)","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c877e6d54fb680408104abb93e6d33ed8f38abe9","date":"2026-05-20T12:25:00+09:00","era":"B","subject":"fix(task-683): [task-683] 11. 심평원/국세청 API 일시사용중지 관리자 설정","body":"[영역] 관리자/유저\n[위치] 신","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/institution-block/institution-block.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e461ac6e196428cf8933b522dd9d099689b5c4f","date":"2026-05-20T11:48:02+09:00","era":"B","subject":"fix(task-683): [task-683] 11. 심평원/국세청 API 일시사용중지 관리자 설정","body":"[영역] 관리자/유저\n[위치] 신","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/0001_institution_block.sql","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9acb33429cb2868e84b0a1599385859f11cb4881","date":"2026-05-20T10:48:32+09:00","era":"B","subject":"fix(task-683): [task-683] 11. 심평원/국세청 API 일시사용중지 관리자 설정","body":"[영역] 관리자/유저\n[위치] 신","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/institution-block/institution-block.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f40e3aab587e558091fb40567511a331952e8e3b","date":"2026-05-20T10:36:02+09:00","era":"B","subject":"feat: 한도 예약수 모델 도입 (인증요청중 시점 차감)","body":"- tn_order.ord_reserved_qty 컬럼 추가\n- 인증요청중 진입(certify) 시 예약수 +1을 조건부 atomic UPDATE로 처리하여 한도 초과 동시 진입 차단\n- 인증실패/자료수집실패/분석실패 시 예약수 -1 환불\n- 분석완료(addQuantity) 시 예약 -> 완료 전환 (총 점유 유지)\n- 잔여 = 한도 - 완료수 - 예약수 로 의미 변경 (발송 검증식은 그대로 유지)\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e62418fae8eaf56d049677cba579e9b224242991","date":"2026-05-20T09:52:03+09:00","era":"B","subject":"chore: 한도 예약수 모델 마이그레이션 SQL 추가","body":"- 01_alter_add_ord_reserved_qty.sql: tn_order.ord_reserved_qty 컬럼 추가\n- 02_backfill_ord_reserved_qty.sql: 진행중 상태(ODD001/002/003/005) 건수로 예약수 초기화\n- README.md: 실행 순서, 롤백, 검증 SQL\n\nA 코드 배포 전후 1회 실행. 무중단 가능.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":0,"files":[],"excluded_only":true,"large_commit":false,"structural_event":false}
{"sha":"9b8898788b32973644240626ecba49d647465d66","date":"2026-05-20T10:08:30+09:00","era":"B","subject":"fix(task-683): [task-683] 11. 심평원/국세청 API 일시사용중지 관리자 설정","body":"[영역] 관리자/유저\n[위치] 신","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/institution-block/institution-block.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"005b785633236c907d527f24825ef7c815549435","date":"2026-05-20T09:43:30+09:00","era":"B","subject":"fix(task-683): [task-683] 11. 심평원/국세청 API 일시사용중지 관리자 설정","body":"[영역] 관리자/유저\n[위치] 신","body_present":true,"is_merge":false,"file_count":17,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/fliters/institution-block-exception.filter.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.exception.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/institution-block/institution-block.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0001_institution_block.sql","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70e3e3834a348d98dbef59a7eac7efa1a3f7bfc7","date":"2026-05-15T14:34:24+09:00","era":"B","subject":"fix(disease): 소분류만 등록된 진단코드 매핑 누락 수정","body":"소분류(tc_disease_minor)까지만 등록되고 세분류 이상이 없는 진단코드\n(C19, N72, J00, K30 등)가 병력분석/추천보험/7일이상치료에서 누락되는 문제.\n\n원인: batchLookupMiddleCode, getRecommendedInsuranceByDisease,\ngetInsuranceReferenceTree 세 함수가 detail/fine/subFine 테이블만\n조회하고 minor 테이블은 빼놓음.\n\n수정: 각 함수에 tc_disease_minor 조회 분기 추가. 우선순위는\ndetail > fine > subFine > minor (구체적인 분류 우선).\n\n영향: 2,086개 소분류 코드, 88,003건 진료기록이 정상 매핑됨.\nprod oddId 37519(김선호)의 C19 11건 36일 → 7일이상치료 그룹에 포함됨 확인.","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"386fa9b36e708185347e0d9ddd8610aa10592a61","date":"2026-05-08T13:23:31+09:00","era":"B","subject":"fix: 미사용 분석 프로시저 3종 및 관련 코드 전체 제거","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"README.md","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a1f6ce49a6009c85f45fabe359a0224e1be4247c","date":"2026-05-08T11:11:34+09:00","era":"B","subject":"fix: HEALTH_RECORD, DOSING_RECORD, LOG 분석 프로시저 호출 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"43d5d7e8cdaf1d0610432465226ccaf8499ad600","date":"2026-05-06T13:08:11+09:00","era":"B","subject":"fix: 기업회원 엑셀다운로드 시 '영업대리점'컬럼 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bb055b82736932613d242cc511a8d617e55fb99","date":"2026-05-04T11:05:16+09:00","era":"B","subject":"fix: 기업정산 리스트 조회 시 분석 수는 실시간조회로 변경(기존은 스냅샷이었음)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55d897a445c8654671ed2c0f78da8a175d089338","date":"2026-04-29T10:41:18+09:00","era":"B","subject":"fix: 비밀번호 유효성검사 프론트와 동일하도록 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6b43f9d1a0efda2e155ea7bf1cbffb52bc4a1ac5","date":"2026-04-13T16:10:32+09:00","era":"B","subject":"fix: 팩스 추가 문구 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"efe6d58f8ab23d638e310ce61b4ccb6deba01520","date":"2026-04-13T13:24:16+09:00","era":"B","subject":"fix: 청구서 발송 라이브러리화 + 로직 개선","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/vfax/src/vfax.constant.ts","old_path":"apps/api/src/modules/fax/fax.constants.ts","score":53},{"status":"A","path":"libs/vfax/src/vfax.dto.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/src/vfax.exception.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/src/vfax.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/src/vfax.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/src/vfax.type.ts","old_path":null,"score":null},{"status":"A","path":"libs/vfax/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"libs/webclient/src/webclient.service.ts","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea711abeefe548bfa0a76b990a6a9aa935120479","date":"2026-04-10T11:55:16+09:00","era":"B","subject":"fix: 팩스 발송취소 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6eca55a696a7827ac49d18206df15d02fc6b072","date":"2026-04-10T10:51:55+09:00","era":"B","subject":"fix: 팩스 배치발송 시 2건이상인 경우 사용포인트 0원처리되는 이슈 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3d1058811a8b75ef7a88038ee7ad65891975970","date":"2026-04-09T13:43:19+09:00","era":"B","subject":"chore: 스케줄럳 ㅡㅇ록 누락 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"058b2486dbc7c9ff0ec9759379e70ca4c0afc627","date":"2026-04-08T11:38:32+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c73704289b86cc2f1f797053554d34f38ea9548","date":"2026-04-08T11:38:02+09:00","era":"B","subject":"fix: 청구서 발송결과 수신 이벤트핸들러 스케줄러로 교체","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/fax/fax.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/fax-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80d387d1fb38feae8fcdc53e5fd14866937f957c","date":"2026-04-08T10:59:43+09:00","era":"B","subject":"fix: 청구서 발송 관련 수정 - 발송실패 시 사용자에게 머니 환급처리 로직 추가 - 유저 청구서 발송내역 내 발송상태 노출값 수정","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"004086d9c82862cc6c7023cd22a851dfff695295","date":"2026-04-08T10:51:17+09:00","era":"B","subject":"fix: admin-view 분석 그루핑 API 엔드포인트 추가 (member, B2C)","body":"관리자 iframe에서 건강체/유병자 탭 전환 시 인증 필요한 /analyze/ 경로 호출로 401 발생하던 문제 해결을 위해 인증 불필요한 admin-view 엔드포인트 추가\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin-view.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"17a62c8fbb6aafb77f01a97700f699841d00ae58","date":"2026-04-07T16:18:07+09:00","era":"B","subject":"fix: 병명예측 생성/수정 시 중복검사 로직 개선","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5b63e04b12caf7f316cb6993a270cd43512d29d8","date":"2026-04-07T15:57:33+09:00","era":"B","subject":"fix: 청구서 발송상태 구분추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.constants.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b8d3a645bf4f018a8ca508068d2f90e73b4b42d","date":"2026-04-07T11:05:38+09:00","era":"B","subject":"Merge branch 'hotfix/temp-use-tt-table' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95d02e7b84ec8ced3ed3715badfadb272ba41c60","date":"2026-04-07T11:03:15+09:00","era":"B","subject":"fix: 분석상세 건강체 쿼리속도 개선 tt_table_*","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70b5869007c6773cbde2e29573d9705f51ec9a7c","date":"2026-04-06T09:14:15+09:00","era":"B","subject":"fix: 분석 에러 시 로깅추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"497ca3aed6539560a262344052c8e8881c1772aa","date":"2026-04-05T21:47:19+09:00","era":"B","subject":"fix: 분석상세 건강체/병력로그 조회를 tt_treat_* 임시원복 (검증 전까지)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e5cd2b9c5984eacff635dc01cc5a5b610640fb4","date":"2026-03-24T11:30:21+09:00","era":"B","subject":"fix: 건강체-5년내7일이상진료 조회 그룹핑 수정3","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b941c948f8e6b4a14ca04505d1bf3864435404b","date":"2026-03-24T10:45:54+09:00","era":"B","subject":"fix: 분석상세의 숨은보험금-치아,기타 숨은보험내용기준 그룹핑처리","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"933facd0aa36efff1d7d509d924e2ee7a0d644cc","date":"2026-03-23T18:11:34+09:00","era":"B","subject":"fix: 건강체-5년내7일이상진료 조회 그룹핑 수정2","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3fe1d059b99d27a4d9e584184390a2547e68fda5","date":"2026-03-23T17:53:51+09:00","era":"B","subject":"fix: 건강체-5년내7일이상진료 조회 그룹핑 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8f2f6958a5d54ed406a63dad3d803963ac1bde58","date":"2026-03-23T12:59:22+09:00","era":"B","subject":"fix: 고객사 반환값 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ba2f65a4f7c9c782948a3bca59547fe25558167","date":"2026-03-23T12:36:50+09:00","era":"B","subject":"fix: 병력붅석-진단로그 COLLATE 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e84c9e0ff1bde0f65c61eb9c79be12896f252d8e","date":"2026-03-21T17:37:24+09:00","era":"B","subject":"fix: 고객사api 숨은보험 기타 응답값 프론트와 맞추기","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"590774c1efd8da1f7c67d415c8c285ad7642c0d5","date":"2026-03-21T17:12:26+09:00","era":"B","subject":"fix: rename column","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47c746216df535d66a2945b482f77b7da5a6f459","date":"2026-03-21T17:09:38+09:00","era":"B","subject":"fix: rename Procedure","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2da42a5e6ee3c583e1637bd9d4e394739e13e42d","date":"2026-03-20T17:13:20+09:00","era":"B","subject":"fix: 숨은보험-기타 상세페이지수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7f5d24e9d89636c7421e860a6533e6199eaf031","date":"2026-03-20T15:24:14+09:00","era":"B","subject":"fix: 숨은보험 기타 노출조건 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5db78bc10a6f8b945f2528a990d5f7cabfe3bbd8","date":"2026-03-19T09:15:31+09:00","era":"B","subject":"fix: 분석상세-병력분석 조회 시 원본진료데이터->분석데이터 사용할 수 있도록","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6c3ed2a052b3dd2ffacd03ef7b83dc9735e7794","date":"2026-03-18T13:25:29+09:00","era":"B","subject":"fix: 진료데이터 삭제 스케줄러 b2c도 포함","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"190266bd72b9d9d4537c7f01936ea64436f28a61","date":"2026-03-18T11:02:54+09:00","era":"B","subject":"feat: 건강체-3개월내 동일진단코드 자세히보기 기능","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8b9e73776fe23f25697b4e68f496bc2cd9bf0985","date":"2026-03-17T17:07:20+09:00","era":"B","subject":"feat: 분석상세에 건강체-5년내7일/30일이상투약 탭 5년내7일이상진료, 5년내30일이상투약으로 분리","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1340a07e70b6df8e2c89e725517727db2f6752b","date":"2026-03-17T10:09:07+09:00","era":"B","subject":"fix: 숨은보험-기타 그룹핑 설정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7fd8e5305292786cacfd4d47fb9dcd87e8d1f7c","date":"2026-03-16T14:51:10+09:00","era":"B","subject":"feat(user): 분석상세 조회 시 주의사항/건강체/유병자에 전체출력 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbffcfb34abc7a34650aa0682f61a3b3795dd776","date":"2026-03-12T13:49:02+09:00","era":"B","subject":"fix: FCM 푸시 실패 시 분석 상태 업데이트 차단되는 문제 수정","body":"addAlarm() 내부 fcmPush() 에러가 호출자까지 전파되어\n분석 완료/실패 상태(ODD006/ODD007) 업데이트가 실행되지 않는 문제 해결\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"96b06966564048ca006a89176c2654d5b987feff","date":"2026-02-06T17:03:16+09:00","era":"B","subject":"fix: 청구서 좌표 소숫점도 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/utils/type-parser.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"52643daef7bec652ee52694cc760175450988cf0","date":"2026-02-04T13:08:40+09:00","era":"B","subject":"fix: 관리자 FAX 내역 조회 시 tn_order_detail 1:N JOIN으로 인한 중복 행 반환 수정","body":"Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aa6087cd164bf9eaed4f7694c83c2f21398d94ee","date":"2026-02-04T13:08:29+09:00","era":"B","subject":"fix: refresh 토큰 비정상 포맷(JSON 문자열) 방어 처리","body":"- 앱에서 refreshToken이 JSON 객체 문자열로 전달되는 경우 실제 토큰 추출\n- jwtService.decode() 결과 null 체크 추가\n- INVALID_AUTH_TOKEN 상수 import 추가\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e7f54134caf489ce9c2abe8b217048d827ce3878","date":"2026-02-03T17:03:03+09:00","era":"B","subject":"Merge branch 'prod' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8f58dd7204f7bc792625ced6f872021bbac1022e","date":"2026-02-03T17:02:50+09:00","era":"B","subject":"hotfix: 스마트로 결제창에 필수값은 넣는 것으로 수정1","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c5474f85f0971743a205efef5a47f43de2db5b3","date":"2026-02-03T16:55:51+09:00","era":"B","subject":"Merge branch 'prod' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8cdbd996036e66c3a8aaf4debbd8bb353f95e5b8","date":"2026-02-03T16:55:40+09:00","era":"B","subject":"hotfix: 스마트로 결제창에 필수값은 넣는 것으로 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77e20f565e7db18942039f79ff31d5ab46f9346e","date":"2026-02-03T16:45:36+09:00","era":"B","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3dcb63e3aa845a0df17317721a43f0a285dcd698","date":"2026-02-03T16:45:32+09:00","era":"B","subject":"fix: 앱 자동로그인 풀림","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5d6ed77512269dd8653dde0731e9762d4205f745","date":"2026-02-03T16:41:53+09:00","era":"B","subject":"fix: 머니 충전 시 멤버 정보 암복호화 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05f4541204c4ffe25b1b817c4a44cb9c1bd41f64","date":"2026-02-03T12:09:03+09:00","era":"B","subject":"chore: 부가세 주석처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"libs/pg/src/smartro/smartro.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/pg/src/smartro/smartro.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b24333a5f7ed3896d8a18e972bf281844d907504","date":"2026-02-02T17:06:46+09:00","era":"B","subject":"fix: 관리자-고객사 분석상세에서 투약정보 조회 시 날짜검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-where.builder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1bdb772042c02bb434856950832875003efb2200","date":"2026-02-02T14:37:59+09:00","era":"B","subject":"fix: 고객사 분석결과조회 시 주의사항 그룹핑 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb52e11c59a901ef94d67021c92c959f472f2894","date":"2026-02-02T14:35:55+09:00","era":"B","subject":"fix: 진료정보 요청 시 청크로 insert처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a95320f1cd14e799d3c356acf8f4cf5b6252158","date":"2026-01-30T17:29:47+09:00","era":"B","subject":"fix: 분석로그 조회 시 멤버타입 조인조건에 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6da4f9229176bbb0331b196317fb20f504bba7c1","date":"2026-01-30T17:06:05+09:00","era":"B","subject":"feat: 고객사 ci횟수제한 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/client.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ab33050436ea0142849a75709d657ea317501f72","date":"2026-01-30T17:05:55+09:00","era":"B","subject":"feat: 고객사 분석정보조회 api 추가 생성","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"183c5f8b5992d788dd9dacd00d1c44b7b4fb147c","date":"2026-01-29T13:18:19+09:00","era":"B","subject":"fix: 고객사분석결과에 투약로그 검사로그 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f688368ca7347f0bf79e542ff0b6304e9e04d20c","date":"2026-01-29T13:04:26+09:00","era":"B","subject":"refactor: pg사 라이브러리 폴더융합","body":"","body_present":false,"is_merge":false,"file_count":22,"files":[{"status":"M","path":"apps/api/src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"R","path":"libs/pg/src/smartro/index.ts","old_path":"libs/smartro/src/index.ts","score":100},{"status":"R","path":"libs/pg/src/smartro/smartro.dto.ts","old_path":"libs/smartro/src/smartro.dto.ts","score":100},{"status":"R","path":"libs/pg/src/smartro/smartro.exception.ts","old_path":"libs/smartro/src/smartro.exception.ts","score":100},{"status":"R","path":"libs/pg/src/smartro/smartro.interface.ts","old_path":"libs/smartro/src/smartro.interface.ts","score":100},{"status":"R","path":"libs/pg/src/smartro/smartro.module.ts","old_path":"libs/smartro/src/smartro.module.ts","score":100},{"status":"R","path":"libs/pg/src/smartro/smartro.service.ts","old_path":"libs/smartro/src/smartro.service.ts","score":100},{"status":"R","path":"libs/pg/src/toss/index.ts","old_path":"libs/toss/src/index.ts","score":100},{"status":"R","path":"libs/pg/src/toss/toss.dto.ts","old_path":"libs/toss/src/toss.dto.ts","score":100},{"status":"R","path":"libs/pg/src/toss/toss.exception.ts","old_path":"libs/toss/src/toss.exception.ts","score":100},{"status":"R","path":"libs/pg/src/toss/toss.interface.ts","old_path":"libs/toss/src/toss.interface.ts","score":100},{"status":"R","path":"libs/pg/src/toss/toss.module.ts","old_path":"libs/toss/src/toss.module.ts","score":100},{"status":"R","path":"libs/pg/src/toss/toss.service.ts","old_path":"libs/toss/src/toss.service.ts","score":100},{"status":"R","path":"libs/pg/tsconfig.lib.json","old_path":"libs/toss/tsconfig.lib.json","score":83},{"status":"D","path":"libs/smartro/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13a23d1b7be51cf51597605380b5638cf1532bbc","date":"2026-01-29T11:33:58+09:00","era":"B","subject":"refactor: 스마트로 로직 라이브러리화","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/smartro.dto.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/smartro.exception.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/smartro.interface.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/smartro.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/src/smartro.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/smartro/tsconfig.lib.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fca574b465ea210d4ecfd0c71f32424ceda28762","date":"2026-01-29T11:33:48+09:00","era":"B","subject":"fix: 정기결제 PG사 변경(스마트로->토스)","body":"","body_present":false,"is_merge":false,"file_count":22,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing.dto.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing.scheduler.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb741e2413be92d977541dda3aa771fdb2dc637d","date":"2026-01-22T13:49:42+09:00","era":"B","subject":"chore: 핫픽스 yml 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"D","path":".github/workflows/hotfix-stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30ed6a60df563b90bf28458a481084d5ab2da51f","date":"2026-01-22T13:06:20+09:00","era":"B","subject":"Merge branch 'hotfix/early-feature-corp-admin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76da72d5da9d9ca4e1524fd7d8b68ce768f79c42","date":"2026-01-20T17:24:17+09:00","era":"B","subject":"feat: 기업관리자 고객 목록 API 접근 권한 추가","body":"- user-admin.controller에 corp 역할 추가\n- 기업관리자는 자신의 기업(agcId)으로 필터링\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f93036feb47d80e4155d09dfcc255bbd2482a82","date":"2026-01-20T13:55:24+09:00","era":"B","subject":"fix: 병력분서 세세분류, 세세세분류 포함안하는 이슈 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2988911613850813b7b50707834b260d5e337073","date":"2026-01-20T10:25:02+09:00","era":"B","subject":"ci: hotfix 브랜치에서 stg 환경 배포용 워크플로우 추가","body":"- workflow_dispatch로 수동 트리거 방식\n- 기존 stg 배포를 임시로 덮어씌워 테스트 가능\n- 주요 스케줄러 포함 (regular-subscription, agency-subscription 등)\n- 테스트 완료 후 파일 삭제 필요\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"A","path":".github/workflows/hotfix-stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec3237d00e9764dbf86892ab9ce51525f7dff2b1","date":"2026-01-20T10:18:42+09:00","era":"B","subject":"fix: 기업관리자(corp) 회원 등록 시 admId 오류 수정","body":"- create, upload, subscribeUpload 함수에서 adminId 처리 수정\n- admin은 admId, corp은 agcId를 사용하도록 분기 처리\n- 기업관리자로 회원 등록 시 \"존재하지 않는 관리자\" 에러 해결\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cd9b905ba1e16054d2669cdf0be7371524ab6c90","date":"2026-01-19T17:57:20+09:00","era":"B","subject":"fix: 테이블명 컨벤션 준수하도록2","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d49dbbd95b902ea1e81a489da597890634ccd80d","date":"2026-01-19T17:55:53+09:00","era":"B","subject":"fix: 테이블명 컨벤션 준수하도록","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e7a7ecd785d1745c6330067d38c812d3d38e8512","date":"2026-01-19T16:15:56+09:00","era":"B","subject":"fix: 자부상 원본데이터 저장로직 원복","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1675d1313eb6385b22bfefd1db50aeaba565bbf","date":"2026-01-19T16:15:09+09:00","era":"B","subject":"fix: b2c 병명예측 분석결과 쿼리 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cc8feb039ac18de0c92294f99a0c2574c4b02732","date":"2026-01-19T15:02:01+09:00","era":"B","subject":"feat: 기업관리자(corp) 로그인 및 API 권한 추가","body":"- 기업관리자 로그인 API 구현 (/admin/auth/corp/signin)\n- agency-fc API에 corp 역할 권한 추가\n- 기업관리자 접근 시 자신의 기업(agcId) 데이터만 조회하도록 필터링\n- agency 전체조회 API에 corp 권한 추가 및 자기 기업만 반환\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":12,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77e427e9004677adb25dd835981bc762e4f52c60","date":"2026-01-19T10:37:34+09:00","era":"B","subject":"fix: 푸시알림 클릭 시 리다이렉트 반환 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.type.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e6f7e779a4c5c45a46522878dd6c04bc6887515","date":"2026-01-16T16:17:34+09:00","era":"B","subject":"fix: 결함수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27f2f6b54e6361a5000cbe63c0623330b41a33b8","date":"2026-01-15T11:59:15+09:00","era":"B","subject":"fix: 메뉴 하드코딩 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/menu/menu.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/menu/menu.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/menu/menu.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9537dfe3d3ddad68a485e08f97372c06c72f9365","date":"2026-01-15T10:59:34+09:00","era":"B","subject":"fix: 신규가입자 이벤트혜택동의 상태 true처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb694248bdcf30542d3d9cad218cf6a89f0fd6fe","date":"2026-01-14T12:54:52+09:00","era":"B","subject":"fix: 4차개발 조대표님 수정사항","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44d6009c8c0f6eacd7a66fb7762783e6a14bf295","date":"2026-01-14T12:47:56+09:00","era":"B","subject":"chore: claude 임시파일 업로드되지 않도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6beb6afd7dbc748748e2ac3b0a66db1fd3b62059","date":"2026-01-13T10:46:43+09:00","era":"B","subject":"fix: 회원머니/기업회원머니 신규등록/엑셀업로드 시 실패하는 경우 트랜잭션처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67a4e76dbc70d3b7901c8e114690f974d7fe2e3e","date":"2026-01-12T18:07:39+09:00","era":"B","subject":"fix: 머니관련 결함수정2","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"81f99bfcf8c7addccc6e1d371992ce911a7f4183","date":"2026-01-12T17:47:22+09:00","era":"B","subject":"fix: 결제관리상세 이력 쿼리 개선","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4b8e6ac35ca3b5fb07c38fb3a543b19492bdcee","date":"2026-01-12T17:41:16+09:00","era":"B","subject":"fix: 머니관련 결함수정1","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13388b555972440c36c008047b978551ad3fc171","date":"2026-01-12T15:41:18+09:00","era":"B","subject":"fix: 일반결제취소 암호화 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f36abd1840bfcbdf6e6058e48227d8e1f69118d","date":"2026-01-12T14:23:25+09:00","era":"B","subject":"fix: 분석관리 상세 팝업 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ed6870efad2642785ac058100ee12f93f990063","date":"2026-01-12T10:43:57+09:00","era":"B","subject":"fix: 결제취소 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/money/money-wallet.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"46efac637ef418f8047570c9f4940b6a50eb1bcc","date":"2026-01-12T01:08:29+09:00","era":"B","subject":"refactor: 4차 고도화 전반 코드 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":56,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin.controller.ts","old_path":"apps/api/src/modules/analyze/b2c-analyze-admin.controller.ts","score":99},{"status":"R","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin.dto.ts","old_path":"apps/api/src/modules/analyze/b2c-analyze-admin.dto.ts","score":95},{"status":"R","path":"apps/api/src/modules/b2c/analyze/b2c-analyze-admin.service.ts","old_path":"apps/api/src/modules/analyze/b2c-analyze-admin.service.ts","score":98},{"status":"A","path":"apps/api/src/modules/b2c/analyze/b2c-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-admin-view.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-corp.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-grant.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-issue.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-payment.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-public.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-refund.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-source.entity.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money-wallet.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/excel/src/excel.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dfdae344868f78cd4ed3f75ffc12836b170f32f9","date":"2026-01-07T15:55:14+09:00","era":"B","subject":"fix: 변명예측관리 하위메뉴명들에 따른 엑셀파일명 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bfb6ada4dcd2142b183accb07d36e0c1c4b30b03","date":"2026-01-07T15:50:29+09:00","era":"B","subject":"fix: 검사로그관리 업로드양식에 예시값 공백제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c102c6cfb2c4c3451e1ee2c8994c38d49524713","date":"2026-01-07T15:36:56+09:00","era":"B","subject":"fix: 유저에서 결제취소 시 잔액 0원으로 업데이트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c2bfb116fcdbfa73797325be77d2a9d63cce7f84","date":"2026-01-07T13:58:19+09:00","era":"B","subject":"fix: 팩스머니 하드코딩 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad812b6546ea1e0c2ba9122a74fc00ee8c9fb954","date":"2026-01-07T13:24:22+09:00","era":"B","subject":"fix: 변명예측관리 하위메뉴명들에 따른 엑셀파일명 변경","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ccfa8fd491b1a5698920b36f7e3a4d476b5585e","date":"2026-01-07T12:54:40+09:00","era":"B","subject":"fix: 메뉴명변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d2cf35af1e0cac70e9dddcda8ea5edba7dc8aad","date":"2026-01-07T12:25:25+09:00","era":"B","subject":"fix: 청구서 발송방식 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67ad6d9f954522a42086f518651070dbb014f7ae","date":"2026-01-06T16:36:26+09:00","era":"B","subject":"fix: 청구서 다운로드 유저화면과 동일하게","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"596146bf20b4377eb3b32042885d1423a855f840","date":"2026-01-06T14:20:07+09:00","era":"B","subject":"fix: 유저에서 병명예측 조회 시 구독유효성검사 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"31f2fc35b7ab933454345d3e0d549bbfe869c5e5","date":"2026-01-06T12:12:16+09:00","era":"B","subject":"fix: 팩스 재발송 시 차감액 0원처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dac92ed0f7ffae66bb3b58667312d445dc982dbb","date":"2026-01-06T11:58:18+09:00","era":"B","subject":"fix: 청구데이터 조회 시 s3존재여부 파악","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48ba661ba67424acd7082606d46a579e6027220d","date":"2026-01-06T09:57:00+09:00","era":"B","subject":"feat: 머니 사용건에 대한 부분결제취소","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d77d4f491e9483bd472d07629ee9dbfbc9e1af5","date":"2026-01-05T17:37:09+09:00","era":"B","subject":"feat: 결제취소로직 개선1","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f0059128f02b6d085a14f3e9a30e3de860bdab9d","date":"2026-01-02T16:30:13+09:00","era":"B","subject":"feat: 병력분석-진료로그 데이터 노출","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e48184012d1af4595c8f314196be563f94ebb9cc","date":"2026-01-02T09:38:46+09:00","era":"B","subject":"fix: b2c 전체 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/b2c-analyze-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/b2c-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"759788e14d4528e758ea0250581d38e00ce24019","date":"2025-12-30T15:54:04+09:00","era":"A","subject":"fix: 결제사 타입 추가(토스/스마트로 구분)","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"463929e2c9131bd4c9cd4af096ec610c5db5c043","date":"2025-12-30T13:41:05+09:00","era":"A","subject":"fix: 액세스 토큰 mem_id 포함","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c34991765d8344d19f043e15a6270f2c2d327ce","date":"2025-12-30T13:34:04+09:00","era":"A","subject":"fix: 리프레쉬토큰 로직 수정 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a213a8bc08bace62a02dfe18ee84279577c444a","date":"2025-12-30T13:06:13+09:00","era":"A","subject":"fix: 앱에서 팩스 발송시 쿠키값 확인용 로그 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"290031391aaba6f41b7b749059ef11c5d86517c4","date":"2025-12-30T09:58:52+09:00","era":"A","subject":"fix: b2c 병력분석 구독우회","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19e0b1545dfc1c9f5f4f5c30e94aa3625f18836b","date":"2025-12-30T09:26:18+09:00","era":"A","subject":"fix: 상품의 병명예측 사용여부값 및 해당 값에 대한 분기처리 삭제","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dce54015a64c71c742a091c0c47822dc43cc4932","date":"2025-12-29T16:22:21+09:00","era":"A","subject":"fix: 결제건별 이용내역 조회가능하도록","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01885fb6501e4c9f7b30657e587f22a6443a9db0","date":"2025-12-29T15:54:38+09:00","era":"A","subject":"fix: b2c 진료분석 만료 시 ux 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75f63f5fd88792f1cd28dfdebdd3d2fb43eef1de","date":"2025-12-29T12:11:17+09:00","era":"A","subject":"fix: 유저 팩스 재발송 로직 개선","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d28170aaf6703b5edd009e761e43fbf2e030dec1","date":"2025-12-26T16:26:44+09:00","era":"A","subject":"fix: b2c 알림톡 ord_id 컬럼에 bod_id 매핑","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"14ab0653a00d86aedab09ef0adb2901861825032","date":"2025-12-26T15:33:42+09:00","era":"A","subject":"fix: b2c 분석 로그 관리 기업코드 재수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"249f11f336b3ace01457a411c82a382219cbd85f","date":"2025-12-26T15:17:18+09:00","era":"A","subject":"fix: b2c 분석로그 재수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f66717620a83ab9607a270cd2be516c6585ab9cd","date":"2025-12-26T15:00:17+09:00","era":"A","subject":"fix: 스크립트 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba4472c2c5d2e806b174a621bcef64e24bf0c6d9","date":"2025-12-26T14:56:19+09:00","era":"A","subject":"fix: b2c 분석로그 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"722ee888604815d5aa991c5e2abeeb06d8caac72","date":"2025-12-26T14:06:39+09:00","era":"A","subject":"fix: b2c 분석로그 추가","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/b2c-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/b2c-analyze-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log-b2c/log-b2c-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfb788ccf655813444715d766dc87b843c4ebdb3","date":"2025-12-26T13:07:28+09:00","era":"A","subject":"fix: b2c 가망고객","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f4c11cec5921d93be6fd000cae264f882188ef3","date":"2025-12-24T13:53:47+09:00","era":"A","subject":"fix: fax내역관리 재발송","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"072373354b0ee1a426adfccd4d48e179f6a5c843","date":"2025-12-24T12:46:15+09:00","era":"A","subject":"fix: 푸시관리 4차수정범위","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bd63742a0f536762dcbc042ac1b6f2f6e8502f5","date":"2025-12-24T12:22:08+09:00","era":"A","subject":"fix: 팩스 설정 api사용값추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea82b67328037c4d0b5c93e12cc40c44f65fe93b","date":"2025-12-24T12:05:39+09:00","era":"A","subject":"fix: 조대표님수정사항","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01ce5f4baa9cf6371660cb4c1be17a837dda7e51","date":"2025-12-24T11:03:04+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"91e38f3a7e883e6b26171cf8c43850ec1ec7d763","date":"2025-12-24T11:02:50+09:00","era":"A","subject":"fix: 병명예측관리 4차수정범위","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e8c96766ad534edc9afdcb75e6f98ee5f750c4ae","date":"2025-12-24T11:02:42+09:00","era":"A","subject":"fix: 관리자 b2c 서비스관리","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/b2c-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/b2c-analyze-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/b2c-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70c040e642322e437423f32802b7b9739896eb18","date":"2025-12-24T09:19:13+09:00","era":"A","subject":"fix: 팩스 이용내역 관리","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63a73be522452f71067fd5b25ae0a3681ea8f33e","date":"2025-12-23T14:51:26+09:00","era":"A","subject":"fix: b2c 진료분석 조회기간 만료 시 ui/ux 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"013071c55edd51dd50f414b7e64e65683250091b","date":"2025-12-23T14:17:15+09:00","era":"A","subject":"fix: 머니관리 일괄수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a980625e22b7e7d0fe8f4ef32268821dd4cb7e82","date":"2025-12-23T13:16:14+09:00","era":"A","subject":"fix: 청구서 발급내역 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb1bf1f592442a73149134d7639a24faf1792b12","date":"2025-12-23T11:00:42+09:00","era":"A","subject":"fix: 페이지네이션 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/referral/referral.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"644aec2858af3e77ed3250134dc628be24e8bdd0","date":"2025-12-23T10:29:23+09:00","era":"A","subject":"fix: b2c 조회기간 ui/ux","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48ba5bc0c8076713decc32a4b136f4464765c490","date":"2025-12-23T09:21:03+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6cbb867a9954d0ec3b522e9079304af13501ff1d","date":"2025-12-23T01:01:02+09:00","era":"A","subject":"fix: 머니관리 4차수정범위","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f2ca6821d1201a3a3ea8dc65cf62e38a1d254b4","date":"2025-12-22T17:54:54+09:00","era":"A","subject":"fix: 스키마 수정, fn_암호화","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/crypto/src/crypto.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d39f20f64017202bb82d3b3d78410f0484caccd3","date":"2025-12-22T17:42:42+09:00","era":"A","subject":"fix: 암호화 방식 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/crypto/src/crypto.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a09c74931f937fabef4ec06abde0930b61547634","date":"2025-12-22T17:34:38+09:00","era":"A","subject":"fix: tn_user 암호화","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"602090e6d0d6e670506276af488be5c20f95baa7","date":"2025-12-22T17:32:40+09:00","era":"A","subject":"fix: 일반회원 상세 적립머니 값 노출안되는거 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d6d0d07baac76e4d979837c810729d5684b21d8","date":"2025-12-22T17:07:45+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5df056b05f55cbf31955a52ac8914115796b8ce3","date":"2025-12-22T17:07:36+09:00","era":"A","subject":"fix: 일반회원관리에 추천인정보 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"110e08e3fc4fb4f0c5b4dae1e109dcbe5345dc57","date":"2025-12-22T16:57:36+09:00","era":"A","subject":"fix: b2c 백그라운드 처리 데이터 저장 시점 변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"09dd2b2dd808ffcd436a37c057ffcbeb57f1425e","date":"2025-12-22T16:17:02+09:00","era":"A","subject":"fix: 스크립트 재수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8222325645bfc6c872036898114191d4e256c56a","date":"2025-12-22T16:10:54+09:00","era":"A","subject":"fix: 스크립트 오류 재수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cea6fba874f61bcaec1ad0db8b1d1a09008227d8","date":"2025-12-22T16:04:57+09:00","era":"A","subject":"fix: 스크립트 오류 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"91675bbd72305abe4586dce7ea7ed18b900e8ebd","date":"2025-12-22T15:57:53+09:00","era":"A","subject":"fix: b2c 비동기 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"432f8f9513953b6cb72da61e7aaad13b7ac7d89e","date":"2025-12-22T15:21:30+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/insuniverse-com/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1996fce67fc765c39054e982e20a5ee3356655a8","date":"2025-12-22T15:21:25+09:00","era":"A","subject":"feat: 기업머니관리-내역","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfa4a3b1529a3d2d646b4bb7d85623f907909026","date":"2025-12-22T15:17:06+09:00","era":"A","subject":"fix: b2c분석요청 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef57d7b8760e4e4495b3ac9b410c975de5fbad2d","date":"2025-12-22T14:30:34+09:00","era":"A","subject":"fix: b2c 유저 테스트 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e0dd3f9a3c7e76d821a285a106fcc4095c20ea8d","date":"2025-12-22T14:10:59+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"Resolved merge conflict in fc.repository.ts by combining:\n- Referral code fields (memMyReferralCode, memReferralCode, referralCount)\n- Money fields (memMoney, memPurchaseMoney, memAgencyMoney)\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"94973bafddb38e1d955fa412f261066af00750f8","date":"2025-12-22T14:09:08+09:00","era":"A","subject":"feat: 추천인관리 메뉴위치 이동 및 노출 항목추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc293a93351472dc031f222ae2736d81d69647f4","date":"2025-12-22T12:26:41+09:00","era":"A","subject":"fix: 세부데이터 등록/수정 시 공백제외 중복검사처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"96f7c28111632e2ffa20bdd01f34fb2b58d72d00","date":"2025-12-22T11:22:40+09:00","era":"A","subject":"fix: 유저 수정 1차","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b406d338f778d92e2edb528f978e088bcfcf576","date":"2025-12-22T09:58:21+09:00","era":"A","subject":"fix: auth 연결, ui 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"88f06cc7ed38d3e18ff7541349980c30ecd6d45c","date":"2025-12-19T20:55:21+09:00","era":"A","subject":"fix: b2c 프로시저 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/user/jwt-optional.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca1087607882ec81561d3342b4b5c02d74204b6d","date":"2025-12-19T19:26:47+09:00","era":"A","subject":"fix: 프로시저 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c16f2bcdfd81a98288e3e5dbafbf1b7ec78c515a","date":"2025-12-19T18:29:20+09:00","era":"A","subject":"fix: 배포 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53a6722e81add1f5148ac1e3d5c6e7c57c6186a7","date":"2025-12-19T18:12:40+09:00","era":"A","subject":"fix: 배포 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"470585b09658e631bfac577d44187bf49effc90d","date":"2025-12-19T18:12:02+09:00","era":"A","subject":"fix: 배포 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"852bc82b0f89206496594eca4141ac553bd30129","date":"2025-12-19T17:45:06+09:00","era":"A","subject":"fix: b2c 스키마 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"14eab186e23b8401c24d14aab8cb89c50b5b09fa","date":"2025-12-19T17:16:57+09:00","era":"A","subject":"fix: 프로시저 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"747ecb332e9833bc8594b32353553d94ab066f6f","date":"2025-12-19T16:48:27+09:00","era":"A","subject":"fix : bod_id 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"58c16309259599d947d5d78cbfd2343232ec7853","date":"2025-12-19T16:31:01+09:00","era":"A","subject":"fix: 복합 PK 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"16624b3503c95a25d62187a3f59deeb13ce1a327","date":"2025-12-19T16:06:10+09:00","era":"A","subject":"fix: b2c 재수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea71dd5a3e5fc1a056a79e878df89187a11e6005","date":"2025-12-19T16:03:28+09:00","era":"A","subject":"fix : b2c 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c07efb9f67ee961aec323c000896959da2da76e","date":"2025-12-18T18:20:28+09:00","era":"A","subject":"fix: 상담신청 테스트","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b94806f2a9bb168b03d8e2896a8fddb10cdf348f","date":"2025-12-18T17:42:12+09:00","era":"A","subject":"fix: 알람톡 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2258920f5689fde2a648408080d19743a18e0fb0","date":"2025-12-18T17:33:39+09:00","era":"A","subject":"fix: b2c 상담신청 및 생년월일 인증 , 알람톡 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7dc2a87bb752d7fbc6560fed57d88f23dfb05d0","date":"2025-12-18T16:32:26+09:00","era":"A","subject":"fix: b2c 알람톡 리다이렉트 및 전체출력 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"993868f4734f7a810f3e481a7a8712e468757517","date":"2025-12-18T16:04:06+09:00","era":"A","subject":"fix: b2c 알람톡 외부 브라우저 이동","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ae0f3edfd79d11543514e8d8d87f564c6c7c623","date":"2025-12-18T15:49:17+09:00","era":"A","subject":"fix: b2c 알람톡 실패 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"88107c15fb7345cb04579fddf651f55d29b8ed06","date":"2025-12-18T15:38:02+09:00","era":"A","subject":"fix: b2c 알람톡 테스트","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9d00ecda416a039867fa5cfa5829f7976b72232","date":"2025-12-18T15:18:34+09:00","era":"A","subject":"fix: b2c 알람톡 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"12c81bfdae6a05ae44a2ebe638d7ab95b3ca8fd2","date":"2025-12-18T11:20:05+09:00","era":"A","subject":"fix: b2c 진료분석","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"744d2958e002039bb9184b4c9dd5e85bc79788c5","date":"2025-12-17T18:23:51+09:00","era":"A","subject":"fix: b2c 분석 재수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bebcb85b0147f5343c042f7ee79808c792565516","date":"2025-12-17T17:59:41+09:00","era":"A","subject":"fix: b2c 분석 재수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdcc891fd7f4871cdff614cb58c5f6075481cc74","date":"2025-12-17T16:43:59+09:00","era":"A","subject":"fix: b2c 진료분석 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"844a571f2649986b21359b72c6e20ffc11b76e20","date":"2025-12-17T16:09:44+09:00","era":"A","subject":"fix: b2c 진료분석 수정 5차","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"22fda3db8451e17cbd8bdfe067fc178be0c5226e","date":"2025-12-17T15:47:44+09:00","era":"A","subject":"fix: b2c 진료분석 수정 4차","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50fe629ee3ca0861eafd8a7e896353df14921093","date":"2025-12-17T15:30:18+09:00","era":"A","subject":"fix: b2c 진료분석 2차 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c15cb9c60c903e61de25a8354c41da911fcdc70e","date":"2025-12-17T15:18:05+09:00","era":"A","subject":"fix: b2c 병명예측 수정 1차","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8569557cf4219f83d85848359ba4169a8e7deba2","date":"2025-12-17T14:06:46+09:00","era":"A","subject":"fix: b2c 보상찾아줘 수정완료","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/b2c/b2c.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/b2c/b2c.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3636e9c1cb59b5f120e62df64a467ed1758b0f2f","date":"2025-12-16T15:10:39+09:00","era":"A","subject":"fix: b2c 진료분석 상세페이지","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fa297fbf59e614e41537ad25b53a6cc8d63da43","date":"2025-12-16T10:42:35+09:00","era":"A","subject":"fix: b2c 진료분석 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"926afac41712b2dbcd2cccb62d92da5b8b7f694d","date":"2025-12-15T18:53:52+09:00","era":"A","subject":"fix: b2c 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4022051fdd3ee2d840c7d4eaf18f304fb653708c","date":"2025-12-15T18:38:27+09:00","era":"A","subject":"fix: b2c 진료정보 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"493b41e2c171e7243ec61584b5fb94aa837221a2","date":"2025-12-15T14:40:12+09:00","era":"A","subject":"fix: b2c 프로시저 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5772ed224528b0b83cc2e3021ccaced243c1d017","date":"2025-12-15T14:03:13+09:00","era":"A","subject":"fix: b2c ci값 제거, 유저 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ab117d21fa0afda7140b43c5bb49ff9a279cdcc","date":"2025-12-15T10:22:47+09:00","era":"A","subject":"fix: 로그확인용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1bf9c8121f5bf50da7339999a218ff7f21826346","date":"2025-12-15T10:05:00+09:00","era":"A","subject":"fix: 자동차 보험 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c934b80fd5b3b0a8524cf20557aa1249792bace2","date":"2025-12-15T09:47:40+09:00","era":"A","subject":"fix: 광고 동의 컬럼 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b310acf2799f48d2a2c539e6835dba89adfd91f0","date":"2025-12-15T09:24:08+09:00","era":"A","subject":"fix: bab_id 제약조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1b47d934c280f305eda9c0f88836226cd6f9bdc","date":"2025-12-12T18:26:00+09:00","era":"A","subject":"fix: b2c 테이블 컬럼제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51b063d71fa9009da82b84e0fcc24af0c2301416","date":"2025-12-12T17:53:52+09:00","era":"A","subject":"fix: b2c 테이블 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"A","path":"apps/api/src/modules/b2c/b2c-analyze.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/b2c/b2c.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70873a6325579cb64ed309027d979c69544a4b51","date":"2025-12-12T17:38:20+09:00","era":"A","subject":"fix: b2c 테이블에 저장","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/b2c/b2c.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/b2c/b2c.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/b2c/b2c.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"912b0998cf50b8604ca3ed5ef41587898bd1c674","date":"2025-12-12T16:58:01+09:00","era":"A","subject":"fix: 접두사 제거, 암호화 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0cd2e1a26d55909f98b5e30c81e83633a16ceb3","date":"2025-12-12T16:34:01+09:00","era":"A","subject":"fix: B2C 모드 - ccnId 조건 콘솔 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4036e73091a38bba0cb4b9450e7e9b2106f35589","date":"2025-12-12T15:48:31+09:00","era":"A","subject":"fix: b2c는 계약 id 없이도 진행","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5abc450bb38071b428f05e5f3780d2189bbf9645","date":"2025-12-12T15:38:34+09:00","era":"A","subject":"fix: 고객사 api 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d27840885026fae338810e52d4738f9ab162e91c","date":"2025-12-12T15:17:18+09:00","era":"A","subject":"fix: b2c 기업 진료분석 테스트","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d18c77d06215b7561ee4f3ea02896a14d3b645de","date":"2025-12-12T09:44:08+09:00","era":"A","subject":"fix: 추천인 문구 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db11d464444f04d2f55b757d37eb7224d21a4cc5","date":"2025-12-11T18:05:32+09:00","era":"A","subject":"fix: 테스트 수정","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/invoice.seeder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-invoice-files.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7114193452f8dbf92a78e2dc63b73ba759bec9d","date":"2025-12-11T16:02:40+09:00","era":"A","subject":"fix: 테스트 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e470689051306d1fcd75597c6a0c6867a113548","date":"2025-12-11T14:19:43+09:00","era":"A","subject":"fix: 청구서 30일 만료 스케줄러 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/delete-invoice-files.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"215be8c79d790ff68833bf9e4b0d5cce58d60e8f","date":"2025-12-11T10:16:08+09:00","era":"A","subject":"fix: 적립 회수 문구 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f9e80b7e486c1c7be31593ad203fee2e251ee696","date":"2025-12-11T09:40:46+09:00","era":"A","subject":"fix: 유효기간 만료 문구 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca3dc4e03df66f6b9df814afa71550b6387211d7","date":"2025-12-10T21:59:03+09:00","era":"A","subject":"fix: 청구서 발급 내역 예외처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6e38c5a2fcdea94bf1c71ac6fc7fd1401848441","date":"2025-12-10T20:01:49+09:00","era":"A","subject":"fix: 상태 조회 실패 시 미발송 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"726aa2bca7de2881b5459be233686118a4279267","date":"2025-12-10T19:42:29+09:00","era":"A","subject":"fix: 환경변수 AES 로 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"59500e5c5d02daa416dd287e585a11115bd73eff","date":"2025-12-10T19:37:10+09:00","era":"A","subject":"fix: 청구인 이름 복호화 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a4331eec333bbed269eeddc76d0117797f11446","date":"2025-12-10T19:27:12+09:00","era":"A","subject":"fix: 청구인 이름 가져오기 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4be9668ddb1fe2827035756e407c5d1281bb34f5","date":"2025-12-10T19:09:56+09:00","era":"A","subject":"fix: 청구인 네임 정규식 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"638e0458c93a3b3d7bc905f572b23ac82c707119","date":"2025-12-10T18:01:39+09:00","era":"A","subject":"fix: 청구인 이름 저장 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1cb8465f2aeeb789f123d54348a4e4c06092abe0","date":"2025-12-10T17:34:27+09:00","era":"A","subject":"fix: 팩스 머니 히스토리 배치 아이디 그룹핑","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"86f0ee5eb81aae175122a8faef3a9178ca7d7681","date":"2025-12-10T14:33:39+09:00","era":"A","subject":"fix: 팩스 발송 시 mthbalance 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68409d527b81987035e5481887b3fa36726b1f0e","date":"2025-12-10T14:06:41+09:00","era":"A","subject":"fix: 재발송 내역 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c5e7eb784e28ee626a984c28e2c03a598288b8e","date":"2025-12-10T13:52:27+09:00","era":"A","subject":"fix: 청구서 발급내역 상세 재발송 1차 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95b1d0ffc3ddcc0c6b25cf8af768e89ff6dd4260","date":"2025-12-10T13:23:31+09:00","era":"A","subject":"fix: 청구서 발급 내역 상세 보기 2차 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"469ac0bd11cc89f5629c65a909abbadd8b0b8d4d","date":"2025-12-10T13:09:57+09:00","era":"A","subject":"fix: 청구서 발급 내역 상세 보기 버튼 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"964ef5686f33b5e7765a966d3cc1837ee63177ed","date":"2025-12-10T10:45:31+09:00","era":"A","subject":"fix: 보유머니 내역 문구 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df103bc4eda2cc21a66f52aa49027ed089841a5e","date":"2025-12-09T21:42:29+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트 7차 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e5dce2d127fd2c587a890922b66549f18117450","date":"2025-12-09T21:33:08+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트 6차 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02d22599df410a7f2df5f92505c0480d62c30123","date":"2025-12-09T21:24:14+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트 5차 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6376eaa3fbacb4a1c9f239cebe47bb0376ea9d6e","date":"2025-12-09T21:05:14+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트 4차 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"adbd579e9235b5ae9cdb34c5e38c70076e3af713","date":"2025-12-09T20:03:59+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트 2차 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b08b3bd9d02d36f8b1aa6dae8d215c356573d3f","date":"2025-12-09T19:48:33+09:00","era":"A","subject":"fix: S3 청구서 발급 내역 재발송 테스트","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a7137e5da04c92bf55aa71f3610b19ac9a4a46c","date":"2025-12-09T19:22:42+09:00","era":"A","subject":"fix: 청구서발급내역 날짜필터","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3cd02083fb3bec8cfb7d22230745e43f0680a957","date":"2025-12-09T17:23:02+09:00","era":"A","subject":"fix: 팩스 발송 시 자동충전 여부","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9cd0511469f525ff8b942762125e953307811180","date":"2025-12-09T14:08:21+09:00","era":"A","subject":"fix: 보험사 팩스번호 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"caf7d81907e9d96651b22be2f59043b25d32914c","date":"2025-12-09T13:51:54+09:00","era":"A","subject":"fix: S3 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"83497d9392d9ee6a61c4356a3f2019ca4012d943","date":"2025-12-09T13:26:57+09:00","era":"A","subject":"fix: S3 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"231883c4cdbe24afe210fcc1e5122a67bf37bc1e","date":"2025-12-09T11:38:23+09:00","era":"A","subject":"fix: S3 에러 로그 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15259d24f3acc21f14a671f6c9944941c8bce29d","date":"2025-12-09T11:26:52+09:00","era":"A","subject":"fix: S3 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7f4fb89380035254c6b79068908a90e3c86b8b1","date":"2025-12-09T11:10:37+09:00","era":"A","subject":"fix: S3 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4f595a34536fcb27265e091c499a073400907526","date":"2025-12-09T10:57:51+09:00","era":"A","subject":"fix : 청구서 발급 시 S3 저장","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"355c439ea41604821c9a5f7624dc1cce5c2b8cfd","date":"2025-12-09T10:24:52+09:00","era":"A","subject":"fix : 팩스 이용내역 수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/crypto/src/crypto.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32c83f290b80b595e3c47b39c38ea3a52f6fa1cf","date":"2025-12-08T18:08:57+09:00","era":"A","subject":"fix: 보유머니 차감 로직 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8601ca174b3ed1bc222719562f4915e9ffab02af","date":"2025-12-08T17:39:17+09:00","era":"A","subject":"fix: 파일이름 디코딩","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78769d4829db5ffdd94dc9711fc92fce840f0b29","date":"2025-12-08T17:27:51+09:00","era":"A","subject":"fix : 팩스 발송 시 머니차감","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d4e33fb8afa9fab94c37b256a0423cc33132d2d6","date":"2025-12-08T17:16:59+09:00","era":"A","subject":"fix: s3 인코딩 문제 해결","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21fa35bc70e2fd1f734b7d1be4ccab5842173f1f","date":"2025-12-08T17:09:09+09:00","era":"A","subject":"fix : S3 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"857256a234039cbad6f40ca59909c9056ce33374","date":"2025-12-08T17:01:23+09:00","era":"A","subject":"fix: s3 테스트","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9389333437fa73d13aa1fa4d60634e0c67e7e940","date":"2025-12-08T16:44:05+09:00","era":"A","subject":"fix: S3 업로드 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8b022ba4048349853aff80d2bd32a8dacfb7ead9","date":"2025-12-08T16:02:32+09:00","era":"A","subject":"fix : fax 상세 및 적립머니,결제취소 선입선출","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a1a19de496ad29ceb42d8fd1c004ae311d99a4d","date":"2025-12-08T11:13:49+09:00","era":"A","subject":"fix: env file 참조","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca881a2bea83d4a995035cb357a4ae8afdc3c0d7","date":"2025-12-08T11:04:30+09:00","era":"A","subject":"fix: 경로 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80f6d67558e2a7c9dddb0a74b6e5de6428c2f3e0","date":"2025-12-08T10:51:58+09:00","era":"A","subject":"fix: 의존성 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"569c68b5428c081e7b96835397ad065675ef3224","date":"2025-12-08T10:39:44+09:00","era":"A","subject":"fix: 만료 머니 스케쥴러 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6bd284082ae2d78e311bc4d4436c376fc4888198","date":"2025-12-08T09:57:55+09:00","era":"A","subject":"secure: true - HTTPS에서만 쿠키 전송 sameSite: 'none' - cross-origin 요청에서도 쿠키 전송 허용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76abc8c38290683e7d2afbe638e86a02a2b1505d","date":"2025-12-08T09:50:59+09:00","era":"A","subject":"개발/스테이징 환경(NODE_ENV=stg)에서는 쿠키 없이도 관리자 권한으로 작동 운영 환경(NODE_ENV=prod)에서는 정상적으로 인증 필요 로컬에서 IP/localhost 혼용 문제 해결 ✅","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"800a61ac6608f8992e97996cd1a2eae8f3962d77","date":"2025-12-06T20:08:09+09:00","era":"A","subject":"fix: 빌링 삭제 실패 시 디비에서라도 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"04ce3c954ecd347226420bb2ea0df97ef761cbb9","date":"2025-12-06T19:24:25+09:00","era":"A","subject":"fix : 카드 설정 변경, 구독 결제 취소 시 적립금 회수","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d3c1cd9991cefbf02de629a7ce9ff263720939b7","date":"2025-12-06T18:17:07+09:00","era":"A","subject":"fix: 유효기간 적립회수 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44f466eb7f28173547648ce50cbc2d986d8d3462","date":"2025-12-05T13:31:18+09:00","era":"A","subject":"fix: ip 변경 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ba9d628b0c31596df54a8e21d2da73289b64d35","date":"2025-12-05T10:49:59+09:00","era":"A","subject":"fix: fax 테스트","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"391f7bb9c307c110d5f5b92a065c8ca6574cdcea","date":"2025-12-05T09:39:24+09:00","era":"A","subject":"fix: 스크립트 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"18fe387716fd04f023e3279ec247c802a541e312","date":"2025-12-05T09:37:06+09:00","era":"A","subject":"fix: fax 테스트","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67bfffe88a2abf4bca776e05a8411d7a80f7ca06","date":"2025-12-04T14:56:38+09:00","era":"A","subject":"fix: 보유머니 api 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c200a6fa286874bacd126792da25d2dcdbafcd7","date":"2025-12-04T11:17:41+09:00","era":"A","subject":"fix: 회원가입 추천인 api 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"60ead9b74a09f2f39f2bd5d816285e92244b575f","date":"2025-12-04T10:03:24+09:00","era":"A","subject":"fix: 추천인 혜택 api 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"756ad22209208a9d66b467b53b8ee1c7f78ae1ac","date":"2025-12-04T09:41:36+09:00","era":"A","subject":"fix: 유효기간 표기 수정, 친구초대 페이지 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/referral/referral.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/referral/referral.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/referral/referral.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7470faee228b973267d51496847ec05e6c8bf2f6","date":"2025-12-03T17:07:45+09:00","era":"A","subject":"fix: 머니 충전 시 알림톡 회원 로직 강화, fax api 1차 수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2f948601102c891f24896ec715bea7669b0b79a","date":"2025-12-03T10:53:06+09:00","era":"A","subject":"자동충전이 실행되는 시점: ✅ 자동충전 설정 완료 시 (조건 맞으면 즉시 충전) ✅ 머니 실제 사용 시 (팩스 이용 등) ❌ 환불 신청 시 (제거됨)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc44d1eb060e249e08e1ca7f89c99919b798a1db","date":"2025-12-03T10:08:02+09:00","era":"A","subject":"fix: 자동 빌링 충전 수정, 결제 취소, 환불 신청 타입 설정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"540128712abf3c44164c08465e97ed25dd4d95ad","date":"2025-12-02T16:43:06+09:00","era":"A","subject":"fix: 머니관리 액셀 양식,업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3b5b9c34363602f0691473ff01b8f4f4134c0065","date":"2025-12-02T15:30:56+09:00","era":"A","subject":"fix: 내용, 사유, 타입 정리","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f0acdd323098327e8c2d378544920c1a90cb21a","date":"2025-12-02T13:08:32+09:00","era":"A","subject":"fix: 자동충전 변경 ✅ 머니 차감 시 (createPointTransaction에서 음수 금액) ✅ 환불 신청 시 (createRefundRequest) ⏳ 팩스 발송 시 (TODO로 머니 차감 로직 구현 대기 중)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.scheduler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ca71b43db0cbb578b147b7c4f3acb94767278f0","date":"2025-12-02T10:43:59+09:00","era":"A","subject":"fix: 머니 충전 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a03c3c6b7975cdbb2b567a650ceb87f429ce7b6f","date":"2025-12-02T09:50:28+09:00","era":"A","subject":"fix: 머니관리 일괄수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"187138e737c3c4a9760bc08404fb42cc763904e2","date":"2025-12-01T14:57:49+09:00","era":"A","subject":"fix: 머니관리 1차 수정","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dee39a4eb53f38143d216d0eac6a8631051e2f2c","date":"2025-11-28T16:48:24+09:00","era":"A","subject":"fix: 알람 title,content 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbaf79d9e2e79241c1dc7e2da7131c7d4efbff8c","date":"2025-11-28T09:38:08+09:00","era":"A","subject":"fix: 기업 상세 관리 sagId 옵셔널 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"adada470ca3363cd62ed5cefc858eb7593f3b0dc","date":"2025-11-28T09:31:04+09:00","era":"A","subject":"fix: 기업상세 sagId 옵셔널 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c25c4ad1200ae77b9e5f0dd35e7383e51b16677d","date":"2025-11-28T09:30:11+09:00","era":"A","subject":"fix: 머니충전 및 카드결제 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7dccdab4ce8cdcc6430221e60a03faaf6d76e6fa","date":"2025-11-27T17:56:36+09:00","era":"A","subject":"fix: 자동충전 기능 적용","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c0c95e265fdb0cb9a3a867b89fd34371d7a43a9","date":"2025-11-27T17:04:08+09:00","era":"A","subject":"fix: 로그제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a6b46f0c83f98a3092462f48541bc5974768d56","date":"2025-11-27T16:50:21+09:00","era":"A","subject":"fix: 리다이렉트 재설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6324e159d9d385105fea023f301de6c45adb03c","date":"2025-11-27T16:07:39+09:00","era":"A","subject":"fix: 충전 알림톡 템플릿 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cd14ee0081f7c3fbf6cd1e5d5121ee5c1db9b167","date":"2025-11-27T15:55:16+09:00","era":"A","subject":"fix: 일반결제, 빌링결제 시 알림톡 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"33455ca00fa82c5f2f424cc4aa63487e3965b1ce","date":"2025-11-27T15:32:45+09:00","era":"A","subject":"fix: 포인트 충전시 알림톡 발송","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dedcc876dc2ccc0b5383b6bb68f46386c5e03ac6","date":"2025-11-27T15:06:31+09:00","era":"A","subject":"fix: 서버로그로 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8133ce612fe3e18fed2a0b24a18212c97950a38","date":"2025-11-27T14:54:38+09:00","era":"A","subject":"fix: 만료 머니 로그 확인용 커밋","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6849d3eec7455baa56c0934194988883b60226c","date":"2025-11-27T14:35:03+09:00","era":"A","subject":"fix: 내장스케쥴러 완전 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/money/money.scheduler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d64cae43c1f466b839fd2f4b4e1eaf056412b556","date":"2025-11-27T13:23:16+09:00","era":"A","subject":"fix: 유효기간 만료 머니 스케쥴러 설정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/expired-money.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3916be9172be4ad6a53ed69d6ce8a00e02887ec3","date":"2025-11-27T10:45:10+09:00","era":"A","subject":"fix: 정기구독 스케줄러 원복","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92d088c2c704d68664aadc4d05b40c378e8452bb","date":"2025-11-27T10:04:35+09:00","era":"A","subject":"fix: 정기구독 결제 알람톡 테스트를 위해 10분 주기로 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ddfb8181767e97b7b54ea367ee026eb4a11efbd","date":"2025-11-27T09:55:03+09:00","era":"A","subject":"fix: 정기구독 결제 시 알람톡 테스트","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"311d4fd3ee018397c74149a5f0517b566400fbc8","date":"2025-11-26T18:06:05+09:00","era":"A","subject":"fix : 리다이렉 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e9e01d6efb59d4d2ad1e4d167639832520edc22a","date":"2025-11-26T17:55:34+09:00","era":"A","subject":"fix: 자동충전 시 리다이렉트 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"166fb0452ac8815eebe0ac66ae6072c9125a78e8","date":"2025-11-26T16:47:24+09:00","era":"A","subject":"fix: 스마트로 결제 리다이렉트 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"573cc9ade038c853a6ab12e871bb938d9eded9c7","date":"2025-11-26T16:16:50+09:00","era":"A","subject":"fix : 결제 리다이렉트 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffa08a32e2404367749e9067fec6fa53ece7aada","date":"2025-11-26T15:02:20+09:00","era":"A","subject":"fix: 스마트로 결제 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f76380378edfffc78ec76b6e56d2e6f46e3cab4","date":"2025-11-26T13:14:25+09:00","era":"A","subject":"fix: 신규 구독 시 토스카드,스마트로 카드 분기처리","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5692b5b93f043ecd57ac06077d147139f5151831","date":"2025-11-26T09:36:58+09:00","era":"A","subject":"fix: 신규카드 등록 시 스마트로 빌링키 등록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5999053446ec81a76e9dfe55ff735fcd315630fe","date":"2025-11-25T19:09:08+09:00","era":"A","subject":"fix: 결제수단 스마트로 목록 및 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"82edb5082388abeb1eb36e7e504475db61c9bef2","date":"2025-11-25T18:20:35+09:00","era":"A","subject":"fix: 자동충전 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b6c6b7aa7dc0c38c2a24c4fb3031e923209599d9","date":"2025-11-25T15:36:14+09:00","era":"A","subject":"fix: 자동충전 스케줄러 주기 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/billing/billing.scheduler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40933e511294942149efe2b51ba568813f919267","date":"2025-11-25T15:21:17+09:00","era":"A","subject":"fix: fax","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"A","path":"apps/api/src/modules/fax/fax-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax-user.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fax/fax.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b022bd0aae543afdbf289ff53f6c283cf55cfc7","date":"2025-11-25T15:17:44+09:00","era":"A","subject":"fix: 자동충전 설정 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing-user.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing.scheduler.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/billing/billing.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"34bc526457fe5065f1956ceb6b8d1ee3cfefa11d","date":"2025-11-24T16:18:15+09:00","era":"A","subject":"fix: 머니 유효기간 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40ef9f186c4c1b770b4e98b997e39cbdea359efc","date":"2025-11-24T15:13:40+09:00","era":"A","subject":"fix : 포인트 유효기간 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/money/money.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/money/money.scheduler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"52362e3bbb471bd4af8dab26228786563cc32229","date":"2025-11-24T11:27:13+09:00","era":"A","subject":"fix : 변수명 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c962b0f0a19e4db9c2e42054f38090138fa3e0da","date":"2025-11-24T10:09:11+09:00","era":"A","subject":"포인트 api 변경","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/money/money.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53aea0f1b3c1410bae9b3a0379644f20aa29131e","date":"2025-11-24T09:47:11+09:00","era":"A","subject":"포인트 -> 머니 파일명 변경","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/money/money-admin.controller.ts","old_path":"apps/api/src/modules/point/point-admin.controller.ts","score":99},{"status":"R","path":"apps/api/src/modules/money/money-user.controller.ts","old_path":"apps/api/src/modules/point/point-user.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/money/money.dto.ts","old_path":"apps/api/src/modules/point/point.dto.ts","score":100},{"status":"A","path":"apps/api/src/modules/money/money.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/money/money.repository.ts","old_path":"apps/api/src/modules/point/point.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/money/money.service.ts","old_path":"apps/api/src/modules/point/point.service.ts","score":99},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/point/point.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c543c6c96b1a084452e2288fe8bb68caf90c4a90","date":"2025-11-24T09:35:24+09:00","era":"A","subject":"포인트 -> 머니 변수명,파일명 변경","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c44ba3ee66e2e1aa0c27ce62c561495c1e58267","date":"2025-11-21T16:32:32+09:00","era":"A","subject":"fix: 포인트 잔액 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"11301f2dec078cb8af4f104233bf792a5ec0a306","date":"2025-11-21T16:17:30+09:00","era":"A","subject":"fix: 포인트충전상품 제거","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d9373e945c3e987a78ec96180be5284d2566039","date":"2025-11-21T14:48:42+09:00","era":"A","subject":"fix: 포인트 충전 페이지 수정 및 결제 취소 기능","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"791f209627ab82147706d5799435e60e7220a304","date":"2025-11-21T11:11:48+09:00","era":"A","subject":"fix : 구독 시 포인트 지급","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68c81b113ddc77848b6f53b32d0b83575fa0682f","date":"2025-11-21T09:40:30+09:00","era":"A","subject":"구독 상품 결제 시 월별 포인트 자동 지급 기능 추가","body":"- 구독 상품에 매월 지급 포인트 필드(prd_monthly_point) 추가\n- 결제 성공 시(PAY001) 상품에 설정된 포인트를 회원에게 자동 지급\n- 포인트 지급 카테고리: SUBSCRIPTION_REWARD(구독지급)\n- OrderRepository에 getSubscribeInfo 메서드 추가\n- ProductRepository에 getDetailByCode 메서드 추가\n- 포인트 지급 실패 시에도 주문 프로세스는 정상 진행\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8589f332b9d67def7665be08dbdfcb42b0a99dc","date":"2025-11-20T17:47:21+09:00","era":"A","subject":"feat: 개발 유저(memId: 180) 병명예측 구독 체크 우회","body":"- disease.service.ts: getRecommendedInsuranceByDisease, getInsuranceReferenceTree 메서드에 개발 유저 체크 로직 추가\n- 개발 유저(memId: 180)는 구독 여부와 관계없이 병명예측 기능 사용 가능\n- disease-public.controller.ts: ForbiddenException import 추가\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3c92fee7801819dd351f735d70281ba2fae946f","date":"2025-11-20T17:35:50+09:00","era":"A","subject":"fix: DEV_USER(memId: 180) 구독 체크 우회 처리","body":"- 화이트리스트 IP에서 사용하는 DEV_USER(memId: 180)는 구독 체크 건너뛰기\n- checkDiseasePredictionAccess에서 memId 180 체크 추가","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"366c939189046c099de4695edc5fd853c045372e","date":"2025-11-20T17:25:17+09:00","era":"A","subject":"fix: 화이트리스트 IP에서 JWT 검증 실패 시 DEV_USER payload 설정","body":"- 화이트리스트 IP(58.72.93.50)에서 JWT 토큰 없거나 검증 실패 시 바로 return true 하지 않고 DEV_USER를 payload에 할당\n- req.user가 설정되도록 수정하여 controller에서 memId 사용 가능하도록 개선\n- payload null check 추가로 안전성 향상","body_present":true,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dcf2bbb2c9c9596e3cfe2e83bfe3b3350127cbe9","date":"2025-11-20T17:03:17+09:00","era":"A","subject":"화이트 리스트 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b533b382c422266c9f5413a6d45a22730b277d2c","date":"2025-11-20T11:15:50+09:00","era":"A","subject":"기업포인트 관리 추가, 내역관리 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5268977a3f6730a727400dfcce03e3f209026587","date":"2025-11-19T18:12:00+09:00","era":"A","subject":"포인트 환불관리 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b93e0225d22963538310f6517feed21f0f561c8d","date":"2025-11-19T17:30:06+09:00","era":"A","subject":"관리자 페이지 포인트 관리 합산 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"11290436a82ab77e303f9d795524be3cbe825e0a","date":"2025-11-19T17:03:45+09:00","era":"A","subject":"포인트 관리 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f12bfb88753f457264937cc0e1eb819fec888b1","date":"2025-11-19T09:21:02+09:00","era":"A","subject":"포인트 결제 후 리다이렉트 수정 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"813423d3cab4d22955a114f301336738f6f66dce","date":"2025-11-18T17:41:53+09:00","era":"A","subject":"포인트 관리 ui/ux 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"efbffa66e29ec9878bdd5a3f38c73e3eacd4cb7b","date":"2025-11-18T17:08:52+09:00","era":"A","subject":"환불관리 리펙토링","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0dba80bc6f2ab7dbb1ac2f64b4072e652203023","date":"2025-11-18T16:25:12+09:00","era":"A","subject":"포인트 환불관리 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac0c9cc5d834115cd82831615f5e61c83aab8892","date":"2025-11-18T14:50:15+09:00","era":"A","subject":"포인트 충전상품 관리 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7932af0e5060f869aa39c96f3ff006dd70c7af8","date":"2025-11-18T13:59:44+09:00","era":"A","subject":"포인트 지급관리 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9348af8ad5c0e3d3b739da594b23cfa5d7006398","date":"2025-11-18T13:25:58+09:00","era":"A","subject":"환불 내역관리 및 포인트 관리 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"347f3d59cb599216f740a89ec2af83d532daf0dc","date":"2025-11-17T17:38:01+09:00","era":"A","subject":"스마트로 결제 모듈 추가, 포인트 충전","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"16deafbfbce48db7462faaf928335ac28cfbc745","date":"2025-11-17T15:49:41+09:00","era":"A","subject":"마이페이지 포인트 관리 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/point/point-user.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e2c7575a73e9a4c17d772ec8c648f7bf974509c","date":"2025-11-17T14:44:21+09:00","era":"A","subject":"포인트 관리 1차 개발","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/point/point-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/point/point.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/point/point.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/point/point.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/point/point.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/referral/referral.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5bd776cc03184d2252b718b4eb1935f0d560b8b","date":"2025-11-14T17:16:47+09:00","era":"A","subject":"병명예측 pdf 다운로드 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"caa94ec54ed4796a0489a9f027ab67f1818cea7d","date":"2025-11-14T16:20:29+09:00","era":"A","subject":"검사기준, 투약기준 api 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"54d3681f8173f7c9422a5ffc35c0c994b7c12d4c","date":"2025-11-14T13:55:49+09:00","era":"A","subject":"JWT 화이트리스트 ip 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"406bd68e7e32f02022af8ab1047dc8c55a2bee28","date":"2025-11-14T13:45:40+09:00","era":"A","subject":"JWT 테스트용 배포","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19efe03a6701cfb892b22f8268210ea3b354f53e","date":"2025-11-14T13:27:39+09:00","era":"A","subject":"병명예측 구독권에 따른 사용여부 추가","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"98e937fff9517ef4cb00ab2ef74db7a564917bdc","date":"2025-11-14T09:36:26+09:00","era":"A","subject":"투약기준, 검사기준 비교 문자열 공백제거 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56e3692198a1405d3f69a5d74bc5859eea615697","date":"2025-11-13T17:23:48+09:00","era":"A","subject":"검사기준관리 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40d38b501590be1469717c7579e4e6bb4e63d27d","date":"2025-11-13T16:45:14+09:00","era":"A","subject":"투약기준 테이블 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"087676bb4607275ff98e09b655d3b7119043ec24","date":"2025-11-13T15:55:59+09:00","era":"A","subject":"투약기준 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"486a9b620cdd3a21338017a607e265f7a8d817b3","date":"2025-11-12T17:47:31+09:00","era":"A","subject":"병명기준보험참고 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a0484517e693cb2c090d1d075e58d77f3a002e9","date":"2025-11-12T17:32:01+09:00","era":"A","subject":"병명기준보험참고 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7e40bf6e903f23356632a58835ec6f945019f119","date":"2025-11-12T16:24:06+09:00","era":"A","subject":"추천보험 세세분류, 세세세분류 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d60d0d21753ac9689a824de1d144ceb639861c8f","date":"2025-11-12T15:03:08+09:00","era":"A","subject":"추천보험관리 세세분류, 세세세분류 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"25cb8220bdf86bb92f4c373b7c9503b21e4dac01","date":"2025-11-11T17:27:42+09:00","era":"A","subject":"병명기준 추천보험 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d372d72212ccd1d7659b776070693243d416fbdf","date":"2025-11-11T14:38:02+09:00","era":"A","subject":"병명예측 관리","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/disease/disease-public.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac43536156fd456abc47e613752f5f6be2da6add","date":"2025-11-10T15:16:28+09:00","era":"A","subject":"투약기준관리 신규등록 ui/ux 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d820538305d4e2cc9d90343b9bc992e103afaaa","date":"2025-11-10T14:20:55+09:00","era":"A","subject":"병명예측관리 액셀기능 구현","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad7160fdb35afe8f190097c9283d054b1ede7c3e","date":"2025-11-10T09:57:13+09:00","era":"A","subject":"투약기준관리 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/medication-standard/medication-standard.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4fc29b759e6da88ac2195a200451f0e07b737e9e","date":"2025-11-07T13:41:25+09:00","era":"A","subject":"추천보험, 검사기준 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"010fda40c8aef2e6922ac55a2214cc70ccf50923","date":"2025-11-07T09:35:37+09:00","era":"A","subject":"검사기준관리 신규 등록 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7472edf5079932a8640351815cd7eb14c86985ae","date":"2025-11-05T16:47:20+09:00","era":"A","subject":"병명예측관리 등록,수정,삭제 수정 / 검사기준관리 추가","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/clinical-result/clinical-result.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba819040e44bc16b9a50a8941a51f48be47c6102","date":"2025-11-05T11:00:33+09:00","era":"A","subject":"병명예측 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c37557ee9e27900c8c9e5e266ddcef8f3809b4ba","date":"2025-11-04T16:32:14+09:00","era":"A","subject":"병명예측 누락","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"407c1914077772adcc5559cc7ec90a3d6877f56c","date":"2025-11-04T16:26:37+09:00","era":"A","subject":"병명예측 누락","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c84e61cbadbdb65dc568ad856382ed33b68182e","date":"2025-11-04T16:11:39+09:00","era":"A","subject":"병명예측 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/disease/disease.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/disease/disease.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/disease/disease.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/disease/disease.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/disease/disease.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/disease/disease.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4bd1e0d01ec638c2740d7a90be04fd5769849c1a","date":"2025-10-30T15:59:48+09:00","era":"A","subject":"refactor: 디테일 내용 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5eca11b1683f1748563075513cc11419c51a4fc4","date":"2025-10-30T15:16:22+09:00","era":"A","subject":"푸시 에디터 테스트","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/push/push.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e8276ec20322035becca6b376fc280625cc1d479","date":"2025-10-30T14:03:13+09:00","era":"A","subject":"refactor: 관리자 푸시 알람기능 포함, 특정회원 기능 제거","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ec786943ccc0e2f72d4f04fb431911701e5a298","date":"2025-10-30T09:45:49+09:00","era":"A","subject":"refactor: 예약발송 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/push/push.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push.scheduler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"482a947f8a88e9fdd51ae1ca141bc3683d89a85d","date":"2025-10-29T09:49:48+09:00","era":"A","subject":"refactor: 푸시관리 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/push/push.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/crypto/src/crypto.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"481942029e6e8b4ce798ea8294e2a12343bb9843","date":"2025-10-28T09:24:46+09:00","era":"A","subject":"특정 일반,기업 회원 푸시 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac5666bed0414e380d769a7950b1a0736c431e2b","date":"2025-10-27T16:17:14+09:00","era":"A","subject":"Merge 관리자 푸시","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44e76347a4745c623a27b4b8d0030f01608d6de6","date":"2025-10-27T16:01:22+09:00","era":"A","subject":"refactor: 관리자 푸시 API 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/push/push.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9129c6d23dfe59063d544d03f4384cd425799a29","date":"2025-10-24T16:52:33+09:00","era":"A","subject":"fix: 누락","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2bd027b8113ff2a6e2df49297fb6dea3be641d75","date":"2025-10-24T16:47:18+09:00","era":"A","subject":"refactor: 추천인 공제보험 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"880752b67d42c041d2b74d9c74ddc0cc94ea8962","date":"2025-10-24T16:10:34+09:00","era":"A","subject":"chore: 추천인, 공제보험 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8029f911ca799e1cbee22d927881fe93a63aba2f","date":"2025-09-24T16:19:18+09:00","era":"A","subject":"chore: codef 테스트 데이터를 위한 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a055efbf59425aad1f7f660c756b86684ccedb6","date":"2025-09-24T15:35:09+09:00","era":"A","subject":"chore: codef 테스트 데이터를 위한 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7326ec3b45635eb250baa95b8b1355088641fc5e","date":"2025-09-16T14:49:52+09:00","era":"A","subject":"chore: 분석정보 생성시 특수문자 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13c6f1e1cdbc5a85daef1426ff42571cbf2446c9","date":"2025-09-16T14:49:52+09:00","era":"A","subject":"chore: 분석정보 생성시 특수문자 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f08ad65624705c8ec6b633797649b3d0b056731","date":"2025-09-16T14:49:52+09:00","era":"A","subject":"chore: 분석정보 생성시 특수문자 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06ed779e0c9e217dea337ca762a2af22bd8dad74","date":"2025-09-12T16:24:10+09:00","era":"A","subject":"chore: codef 테스트 데이터를 위한 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5aecf6bea7e4e0ad46dfd226350e6ab0ed145db5","date":"2025-09-09T13:21:22+09:00","era":"A","subject":"chore: 청구서 s3 업로드시 cache control 설정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"943197d1e62b6b2f9214aa6fbbecbf74dad6c38a","date":"2025-09-09T11:07:57+09:00","era":"A","subject":"Revert \"chore: 유저 테스트를 위한 codef 임시 저장 테이블 생성 및 작업\"","body":"This reverts commit 8fbb9932c6a991226121885ced8ef4a87199c8fb.","body_present":true,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8fbb9932c6a991226121885ced8ef4a87199c8fb","date":"2025-09-02T14:38:20+09:00","era":"A","subject":"chore: 유저 테스트를 위한 codef 임시 저장 테이블 생성 및 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8ea52ecd55e0829d0d92e488323187237c7a2c94","date":"2025-09-01T17:40:15+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ecc2516cdae13afb8a137b3d983ea1bf053df59a","date":"2025-09-01T17:33:45+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be4c64e0f648712581012dd47ab74c7ce7f26e74","date":"2025-09-01T13:25:34+09:00","era":"A","subject":"chore: 코드에프 에러 필터 객체 랩핑 제거 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/fliters/codef-exception.filter.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0f7a7606d30288eeff10e2f9b270c9b95019d8b","date":"2025-09-01T10:01:40+09:00","era":"A","subject":"진료정보 분석 codef 전달 요청식별값 파라미터 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e5480d3460aed864368b5e7d3935f415dec98025","date":"2025-08-28T15:32:31+09:00","era":"A","subject":"chore: jwt IP 관련 부분 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0cad5454cf8d11fa32f8975beec4a9cba5fa2f5b","date":"2025-08-28T14:51:40+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2824cf79bf814ca2569518ee17523a94cc247b3e","date":"2025-08-26T13:19:18+09:00","era":"A","subject":"merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"72f85f5dee87d61f1a6303e07c5ac65af7ded263","date":"2025-08-22T14:21:32+09:00","era":"A","subject":"chore: 결제취소 일반회원 분기 처리 로직 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5af95e81101f7ad172072c98e34660330da81943","date":"2025-08-22T14:21:32+09:00","era":"A","subject":"chore: 결제취소 일반회원 분기 처리 로직 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f60d138dee213db6bdb59b03d1ec9e8513c21b4b","date":"2025-08-22T14:21:32+09:00","era":"A","subject":"chore: 결제취소 일반회원 분기 처리 로직 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e7bed9eab67a9a12dfd9f4f829f5d12cfee5443b","date":"2025-08-21T14:47:48+09:00","era":"A","subject":"chore: 유저 검증 IP 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92934a00f9734a8f852bf3b27d7e9c0bcda5e198","date":"2025-08-20T17:07:00+09:00","era":"A","subject":"chore: main.ts 복구","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a363e66f42310d352b570a7378c7f7271f4fe608","date":"2025-08-20T15:32:10+09:00","era":"A","subject":"chore: 프론트 local을 위한 main에 cors 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b26463963f38f8db10b3d410bb913a40839d67b6","date":"2025-08-20T10:33:53+09:00","era":"A","subject":"chore: 알림톡 코드로 유저 정보 조회 API 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"110cc3a6e6781bec11d21abbe77f94a4cc969e0e","date":"2025-08-20T09:48:03+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50cbb66183b134719b3503209dccd9f976e92744","date":"2025-08-20T09:34:55+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8bf675d8d61dfa73e5c5e52fc7230b0774bf7826","date":"2025-08-19T17:52:19+09:00","era":"A","subject":"chore : 관리자 기업목록 조회 API limit 파라미터 추가 및 처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b0382dd0be0ba8e0027597efbd83e58a5dbba315","date":"2025-08-13T12:00:10+09:00","era":"A","subject":"chore: 관리자 고객 조회시 개수 지정 추가","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d5e5bd6726ba97c740c9dacd261cf30b85652b9a","date":"2025-08-07T16:19:38+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ccd397c5f7d1c1e215169e6a55db9e79613ff2a","date":"2025-08-07T16:17:22+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df9539121080db33dfe9e661963a077f865ff111","date":"2025-08-07T15:27:54+09:00","era":"A","subject":"chore: 분석상태 업데이트 API 수정작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee377c10172044890a70ae6725756c017ef56b69","date":"2025-08-04T09:55:58+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fb045d2e6a6d70e027c9d9ed1fed3ac46566703","date":"2025-08-01T16:31:08+09:00","era":"A","subject":"chore: 유저 jwt 불필요 IP 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6172e80fdcf49f297a42557bd7e3b45c1d65288","date":"2025-08-01T16:22:29+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e1c6a84631e4a53213ca9a91b272a602c20972c","date":"2025-08-01T16:19:50+09:00","era":"A","subject":"chore: 알림톡 검색조건 공백으로 인해 swagger null 노출되던거 조치","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c807129c6e70e106e699def2e85980467e66e266","date":"2025-08-01T16:11:29+09:00","era":"A","subject":"chore: 알림톡 검색조건 알림톡코드 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df129a12835a30660ee409fe78325716246c9c41","date":"2025-08-01T14:30:11+09:00","era":"A","subject":"chore: 프론트에서 분석상태값 변경 API 호출시 FC 알림 문구 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8d036df536a338a9ece6b6bbca298a85f82e434","date":"2025-07-31T16:36:17+09:00","era":"A","subject":"chore: 에러코드에 따른 FC 알림 문구 길이를 위해 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b16f3aa7bd05a62fbf472894c1d6381b2363e497","date":"2025-07-31T15:43:56+09:00","era":"A","subject":"chore: 분석 실패시 FC알림 인증타입에 따른 처리 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f55182b5206484570f1432c3da062d14d405823","date":"2025-07-31T14:56:29+09:00","era":"A","subject":"chore: codef API 에러 코드 기준으로 FC알림에 실패사유 포함되도록 조치","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d324f4c10f35bf9a34dc741dc83663f2f196175e","date":"2025-07-24T16:47:40+09:00","era":"A","subject":"chore: 영업대리점 삭제시 해당 대리점을 통해 가입한 기업이 있을시 검증 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee9ebe44e1cb529b96f1df9a43b3eca3d4267eeb","date":"2025-07-30T09:26:03+09:00","era":"A","subject":"chore: 분석로그 검색조건 암호화된 검색데이터 검색시 처리 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"117e6ca17e9fb186afa436f95079f4384e98fc30","date":"2025-07-30T09:26:03+09:00","era":"A","subject":"chore: 분석로그 검색조건 암호화된 검색데이터 검색시 처리 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f235318d4a0037d7b3b5749de9d83291c9d6921","date":"2025-07-30T09:26:03+09:00","era":"A","subject":"chore: 분석로그 검색조건 암호화된 검색데이터 검색시 처리 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3324513a798ff4b2db89956bcceb7678ae71d0ac","date":"2025-07-29T10:02:06+09:00","era":"A","subject":"chore: 프론트 로컬 로그인을 위한 임시 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df3cd489860b5deb94be668b258ec11e5615bc11","date":"2025-07-24T16:47:40+09:00","era":"A","subject":"chore: 영업대리점 삭제시 해당 대리점을 통해 가입한 기업이 있을시 검증 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5291633a05903153a43745f944ba27ab5fa8abcc","date":"2025-07-24T09:26:20+09:00","era":"A","subject":"Merge branch 'stg' into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"512599efca9c12f2953bdccd1346ac3e5bbd0ea5","date":"2025-07-23T12:28:12+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"721dbe492bc453878035036ef2d160a3d9a51350","date":"2025-07-23T11:21:31+09:00","era":"A","subject":"chore: 테스트를 위해 사용된 임시테이블 구조 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89fb71181f498bfce023ddd32f6ed6b7dcc4ba09","date":"2025-07-23T10:40:07+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc638f50e4e7927a0102d4798aa79ffa1db9708b","date":"2025-07-23T10:32:29+09:00","era":"A","subject":"chore: 유튜브 쇼츠도 링크에서 id값 추출 가능하게 정규식 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/youtube/src/youtube.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"056cf9f97dd1650175b8fa422461b8e8ca921623","date":"2025-07-22T15:33:46+09:00","era":"A","subject":"merge conflict treat.repository","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d265e1634036fdfac73730d16d3fecbeaa9d7f71","date":"2025-07-22T15:33:46+09:00","era":"A","subject":"merge conflict treat.repository","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"687230e0246b7eef7596f19087df5d6f963c435b","date":"2025-07-22T15:33:46+09:00","era":"A","subject":"chore: 진료정보 원본 데이터 저장시 쉼표 replace 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bcc8a502d0e893b6c7f85d90bbef29fa0b65a86c","date":"2025-07-22T11:44:50+09:00","era":"A","subject":"chore: 임시 진료정보 원본데이터(상세) 저장 테이블 연결 및 로직 작업(테스트용)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dfda1509ce40d292b3a6c8382be503265dc5b8eb","date":"2025-07-21T12:37:18+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fed2fab2bce7082b54e5e5dda794ddcf30178df2","date":"2025-07-21T12:36:45+09:00","era":"A","subject":"chore: 분석로그 적재 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06e380ee9f2657745978b1ce729c50ecf4c2df4b","date":"2025-07-18T16:35:55+09:00","era":"A","subject":"chore: FCM 토큰 발송 에러 핸들링 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27be3024a3ecedf6e2f9af75d982b7530b598b9b","date":"2025-07-18T15:22:23+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75a05d0c8ec2ef3f99c3125a6f304ff8587c4e3c","date":"2025-07-18T15:22:18+09:00","era":"A","subject":"chore: FCM 토큰 에러 예외처리 전역필터를 타도록 조치 및 유효하지 않은 토큰 삭제 조치","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae3bb31633585db6fc9e2711cca0aafd0cb57267","date":"2025-07-18T12:30:57+09:00","era":"A","subject":"chore: 불필요 console 제거 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9f5d531d93b955dfac8abf239ad374ebe1d84213","date":"2025-07-18T10:49:45+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"462e6d0272f0858c291848206fdbb45499d96490","date":"2025-07-18T10:49:07+09:00","era":"A","subject":"chore: 재생영상을 위한 쿼리 조회 오류 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"28ec1760b289787c195576a9843e9b50692523b8","date":"2025-07-18T10:31:28+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4eee9a15ae828d5c77db1ca61ac131080bebe432","date":"2025-07-18T10:29:12+09:00","era":"A","subject":"chore: 강의 영상 재생버튼에 대한 처리 로직 변경","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"855a0d81f0a335ddbfee6ad3d2e763b95a634c68","date":"2025-07-17T12:34:59+09:00","era":"A","subject":"chore: FCM 에러 핸들링 다시 임시 조치 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39c99b176b3995ac7debbc29941aaa40fb22b52d","date":"2025-07-17T12:14:02+09:00","era":"A","subject":"chore: FCM 토큰 예외처리 재적용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b9754d4e3d9472b3b3949810014764ac2d4c18b","date":"2025-07-17T10:56:12+09:00","era":"A","subject":"chore: 영업대리점 발송 스케쥴러 주석 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/sales-statistics.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55221bebafe9f7f88161c93726bb75d30ddae808","date":"2025-07-17T10:06:41+09:00","era":"A","subject":"merge conflict dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a1742460a19168aeeb77ec14db992f8a71f65f2","date":"2025-07-16T16:47:05+09:00","era":"A","subject":"chore: 관리자 회원고객 관리 회원아이디 검색조건 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e53b5d7cc8d81c613cb8bc0e33cd4b45ee84868","date":"2025-07-16T16:39:00+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4627725210126bb30f831e73b9751bfcf802e65","date":"2025-07-16T16:38:17+09:00","era":"A","subject":"git ignore rollback","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1bc42d40bebb6644da86f393e2e41c08e78eee53","date":"2025-07-16T16:37:22+09:00","era":"A","subject":"Merge branch 'feat/advertisement' of https://github.com/rsteam-organization/insuniverse-server into feat/advertisement","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f826a107ffab2cf11e3ee6175adafc5e38a319c7","date":"2025-07-16T16:36:59+09:00","era":"A","subject":"chore: 관리자 광고 관리 검색조건 랜덤여부, 외부링크여부 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e707702f33369065ea020770f48ba139810034dc","date":"2025-07-16T15:07:30+09:00","era":"A","subject":"chore: 광고 불필요 console 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a3455344dbfb76db9e43b5bee4760f7388d6319","date":"2025-07-16T12:01:20+09:00","era":"A","subject":"chore: 매출통계 결제금액 조건 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d3138a6232b9a7daf49aee628ead22bfbc31293b","date":"2025-07-16T11:07:59+09:00","era":"A","subject":"chore: console 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"270c5593bced804a34bcc56945d11ee3e77e897a","date":"2025-07-16T10:44:16+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df9d706f02ea059e120a2d532e635adf16717584","date":"2025-07-16T10:43:47+09:00","era":"A","subject":"chore: 강의 상세 호출시 sql 에러 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0885db014193e8cf4b713fead80f941188a4738","date":"2025-07-16T10:12:15+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4fdcc43f37218d5c3885f7252d77ea990f80ffb","date":"2025-07-16T10:11:56+09:00","era":"A","subject":"chore: 강의 상세 및 목록 수강평 비노출 카운트 되지 않도록 조치","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2112e807b18daa2be4f8f6cb1022f8eee7e43081","date":"2025-07-16T09:18:51+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c1480e0422939c378e03d420673d29fbec8f0743","date":"2025-07-16T09:18:35+09:00","era":"A","subject":"chore: 수강평 관리자 상세 API 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b9f1b6b9c90470a799e385f926f23b9984f002aa","date":"2025-07-15T17:55:53+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad819d1d665f2292e122cc333bfb46fe3b72ec35","date":"2025-07-15T17:55:37+09:00","era":"A","subject":"chore: 강의 카테고리 삭제시 참조된 카테고리일 경우 에러코드 respone","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/category/courses-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"688c5ceaff18c2ae57807acdddd6bb830141ee15","date":"2025-07-15T17:23:51+09:00","era":"A","subject":"chore: 내수강평 목록 response에 삭제여부 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"146205b0c4ac195ed97fc474064cb2a7dea60b93","date":"2025-07-15T16:25:37+09:00","era":"A","subject":"chore: gitignore rollback","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d5cae37ad20109fd49a8cf29c1c7abdc04fc5e6c","date":"2025-07-15T16:24:20+09:00","era":"A","subject":"Merge branch 'prod' of https://github.com/rsteam-organization/insuniverse-server into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"748b318be393168305f92ece5b6e6becd75417b8","date":"2025-07-15T16:09:45+09:00","era":"A","subject":"chore: 손해사정서비스 유저 검증 제거 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2837c21d013d34b52ecf0b97091436c1e54731bc","date":"2025-07-15T16:21:01+09:00","era":"A","subject":"chore: gitignore rollback","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a24dcbf855445f20d3fb274a0c25d4d77da71826","date":"2025-07-15T16:20:06+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9897f26b73ede5b8f940e79d821ae76659c9ee63","date":"2025-07-15T16:09:45+09:00","era":"A","subject":"chore: 손해사정서비스 유저 검증 제거 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"005a887482ddfcdfbfc1afbe6b35932e4a6d394d","date":"2025-07-15T16:09:45+09:00","era":"A","subject":"chore: 손해사정서비스 유저 검증 제거 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f6789eeed0d4c15f37accbdd82afa2cf580e2ed","date":"2025-07-15T12:05:41+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4f4eff28c6d5e6fe603cbf6d94a23651c92fe1cb","date":"2025-07-15T12:05:25+09:00","era":"A","subject":"chore: 내강의 정렬 조건 변경 및 강의 최종시청 영상 저장시 내강의 updateAt 갱신","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3110ff057887cb08f80b186e436e94209c5cc2a5","date":"2025-07-15T11:33:14+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76746c5b50a1a5c45d137a1628eb8a9fdac559dc","date":"2025-07-15T11:32:41+09:00","era":"A","subject":"chore: 강의 상세에 reviewCount 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"712f6fd402430829cee7cb905b17c0163f7de835","date":"2025-07-15T10:57:32+09:00","era":"A","subject":"chore: 수강평 마스킹 처리 조건 변경(앞에 3자리 외 마스킹)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/helpers/mask.helper.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"820dd72743022b60a5e535d5e532aee2f26eae5a","date":"2025-07-15T10:47:22+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea4cd5d2a5b6493e0293b0e2ec6d5ad0dc15571f","date":"2025-07-15T10:46:42+09:00","era":"A","subject":"chore: 강의 등록, 수정시 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f53f0cfd9bc96db84c42728323ab172a94671f9b","date":"2025-07-15T10:21:52+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"630a9b1ede66612f576491a6abead3fe30fd375b","date":"2025-07-15T10:21:10+09:00","era":"A","subject":"chore: 강의 삭제시 실제 데이터 삭제아닌 컬럼 처리 및 내강의, 책갈피에 삭제여부 response 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63f5cfd892208e382272c4953c10dd16490e6083","date":"2025-07-15T09:37:36+09:00","era":"A","subject":"chore: 강의 카테고리 필수값 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6446cef38f56605ed294527636110f77926f5b47","date":"2025-07-14T17:35:12+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"657056a1aaa80b74f1e05a074f2e4b9f8e281028","date":"2025-07-14T17:33:42+09:00","era":"A","subject":"chore: 카테고리 미노출시 해당 카테고리 사용 강의도 미노출되도록 조치","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"572bcf5d39c680f6520e85c811a33717549e463c","date":"2025-07-14T17:20:38+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6f696078e57ed393d17b3bba65a818292cd016b","date":"2025-07-14T17:20:28+09:00","era":"A","subject":"chore: 강의 상세 수강평 목록에 user id 마스킹 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/helpers/mask.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9be4b54608d640cf83f9dd6ae3fa3f6044b9dbab","date":"2025-07-14T17:08:01+09:00","era":"A","subject":"chore: 수강평 관리자 영업대리점 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea76791ec1c1867c93dd261e1e2ca29c30864ad4","date":"2025-07-14T17:00:02+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4215e80750072d4ac4ad197484577f698162591f","date":"2025-07-14T16:59:39+09:00","era":"A","subject":"chore: 내강의 강의 return 중복 제거 및 progress 계산 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"217fb8cab33b6feb33a0cbe2e8324c1c95f36f68","date":"2025-07-14T16:20:55+09:00","era":"A","subject":"merge conflict courses","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5862bf531f6cd075fc1a264acd92251f2fbd0605","date":"2025-07-14T16:19:49+09:00","era":"A","subject":"chore: 강의 등록시 youtube v3 api를 통해 영상 길이를 가져오도록 조치","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/youtube/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/youtube/src/youtube.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/youtube/src/youtube.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/youtube/tsconfig.lib.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b916b4b402a10c9a50034e240e7ba735d936e7d8","date":"2025-07-14T15:16:10+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d8cd53ad6f208522b8c3ab336218b7f7bd894f6","date":"2025-07-14T15:14:01+09:00","era":"A","subject":"chore: 강의 관리자 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"03d859b12210ecdea79a2c30dd42715bbaa6d5a6","date":"2025-07-14T12:08:19+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7deba51641baa0878f7a10d40c95542a8141ca70","date":"2025-07-14T12:07:41+09:00","era":"A","subject":"chore: 최종시청영상 저장 API 추가 및 강의 상세, 내강의 최종시청영상ID response, 책갈피 response 수정","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ead6d245171262bd174756dca88bfdbc80216cf","date":"2025-07-14T10:45:36+09:00","era":"A","subject":"chore: FCM 에러 원인 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4136e53ab822d267561ed644dcde2e8120dc942","date":"2025-07-14T10:21:32+09:00","era":"A","subject":"chore: FCM 커스텀 exception 추가 및 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fcm/fcm.exception.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27706e93959493dc1dc8c805c75991f67ca88835","date":"2025-07-14T09:50:16+09:00","era":"A","subject":"chore: FCM 토큰 발송시 예외처리 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d62839d5419835702772d5690e66746e1b27f6d4","date":"2025-07-14T09:41:16+09:00","era":"A","subject":"chore: 강의상세 책갈피 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9faf162bc636b45712828ac086b6e03fea04561","date":"2025-07-10T18:54:50+09:00","era":"A","subject":"jwt guard 검증 원복","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d8e990819a3846c6d02658a3863c4ed7b6db424b","date":"2025-07-10T18:54:12+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"810babe096a3011924406d12ba68ac14422bc905","date":"2025-07-10T18:53:53+09:00","era":"A","subject":"chore: memId token에서 가져오던 부분 개발환경에서 동작 문제로 프론트에서 전달 하도록 수정","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1569cd57e0d2569a17663146bcb39ba7f6f32f85","date":"2025-07-10T18:15:38+09:00","era":"A","subject":"chore: 유저 인증 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"28e2e447d8421d256abf2d6f75d9b134f7da36a0","date":"2025-07-10T18:02:51+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02578f8c239a5f8e3321ccfc7c1c57c7052dbf1c","date":"2025-07-10T18:01:54+09:00","era":"A","subject":"chore: 개발환경에서 오류 jwt 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b6e0d6eee142ce583b2c995fe4c724dd663aca6c","date":"2025-07-10T17:32:38+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f1c1a49458de88998145bd38547f18ef790faa7d","date":"2025-07-10T17:32:13+09:00","era":"A","subject":"chore: 내 수강평, 내 강의 유저 API response 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9171bae7a3f55b35fa4eeacb774675d1d007e8f1","date":"2025-07-10T16:58:31+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"87a9c420801740ce5ea37e6f09131a065d934811","date":"2025-07-10T16:57:24+09:00","era":"A","subject":"chore: 강의 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02171603961c902e4b051e3211aa16d2718b64a6","date":"2025-07-10T14:15:53+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"439a4ff717fc1c3d5aefd6b8bb1ceeecb3af97d3","date":"2025-07-10T12:35:15+09:00","era":"A","subject":"chore: 강의 관리자 수강평 노출여부 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db0d04f43dc991fcbcd09486b0e758ce132a2d47","date":"2025-07-10T10:18:08+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba57928a532537ed6b48a4af175d952e10157eae","date":"2025-07-10T10:17:52+09:00","era":"A","subject":"chore: 강의 영상 진행율 swagger 명칭 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbc67e4735f34ae52ef59366c7a51d6b5e4e8ccb","date":"2025-07-10T10:00:11+09:00","era":"A","subject":"chore: 강의 책갈피 목록 response 값 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"49b2183860c3dd8263a2ff5f7527c0b513a9f223","date":"2025-07-10T09:42:55+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de108ffb5c29279200f397355abe33a92a6bef1e","date":"2025-07-10T09:42:02+09:00","era":"A","subject":"chore: 강의 목록 검색조건 및 강의 수강 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"531ec0a58b4d5c64728a87e3f45f171cf7a42a43","date":"2025-07-09T17:59:32+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c77be69ea3daf08f342949b707c9bb267e17c1e0","date":"2025-07-09T17:59:19+09:00","era":"A","subject":"chore: 강의 목록 검색조건 수정 및 강의 수강평 등록 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51178024b2ba81db9d65a975c49fa8df78852ecf","date":"2025-07-09T17:37:42+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3539cdc2eaf8df981bd1409f1ac8148971f95ae6","date":"2025-07-09T17:37:17+09:00","era":"A","subject":"chore: 강의 목록 return 값 수정 및 memId 관련 파라미터 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"58ce887aa1d755c5fcb316dd1f01f1c3c3759bcb","date":"2025-07-09T17:16:55+09:00","era":"A","subject":"merge conflict courses","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"075fda30c93f2c9f13c72fc65d0c2177556bc7e2","date":"2025-07-09T17:08:45+09:00","era":"A","subject":"chore: 강의 책갈피 app module 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3350407e769bda6f083ae84f7a6fb269a41b095","date":"2025-07-09T17:08:10+09:00","era":"A","subject":"강의 책갈피 작업 및 수강평, 강의 목록 수정","body":"","body_present":false,"is_merge":false,"file_count":24,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/bookmark/courses-bookmark.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21349d2c18139d5cdd8ac558921ef82f36293b3f","date":"2025-07-09T12:33:25+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b734d8cbc6ab54e9cfb770e73c66dcc54eaf7b2a","date":"2025-07-09T12:33:12+09:00","era":"A","subject":"chore: 강의 카테고리 전체 swagger 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/category/courses-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/category/courses-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95e1efa79ed099cde4db430286f7bc31b2ceb6cb","date":"2025-07-09T12:28:38+09:00","era":"A","subject":"chore: fcm 토큰 발송 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"563814512eb1668950f3a6c765fb850e4320f1f2","date":"2025-07-09T12:14:01+09:00","era":"A","subject":"feat: 내 수강평 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9766ca2844871284fd7f0fabcefcc195f52e4635","date":"2025-07-09T09:19:46+09:00","era":"A","subject":"merge conflict courses","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef80ccb3cd83adb958d670a7b262bb5f7d3cf830","date":"2025-07-08T17:52:34+09:00","era":"A","subject":"강의 유저 조회 기능 및 유저 강의 수강, 영상 진행정보 저장 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":18,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/enrollments/courses-enrollments.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/progress/courses-progress.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44698659f8433e9d061d96be1b48b5641e4df554","date":"2025-07-08T11:19:40+09:00","era":"A","subject":"chore: 팝업, 배너 시작일 종료일 검색조건 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9752115656e9004e926f49aa1a3819e790e5c316","date":"2025-07-08T10:41:27+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a35f5b56fef69f5bc3ec640a59d74b3935607a63","date":"2025-07-08T10:40:21+09:00","era":"A","subject":"chore: 기업계약관리 영업대리점 데이터 처리 및 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2610eabece27177c4039ae944ed8c7a8ca1b5bd","date":"2025-07-08T10:08:08+09:00","era":"A","subject":"feat: 강의 진행도 처리 작업 진행중","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/category/courses-category.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/progress/courses-progress.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"18b30c63b4b67191265bbf287a105394ac5af932","date":"2025-07-07T17:53:47+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f25b8374687c9ec29f672b1a8d5b06a50ffed94","date":"2025-07-07T17:37:54+09:00","era":"A","subject":"chore: 분석로그관리 엑셀다운로드 항목 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c23aa3a02148bbf689c24eab320f88e1a8c9256d","date":"2025-07-07T17:19:42+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8801e04146809547ebcc38b0a17c0a61661a47c2","date":"2025-07-07T17:18:46+09:00","era":"A","subject":"chore: 엑셀다운로드 영업대리점 관련 항목 정리 작업","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"163d7a4fdfc28fcc778c63a8d0868f0a97fccf7b","date":"2025-07-07T16:20:40+09:00","era":"A","subject":"chore: 영업대리점 로그인시 상세 마스킹 처리 및 기업FC 가입시 sagId 불필요하여 제거","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc82b2abcbe5699982093ab5fef4853bd14663b6","date":"2025-07-07T15:35:19+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"359be4cd4059b918ab32fbd9030349c708d68f46","date":"2025-07-07T15:34:17+09:00","era":"A","subject":"chore: 영업대리점 로그인시 response 개인정보 마스킹 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/mask.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb6face1a48d589c1c5385be396dce32a2609ffd","date":"2025-07-07T14:31:15+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"161db9bf2be657adc745c51ca845b1e5b5d60799","date":"2025-07-07T14:29:24+09:00","era":"A","subject":"chore: 영업대리점 신규등록, 검색조건 수정작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0658f8d0a53327641a23c12ab96752201494d0ff","date":"2025-07-07T12:02:39+09:00","era":"A","subject":"dev gitignore rollback","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6de234fb3e1862c40ca247ff1af44fab922b0a1","date":"2025-07-07T11:59:42+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4b686af5c8d446670dfa426e4bf3d72412d1e74","date":"2025-07-07T11:57:54+09:00","era":"A","subject":"chore: 영업대리점 기업의 경우 채널이 아닌 영업대리점과 매핑되도록 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":20,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bde033ce52bf1e83950f69f2592d2f3121686a21","date":"2025-06-24T10:09:56+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into stg","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd156cb3d232e82e9411c3a38e4f62f084b5b344","date":"2025-06-24T10:27:35+09:00","era":"A","subject":"자동차보험 진료정보 axios 타임아웃 시간 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e9b8425ecb665e98d72ab280322af48c3ac656b","date":"2025-07-03T14:47:49+09:00","era":"A","subject":"chore: 영업대리점 로그인 계정일 경우 엑셀다운로드 프론트와 동일한 영역 마스킹 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bbbd3c61f5ed14a0f5b2ccd00e6d4c5c40c14b82","date":"2025-06-17T16:05:28+09:00","era":"A","subject":"chore: 분석로그 관리 기업명 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d8580a0a655a97343e1a290461ec03aea8184268","date":"2025-07-03T11:17:17+09:00","era":"A","subject":"feat: 유저 강의 목록 및 수강평 목록 조회 기능 작업 중","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80c8cee163580695fb9b2dfee3c8e93344dcfe58","date":"2025-07-02T16:39:32+09:00","era":"A","subject":"chore: 유저광고 목록 파라미터 수정 및 관리자 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7727691ad5b1c7723668a02292e9510a14760b7","date":"2025-07-05T14:47:10Z","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"baa0fdbde018a721cac1a08c9270a2b4743d9973","date":"2025-07-03T14:48:31+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".gitignore","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07f8c4a9aad954e3bdea650eeb94f94e06618317","date":"2025-07-03T14:48:31+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"397289df99da371de98a2f2267adedadc0946a40","date":"2025-07-03T14:47:49+09:00","era":"A","subject":"chore: 영업대리점 로그인 계정일 경우 엑셀다운로드 프론트와 동일한 영역 마스킹 처리","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6243f4902033ee2581a410749933d952134ae25","date":"2025-07-03T11:17:17+09:00","era":"A","subject":"feat: 유저 강의 목록 및 수강평 목록 조회 기능 작업 중","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"A","path":"apps/api/src/modules/courses/courses/courses.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7f149ff40f0f5036ef5e1cb08db84397fd4dd78","date":"2025-07-02T16:40:50+09:00","era":"A","subject":"merge conflict advertisement","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32c1ae6337c5368384166e1208dc9e5fd03d26c5","date":"2025-07-02T16:39:32+09:00","era":"A","subject":"chore: 유저광고 목록 파라미터 수정 및 관리자 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4c8a440dc73596404756178e89c54d7fa7ef775","date":"2025-07-02T15:43:06+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3aec1e86af206adbbfe7110c0749f94792e2f7c9","date":"2025-07-02T15:42:28+09:00","era":"A","subject":"chore: 관리자 광고 검색조건 변경 및 유저 노출수 증가 API 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3a80536f10547f05af52a61ed559e23fcb062c10","date":"2025-07-02T14:21:39+09:00","era":"A","subject":"chore: 분석 인증 요청 및 요청시 에러 핸들링 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/fliters/codef-exception.filter.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a71cc0172398d0ef671527e7b9d1d30b372d41a","date":"2025-07-01T11:39:46+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4bb71ceaa93ba164816196edf576c3299e4e7c3b","date":"2025-07-01T11:39:37+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f1d7b5f6a641b305822f1f6085c6032e6042f82","date":"2025-07-01T11:39:11+09:00","era":"A","subject":"chore: 광고 관리 목록에 동영상 및 이미지 링크 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"955dca01c0f4ea97883f3fb9477ff566c72d95bb","date":"2025-07-01T11:34:39+09:00","era":"A","subject":"chore: 영업대리점 노드메일러 발송할 데이터 조회 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19832b0ea533a33a88cb1ba5ae553d3577f110e9","date":"2025-07-01T11:07:32+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63593fe8d83e38461eb69bf6ffb9bae7ba3336a0","date":"2025-07-01T11:06:25+09:00","era":"A","subject":"chore: 관리자 고객 sacCode 영업대리점 채널 검색조건 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"96e3d524e0f95263f8ab764835d3b0b34c7e9d4a","date":"2025-06-30T17:53:50+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67d54dafd295b6519395f9077bf9e5b2a06419db","date":"2025-06-30T17:51:46+09:00","era":"A","subject":"chore: 기업목록도 영업대리점 로그인시 필터링되게 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47cbd8d7725ebbf18f6a87ccd1ef2c3334d476c6","date":"2025-06-30T17:40:15+09:00","era":"A","subject":"chore: 영업대리점 로그인시 메인 대시보드 조회 영업대리점 데이터만 볼수 있게 처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97b6b49eec97fea7a96438e9a9ec6c5dffb2a9e9","date":"2025-06-30T14:54:21+09:00","era":"A","subject":"chore: nodemailer 기반 영업대리점 통계 발송 구조 변경에 따른 수정 진행 중","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c3c1b48d1875c429b66443346803a289c269c08","date":"2025-06-30T12:07:54+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5c7c0b7730b95cbddfbc4da6877b0fc1b108d2e","date":"2025-06-30T12:07:29+09:00","era":"A","subject":"chore: 영업대리점 채널 all 리스트 조회시 영업대리점 id 조건에 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d5861221304452b55fbb770fa02bec0e5038c2b","date":"2025-06-30T11:39:10+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f60908ec8de8b104d4d6a06534a8459f0beef1b","date":"2025-06-30T11:38:49+09:00","era":"A","subject":"chore: 영업대리점 채널 관련 관리자 API 목록/상세 값 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8786deda76e504f210e1d5ee9b6871ceb0c2e24","date":"2025-06-30T10:59:03+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c7729a03ff209438ce1c97f773d41657bc36e22","date":"2025-06-30T10:58:43+09:00","era":"A","subject":"chore: 강의 카테고리는 null 허용이기때문에 삭제시 참조키 처리방식 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aba646a4da2891256fc22e54390e568f2f3860dd","date":"2025-06-30T10:17:05+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7d939fcff6164e1e1e56c173202f8f52081992c","date":"2025-06-30T10:15:52+09:00","era":"A","subject":"chore: 영업대리점 계정으로 로그인시 API response 데이터 해당 영업대리점것만 가져오도록 조치","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6e580f097edbec84f553d6c10493f6528438568c","date":"2025-06-27T16:07:22+09:00","era":"A","subject":"merge conflict courses-reviews","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6ffc18396f2d990f3e036abf054925016b29e1e","date":"2025-06-27T16:05:14+09:00","era":"A","subject":"chore: 수강평 검색조건 및 목록 노출 항목 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26e335da2e7a4b4b155ba75171564f9906ad0115","date":"2025-06-27T15:08:38+09:00","era":"A","subject":"chore: 영업대리점 구조 변경에 따른 API 검색조건 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":24,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6a9eb4c92716f323a0edbd6b2960ad81a77ca78","date":"2025-06-27T11:41:54+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef970dfb9d427797eab559e293db706b3331e90d","date":"2025-06-27T11:41:32+09:00","era":"A","subject":"chore: 강의 관리 수정시 강의 카테고리 처리 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3cefd0cc74144dde99d80210513eb6e0128eb318","date":"2025-06-27T11:27:46+09:00","era":"A","subject":"chore: 강의 목록에서 강의 카테고리 값 return 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"43858adebd6dae6f41becda3facae57867c0ed7e","date":"2025-06-27T10:50:36+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74fa0e4d4105d509d9048bd2f56870f7df4ee7ac","date":"2025-06-27T10:48:56+09:00","era":"A","subject":"chore: 강의 관리자 카테고리 필수여부 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fae9372ebdb4f1f442d06edcf3f0fde43239fd7","date":"2025-06-26T17:50:00+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cadf9a9ea93032f76ab28f00c5661bece73a0f01","date":"2025-06-26T17:49:42+09:00","era":"A","subject":"chore: courese null 처리 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d501243b45233e9a97348fb21c227038a75b4b5d","date":"2025-06-26T17:40:35+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c27e974ae5aa21cfdaa2fede4cfe6954aa67e9f1","date":"2025-06-26T17:40:15+09:00","era":"A","subject":"chore: 강의 옵셔널 필요 파라미터 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92a9223f7b839d5bc4ac44b6af2caf967d593aa2","date":"2025-06-26T09:10:22+09:00","era":"A","subject":"Merge branch 'feat/sales-agency-channel' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2b16f358cb9d1134f92fea6428cbcd9556f93311","date":"2025-06-26T09:09:19+09:00","era":"A","subject":"chore: 영업대리점 수정 권한 수정 및 기업, 일반회원 가입시 영업대리점 채널 코드 참조하도록 변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4aa4ed1f038b7dd5b69c21a6a362e87595861901","date":"2025-06-25T16:28:09+09:00","era":"A","subject":"chore: 영업대리점 채널 삭제처리 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"235767d34bf2e1acb09766f1cbeafefc84e26af5","date":"2025-06-25T14:40:03+09:00","era":"A","subject":"merge conflict sales-agency-channel","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b402770654d4b075b6d65c2b82b7231b6f7a3dc3","date":"2025-06-25T14:37:39+09:00","era":"A","subject":"feat: 영업대리점 채널 관리 기능 작업 및 role 권한 수정","body":"","body_present":false,"is_merge":false,"file_count":22,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/roles.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/channel/sales-agency-channel.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6b4ace625f22fb15a61cb92b62282de97428c31","date":"2025-06-24T17:01:12+09:00","era":"A","subject":"dev merge conflict sales-agency-channel","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"780e6b642f3c7c97daa356a7b06aebe854da7fa3","date":"2025-06-24T16:53:30+09:00","era":"A","subject":"feat: 영업대리점 계정 로그인 기능 및 role base guard 적용","body":"","body_present":false,"is_merge":false,"file_count":44,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/roles.decorator.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin/roles.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/category/courses-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a716d84263f28d324835795cef640a54f93eea74","date":"2025-06-24T11:28:12+09:00","era":"A","subject":"chore: 영업대리점 아이디, 패스워드 추가 및 구조 변경으로 인한 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/sales-statistics.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1cc5751af71deaa226a50620d362078b30e49881","date":"2025-06-24T09:18:35+09:00","era":"A","subject":"자동차보험 진료정보 axios 타임아웃 시간 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d194ac3efb5e6778b4e671852cc598e65bedc8e3","date":"2025-06-24T10:09:56+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6197f49106b7eb5aa7d9911c4d055dc94ffadbe3","date":"2025-06-24T09:18:35+09:00","era":"A","subject":"자동차보험 진료정보 axios 타임아웃 시간 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a5e2b98efcfcd1a17a57c5850d09b698c33a8b5","date":"2025-06-24T09:18:35+09:00","era":"A","subject":"자동차보험 진료정보 axios 타임아웃 시간 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c13eb987c697f51dfaa96e51b32ce4015fc1968","date":"2025-06-24T09:17:05+09:00","era":"A","subject":"refactor(): 불필요한 console.log 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4362072495e6882f1833e206a126ad4e5b5ba2f8","date":"2025-06-20T17:34:09+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb4713900c8752da0cac230a9beaf7a64625e319","date":"2025-06-20T17:33:52+09:00","era":"A","subject":"feat: 강의 수강평 관리 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e3d7b3a72c60a7678b9e1c04764e779b0f112c30","date":"2025-06-20T17:12:35+09:00","era":"A","subject":"feat: 강의 상세 처리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e74d22f43758c4a4668b3699d8b07055ce065fa","date":"2025-06-20T16:00:32+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4d95efff18ed86b6b9cedd668ab9523e1cf94ed","date":"2025-06-20T15:59:54+09:00","era":"A","subject":"chore: 일반회원 검색조건에 기업 광고 들어가지 않도록 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9601b6aa626005c5776c0d5bc6b2125ec2b97423","date":"2025-06-20T15:53:43+09:00","era":"A","subject":"chore: 강의 상세보기 작업 진행 중","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"135694f6b8ab7ae00b272805e921f8e4faf247fb","date":"2025-06-20T10:38:10+09:00","era":"A","subject":"merge conflict advertisement","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"417706679e362b27ddace7d065f4083d88d36b9f","date":"2025-06-20T10:36:55+09:00","era":"A","subject":"chore: 특정기업 광고 및 일반 회원 광고 조회 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0f71d4a4fb03dc85245d38a2efd4a1e418cab7f","date":"2025-06-20T09:08:45+09:00","era":"A","subject":"feat: 관리자 강의 수강평 작업 진행 중","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/reviews/courses-reviews.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc01f63245c9a681af04d6b79a4dbec550c3e2de","date":"2025-06-19T16:15:47+09:00","era":"A","subject":"Merge branch 'feat/courses' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e3702116c566e1834a2f6c0da8212646383db20c","date":"2025-06-19T16:15:05+09:00","era":"A","subject":"feat: 강의 관리 수정, 삭제 기능 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95eb0e980d44a37f5b35a16a2dfa5137bee4b9bd","date":"2025-06-19T11:09:15+09:00","era":"A","subject":"기업 정기 구독 스케쥴러 목록 조회 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f37969b94b427d445356113547ac85882829f4e","date":"2025-06-19T11:09:15+09:00","era":"A","subject":"기업 정기 구독 스케쥴러 목록 조회 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d53c680ab214d0c61dd710d2306dff50ddaf536b","date":"2025-06-19T11:09:15+09:00","era":"A","subject":"기업 정기 구독 스케쥴러 목록 조회 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc0a597382602ae93750fe62246b670ae4763675","date":"2025-06-19T10:30:11+09:00","era":"A","subject":"chore: 강의 관리 수정 기능 작업 진행중","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/separator/src/separator.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a21d18ca1a6f8ec0aeec592f70cdd68239ba437","date":"2025-06-18T17:05:04+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a4f443a927b515c2892e063d01ad749377659f0","date":"2025-06-18T17:04:47+09:00","era":"A","subject":"chore: 유저 광고 목록에 id값 리턴 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"71b394ddb42e76a723d0197c0d4ccc16ee825051","date":"2025-06-18T17:02:43+09:00","era":"A","subject":"chore: 등록 기능 이미지 등록 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13f9bb36dc27d2268945a6eeb55a555f3c1df866","date":"2025-06-18T16:15:45+09:00","era":"A","subject":"dev merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4ad9daf1160766344cc6e2bf6ee1b969b4ac6cf","date":"2025-06-18T16:13:24+09:00","era":"A","subject":"chore: 유저 광고 카운트 증가 및 조회시 기업 광고 혹은 기업광고가 없을시 일반광고 노출되도록 조회조건 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"020a297ebbc82359a7bef36f93816b2e72ea8d1c","date":"2025-06-18T15:01:38+09:00","era":"A","subject":"fcm 토큰 발송 추가 예외처리 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e05e0d9a23798f7dd1a82fddcdc4167ff523664","date":"2025-06-18T11:51:19+09:00","era":"A","subject":"merge dev advertisement.service.ts","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35acfa5a0eb01d351c56e50a7c3fba8c8477f0b2","date":"2025-06-18T11:47:58+09:00","era":"A","subject":"chore: 유저 광고 목록 조회시 limit이 0으로 올시 개수 제한없이 return","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f857452e95908fe3f70d5edb468e20d6229723fe","date":"2025-06-18T11:23:50+09:00","era":"A","subject":"dev merge notification.yml, treat.event-handler.ts","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cf8c798d8dbe050fdc1d12ea98a6b3ddbdd6b025","date":"2025-05-30T17:59:27+09:00","era":"A","subject":"chore: 컨트롤러 네이밍 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"765552b598196546527742cbfb7dfcede8b07644","date":"2025-05-29T16:51:19+09:00","era":"A","subject":"진료정보 요청 및 분석 한 로직내부에서 진행 및 백그라운드 처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5464fb90dd3c5d1df121442bd980049ccbec0faf","date":"2025-06-18T09:36:33+09:00","era":"A","subject":"merge stg notification.yml","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f5cf10e662a1bb8aa70116c763295f1936118331","date":"2025-06-17T17:31:08+09:00","era":"A","subject":"chore: 유저 광고 open, close 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"090529da1d8ad20b5d2ba3af57af36ec3429ff23","date":"2025-06-17T16:10:14+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6eb0f14aa14462a698055ac1c01645938e1320a5","date":"2025-06-17T16:05:28+09:00","era":"A","subject":"chore: 분석로그 관리 기업명 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70c8b569628233eb658333be30e8b5784a07db5d","date":"2025-06-17T15:09:02+09:00","era":"A","subject":"chore: workflows 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":".github/workflows/notification.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"203ed58bd969c86aa310c58333da7b20c3f1dfd4","date":"2025-06-17T15:03:41+09:00","era":"A","subject":"stg api.yml 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f9a549a409aec09ef24e707f01702a7fe32bc94b","date":"2025-06-17T14:59:41+09:00","era":"A","subject":"stg api.yml 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccc98beb4203dbde518fc6193334c5b51ea25acf","date":"2025-06-17T12:20:51+09:00","era":"A","subject":"merge dev 201e795e84ef4aa1caac23d8c138c6f3af7c9039","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06d263be6d6dbb632a92483101eab5884f748c9f","date":"2025-06-17T10:39:37+09:00","era":"A","subject":"chore: 영업대리점 검색조건 수정 및 목록 치환값 변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"008894d5f9ca1555c1f1bf17738e266deafd8c23","date":"2025-06-17T10:12:55+09:00","era":"A","subject":"merge dev 51e08a179043abd3585a7767ec098c55eb3d9cb9","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"316308f0bbf95fab95858a439f764ec0b7d2f005","date":"2025-06-17T09:52:05+09:00","era":"A","subject":"merge dev f8952fd0c3ce9aca7c6e84241acbacca3f9bcdd3","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/schedules/sales-agency-statistics.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/sales-statistics.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a7b1eaf4ce1637be5b419b231a1ae45a3bf9f54","date":"2025-06-16T17:19:18+09:00","era":"A","subject":"chore: 영업대리점 테스트용 Controller 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5cd378801e664f11cf8cd785d012c5c0c821a71d","date":"2025-06-16T17:18:38+09:00","era":"A","subject":"feat: 영업대리점 통계 메일러 발송 연결 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7b4fcde8cc2c4632088908d21c1fcde60819253c","date":"2025-06-16T15:07:41+09:00","era":"A","subject":"feat: 영업대리점 데일리 통계 발송을 위한 nodemailer 세팅 및 로직 구현","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"835a48f80a7a0e926bd11bd2774616a7f0d91326","date":"2025-06-13T17:43:10+09:00","era":"A","subject":"feat: 영업대리점 작업진행중","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"98a1db5b43e459cfa7a95badb8aa630f6b72d3e3","date":"2025-06-13T09:28:32+09:00","era":"A","subject":"merge dev d017859132456c2783d89afff19b83c487a08804","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/sales-agency-statistics.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"201e795e84ef4aa1caac23d8c138c6f3af7c9039","date":"2025-06-17T12:20:51+09:00","era":"A","subject":"feat: 영업대리점 통계 발송 스케쥴러 예외처리 및 병렬 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/mailer/src/mailer.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51762111376eea81bb0943c7eee3def90efd1f19","date":"2025-06-17T10:39:37+09:00","era":"A","subject":"chore: 영업대리점 검색조건 수정 및 목록 치환값 변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51e08a179043abd3585a7767ec098c55eb3d9cb9","date":"2025-06-17T10:12:55+09:00","era":"A","subject":"chore: 영업대리점 관리 이메일, 관리자, 발송여부 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8952fd0c3ce9aca7c6e84241acbacca3f9bcdd3","date":"2025-06-17T09:52:05+09:00","era":"A","subject":"feat: 영업대리점 통계 발송 스케쥴러 세팅","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/schedules/sales-agency-statistics.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/sales-statistics.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3a833f561880071c73d9f766eb1b1b5ab3361a2c","date":"2025-06-16T17:19:18+09:00","era":"A","subject":"chore: 영업대리점 테스트용 Controller 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a67345476e98c93dab167ce5880e277edfac904e","date":"2025-06-16T17:18:38+09:00","era":"A","subject":"feat: 영업대리점 통계 메일러 발송 연결 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"65b228d838b2bd3d530585368565b6675d813dda","date":"2025-06-16T15:07:41+09:00","era":"A","subject":"feat: 영업대리점 데일리 통계 발송을 위한 nodemailer 세팅 및 로직 구현","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.interface.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/src/mailer.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/mailer/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd4eae38a605a759c3b7d6c286da086a7c2e51f0","date":"2025-06-16T14:40:06+09:00","era":"A","subject":"chore: 광고 목록 호출시 count 증가 로직 호출 부 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4fd6648b1348cc171f54db187d3bf71686694373","date":"2025-06-16T10:16:37+09:00","era":"A","subject":"chore: 광고 등록 adsVideoUrl 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f8126726292348b7e074501edfc6dee5fe20fc2","date":"2025-06-13T17:52:55+09:00","era":"A","subject":"chore: 광고 수정시 외부링크여부 필수 조건 수정 및 사용자 조회시 외부링크여부 조회되게 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de64b828b19cddab88d55c3de43a9f4e83adfa7e","date":"2025-06-13T17:43:10+09:00","era":"A","subject":"feat: 영업대리점 작업진행중","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d017859132456c2783d89afff19b83c487a08804","date":"2025-06-13T09:28:32+09:00","era":"A","subject":"chore: 영업대리점 항목(이메일, 담당자, 수신여부) 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/sales-agency-statistics.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b808bd45682a2f88a4d5cba132749d5494b376a7","date":"2025-06-12T16:10:32+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3547ae1b3b8024343e52b3384b1e6dc937a69769","date":"2025-06-12T16:10:12+09:00","era":"A","subject":"chore: 진료정보 분석 1차 인증 요청시 로그 적재 주석처리 부분 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dfc7b0cdc8bdb2d919ff07b4052bfe2a66637678","date":"2025-06-12T15:34:51+09:00","era":"A","subject":"feat: 관리자 강의 목록 조회 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/courses/category/courses-category-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/courses/courses.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a2f9dde3e4344dc926baf420b6df381c0a1c3a3","date":"2025-06-12T10:29:31+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"700ee8575a57b278b0131325c801739d35badc01","date":"2025-06-12T10:29:13+09:00","era":"A","subject":"chore: 검색조건 요청자 구분 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fc087ff9a5b2ff6a3f83cb3b59eb9ec29222f352","date":"2025-06-12T09:55:54+09:00","era":"A","subject":"feat: 강의 카테고리 관리 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/courses/category/courses-category.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e2c6f232152040ea449cd4333a5e2cebc4186cb9","date":"2025-06-11T16:38:11+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f90da31f2dd9dd54090011261f9cb62d518c5e8a","date":"2025-06-11T16:37:47+09:00","era":"A","subject":"feat: 유저 광고 조회 API, 클릭수/재생수 증가 API 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a7c1d1a20fa45116020db19b683f6ab488d8fff3","date":"2025-06-11T10:50:37+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7dc172911dfe5361c2394843cebb3d98ec16119","date":"2025-06-11T10:50:14+09:00","era":"A","subject":"chore: 관리자 광고통계 count string으로 넘어가지 않게 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c92925419d07cb708f2fdcd1b66349762caca2a9","date":"2025-06-10T16:08:57+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7c3dacf3a8c3fb2468b6309c4d0381b4b24e870","date":"2025-06-10T16:08:34+09:00","era":"A","subject":"feat: 광고 상세 광고통계 탭 API 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c912b0ad8b941fcbd6dd3896bc0fedd99d962db3","date":"2025-06-10T15:40:25+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63fd9d61a0f8f5407bc61c7b375675bdb52dff12","date":"2025-06-10T15:39:09+09:00","era":"A","subject":"chore: adsSort 필수값 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ace44b03e097e830c28cb86ba677fe7577f71622","date":"2025-06-10T15:07:27+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15e0a931af1dc6780675135e0a363b1ded0e696e","date":"2025-06-10T15:06:25+09:00","era":"A","subject":"chore: 생성 및 수정시 adsImg Optional 추가","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/date.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1618de43856acdb703ef5e78c767c0115ccefa4b","date":"2025-06-10T10:46:39+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"11c0f0d4c03d5d0fc6bc2520a740b35056ed7976","date":"2025-06-10T10:46:06+09:00","era":"A","subject":"chore: 관리자 광고 수정, 삭제 추가 및 등록 기능 수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/separator/src/separator.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ccaae111b0347846bfd5a7442993fd904360b45","date":"2025-06-10T09:16:57+09:00","era":"A","subject":"Merge branch 'feat/advertisement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f9c2130868bf489836c6225294356b58b7b31d60","date":"2025-06-10T09:16:23+09:00","era":"A","subject":"feat: 관리자 광고 관리 목록, 상세 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8c1f49048813f35dab0a662d9f45a1647ffcda0","date":"2025-06-09T10:38:36+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df7b3b776ac076dd3c177b8433c913868416ef15","date":"2025-06-09T09:40:33+09:00","era":"A","subject":"chore: 분석로그 목록 회원타입 반환값 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"999c519e5ebb4ca059fad3394c8653472d7e3ffb","date":"2025-06-09T09:26:59+09:00","era":"A","subject":"feat: 광고동영상 목록 작업 진행중","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"111fa53d85c7f07e28dbf9e15b50b9f17a0567ed","date":"2025-06-05T17:03:54+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9121784053e8aa5058a5f3e233bac0152b71b5e1","date":"2025-06-05T17:03:39+09:00","era":"A","subject":"chore: swagger 검색조건 표기 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"504cd2f39e05c7f981dd640a8c55ceaf65780ccc","date":"2025-06-05T16:50:37+09:00","era":"A","subject":"fix: fcm 토큰 로그인을 통해 갱신시 해당 토큰을 가진 다른 멤버가 있다면 해당 멤버 토큰 빈값 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"866f53922a63f117b54dcc097830cadf63a21ee4","date":"2025-06-05T16:03:39+09:00","era":"A","subject":"feat: 관리자 광고 생성 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"A","path":"apps/api/src/modules/advertisement/admin-advertisement.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/advertisement/advertisement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"af5b54f133a907e73ff7e29b1e2c95967350f652","date":"2025-06-05T10:56:09+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36ef199db70ffe2c020474767df5ea749ce24572","date":"2025-06-05T10:55:49+09:00","era":"A","subject":"feat: 분석로그 엑셀 다운로드 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6a0c890d18e895d558276b2637c4aef3d0b33ca","date":"2025-06-05T10:29:34+09:00","era":"A","subject":"Merge branch 'feat/log_treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"734c8506c4a537392ac97a42728e9cced10971db","date":"2025-06-05T10:29:04+09:00","era":"A","subject":"chore: 분석로그 목록 작업 완료","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log/log-treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26324796208402e53184302d261d26b2346b3443","date":"2025-06-05T09:44:11+09:00","era":"A","subject":"chore: 분석개선 1안의 경우 재활용 가능 케이스도 오류 및 알람 발송해야되는데 처리가 안되있어서 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d465d7faa0fd5855470649f9128a1515565be45f","date":"2025-06-05T09:40:23+09:00","era":"A","subject":"feat: 분석로그 목록 조회 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/treat/log/log-treat-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"560601e18433d451065b6cee6b684a13bfd27f92","date":"2025-06-04T16:11:27+09:00","era":"A","subject":"feat: 분석 codef API response 저장기능 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"A","path":"apps/api/src/modules/treat/log/log-treat-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log/log-treat.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log/log-treat.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log/log-treat.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/log/log-treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b0436502d3e7c49c596dbc4aa1037aca5d0f7f9c","date":"2025-05-30T18:01:35+09:00","era":"A","subject":"Merge branch 'perf/treat' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c33be7dd4b2d64a7ad47f1a5a09f0797b9df01df","date":"2025-05-30T17:59:27+09:00","era":"A","subject":"chore: 컨트롤러 네이밍 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"274621620921177e38d91066b062ae270e84cda0","date":"2025-05-29T16:51:19+09:00","era":"A","subject":"진료정보 요청 및 분석 한 로직내부에서 진행 및 백그라운드 처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/treat/treat.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1688904fd2ff240f68b92e99de410b90f31e760","date":"2025-05-28T19:50:56+09:00","era":"A","subject":"chore: 배포 워크플로우 service명을 server로 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1e0a41860c8d9558b8f6f8bd52ebf5f9c3bb445","date":"2025-05-28T17:51:28+09:00","era":"A","subject":"feat(workflow): 배포 알림 설정 개선","body":"- notify job에 build job 의존성 추가\n- 알림 기본 타입을 FE에서 BE로 변경\n- 스테이징 환경(stg) 알림 추가","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/notification.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19e679d7a8b0d47e161248e810dd1d776d3f63bf","date":"2025-05-28T17:39:04+09:00","era":"A","subject":"feat(ci): 배포 알림 시스템 개선","body":"- 이전 성공한 커밋 SHA 추적 기능 추가\n- 배포 알림 메시지 포맷 개선 (커밋 내역, 환경, 상태 표시)\n- 서비스 이름 통일","body_present":true,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"A","path":".github/workflows/notification.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"debc4c337b43e067b6f5f83efd68c0135c732b08","date":"2025-05-28T11:26:35+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36f44e63901e265a2772aa8954747bc665876082","date":"2025-05-28T11:15:48+09:00","era":"A","subject":"fix: 알림톡 발송시 사용된 알림권이라는 오류 발생사항 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e259f2617b47fae6f7368bb58ae74d9908905e39","date":"2025-05-28T10:03:15+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e29f8a145240b914de86fb9eba4be78933723b7","date":"2025-05-27T17:34:50+09:00","era":"A","subject":"chore: 알림톡 영업대리점 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cebd42834ed7057631353d673ea9d92a48c88463","date":"2025-05-27T17:22:51+09:00","era":"A","subject":"chore: 구독관리 하위 메뉴 영업대리점 검색조건 일반, 기업 구분 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75722347161be8e93ded6aa114ed0e530217bc5a","date":"2025-05-27T16:29:09+09:00","era":"A","subject":"chore: 영업대리점 일반, 기업회원 구분 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fca8ae57831fdf91df62dc08023ce8a40bfb3de2","date":"2025-05-22T15:29:44+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f997f15dbf6040206e8025cb9c9129a20370cda","date":"2025-05-22T12:12:40+09:00","era":"A","subject":"chore: 기업 관리 영업대리점 검색 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5588ab3eb5f157f65b7c72caf400a2acac61e765","date":"2025-05-22T11:22:46+09:00","era":"A","subject":"chore: 영업대리점 항목 처리 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"caa54b3087e50dc8ba493f5cb2142784e040264d","date":"2025-05-21T16:04:41+09:00","era":"A","subject":"chore: 관리자 구독관리 하위 메뉴 및 기업정산 관리에 영업대리점 항목추가","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f01b7c73741d8ab9c73fbe97aac6cb3803673799","date":"2025-05-20T15:25:55+09:00","era":"A","subject":"chore: 일반회원에 영업대리코드가 비어있는 회원만 검색할수 있게 sagCode 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"850005a6d7576258019e9fe85e5c39180148b669","date":"2025-05-20T11:19:53+09:00","era":"A","subject":"chore: 총판 1개만 등록되는 로직 제외 및 초대코드 없이 회원가입 유저 총판코드 자동등록 기능 제외","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e97920cedfd7abde55c8f13d02ec2ea3bbdd37a","date":"2025-05-20T10:11:13+09:00","era":"A","subject":"chore: 중복코드 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"61b6d9c534d2c1d90a7535095537eac7486f53a7","date":"2025-05-20T09:22:43+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97d0053d0ff0e69f92565016c4f32d24c41f8461","date":"2025-05-19T16:24:08+09:00","era":"A","subject":"chore: 회원가입시 영업대리점 코드가 빈값으로 넘어올시 총판대리점 코드가 들어가도록 조치","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74cc0121308f8910b45f36355f05688b371cb247","date":"2025-05-16T17:42:41+09:00","era":"A","subject":"chore: 청구서 목록 검색조건에 노출여부 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e1c8cd413f430da585244a33c66dfbf861553458","date":"2025-05-16T15:19:04+09:00","era":"A","subject":"chore: 영업대리점 정렬 생성일 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"88506a046d45a8302b7490d63062322b37c72662","date":"2025-05-16T11:56:31+09:00","era":"A","subject":"chore: 기업에도 영업대리점 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d92d3d4274a921e1230b5bec1965c4a2608598a","date":"2025-05-16T10:17:48+09:00","era":"A","subject":"chore: 회원, 기업회원 검색조건에 영업대리점 추가 및 목록 응답에 영업대리점 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"235a700d5b42fd2eaa7d332319ff4facf20709d4","date":"2025-05-15T17:54:53+09:00","era":"A","subject":"dev merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae02a6ddbe86d8f0833a145af3225ef2f73f8f7c","date":"2025-05-15T17:49:08+09:00","era":"A","subject":"chore: 영업 대리점 코드 UUID 처리 및 총판여부 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08b4f0ebaf4fc185c7875419ed93834dc6ad324a","date":"2025-05-15T16:29:43+09:00","era":"A","subject":"chore: 영업대리점 기본영업대리점 설정 디비에 값 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a1cba4696a932458b776ac5e992f9f470e4a8d14","date":"2025-05-15T15:21:09+09:00","era":"A","subject":"chore: 아이디 유효성 검증 throw 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca75dcb44078a21b615164a0cf05400b463a53f1","date":"2025-05-15T09:33:39+09:00","era":"A","subject":"chore: 관리자 알림 문구 줄여서 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"785a380316935c9f72878c62e218489c38ceae41","date":"2025-05-14T15:47:01+09:00","era":"A","subject":"chore: 엑셀업로드시 메세지 사이즈 조정을 위한 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47c31f36f0524764808382dec323b4a98239dbdc","date":"2025-05-14T11:28:00+09:00","era":"A","subject":"fix: fc 일괄업로드 알람 수정 진행중","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d16a35843c73c9714e9da90f7d64a51455c13803","date":"2025-05-15T15:22:52+09:00","era":"A","subject":"Merge branch 'fix/agency-fc' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"715e041c73093eeda08ff21631f3d6c235a821a1","date":"2025-05-15T15:21:09+09:00","era":"A","subject":"chore: 아이디 유효성 검증 throw 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4eb65b03a00bd4723e34b7fbab62fff5a9f1be53","date":"2025-05-15T10:23:52+09:00","era":"A","subject":"chore: 프론트 로컬 테스트를 위한 회사 IP 토큰 검증 패스 로직 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3505ae9141b0f10a56a5876803402b352df25e61","date":"2025-05-15T09:35:29+09:00","era":"A","subject":"Merge branch 'fix/agency-fc' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2784bf70c632fbf5ef7212f7201a4d72d1537a0","date":"2025-05-15T09:33:39+09:00","era":"A","subject":"chore: 관리자 알림 문구 줄여서 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a094a81e20728c47525d011bdab09f2092188791","date":"2025-05-14T17:30:20+09:00","era":"A","subject":"chore: 청구서 파일 수정시에도 수정일시 적용되도록 강제 업데이트 일시 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5eadb439f71fc81a05c6b5cf42aa45c5670289ba","date":"2025-05-14T17:30:20+09:00","era":"A","subject":"chore: 청구서 파일 수정시에도 수정일시 적용되도록 강제 업데이트 일시 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9f542d73b15d1a985388022740149332cc06b2a2","date":"2025-05-14T16:05:40+09:00","era":"A","subject":"chore: 청구서 등록 DTO 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ad3a515d922e8c00893597072002a3b5fe7df05","date":"2025-05-14T16:05:40+09:00","era":"A","subject":"chore: 청구서 등록 DTO 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5f88a28c4611e7164b310fa58e93290ebbf3e51","date":"2025-05-14T15:47:01+09:00","era":"A","subject":"chore: 엑셀업로드시 메세지 사이즈 조정을 위한 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44ca641db1f5ea8cb2b153561c959a49a8970393","date":"2025-05-14T11:37:41+09:00","era":"A","subject":"chore: 영업대리점 전체 목록 조회 API 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4e8bf1fb2c3e1b017d6cfebf9fcc52af5860c76","date":"2025-05-14T11:28:00+09:00","era":"A","subject":"fix: fc 일괄업로드 알람 수정 진행중","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"66978de9cb1060b9cea984d4658ac54c736fbd7a","date":"2025-05-14T09:37:31+09:00","era":"A","subject":"refactor: 영업대리점 entity 경로 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/agency/agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d773c49d854e5ab8807bf0439c362cc91fc4e78","date":"2025-05-14T09:12:08+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"964b30f54127792800957132097b9d52980007a3","date":"2025-05-13T17:28:20+09:00","era":"A","subject":"Merge branch 'feat/sales-agency' of https://github.com/rsteam-organization/insuniverse-server into feat/sales-agency","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3b3c1afdb8911d81c6bee326d16637f9170c47e7","date":"2025-05-13T17:27:24+09:00","era":"A","subject":"feat: 영업대리점 관리 API 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/sales-agency/sales-agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f46de2e5f6057713ad84bcf1be444a1f9d8aa0dd","date":"2025-05-13T12:03:53+09:00","era":"A","subject":"fix: 기업주문 취소 시 정산에 있는 내역이라면 정산 업데이트 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee7cee911ea15bf3f980ec2da06394258d484f7c","date":"2025-05-13T10:50:43+09:00","era":"A","subject":"feat: B2B 고객 등록 시 영업대리점 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cef63d4af0f3af04687a68e31948ab9545a60120","date":"2025-05-13T10:50:16+09:00","era":"A","subject":"feat: B2C 고객 회원가입 시 영업대리점 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05e2875d08e9840a785469631fbb9829d52477d6","date":"2025-05-13T10:49:28+09:00","era":"A","subject":"feat: 기업 CRU 시 영업대리점 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency/sales-agency.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f9c2e4717b9dca98b4973ea14e5c582ec7c4066","date":"2025-05-13T10:41:37+09:00","era":"A","subject":"fix: tnSalesAgency pk 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7f5130291502fb68151af37e2aa55ba9de9c9db","date":"2025-05-13T09:59:34+09:00","era":"A","subject":"chore: add tnSalesAgency","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0700ce0a63bfca7a535daef8a73252a191823c9","date":"2025-05-09T12:34:23+09:00","era":"A","subject":"chore: 유저 개발서버 스웨거 사용 시 로그인계정 강제주입","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/helpers/request.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2bd4be1a6340e987f49be4770962738745124b2f","date":"2025-05-09T10:22:35+09:00","era":"A","subject":"chore: guard 로직 검증을 위한 임시 주석 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70b4d5f52e0e1609079c457af77e607be1b40489","date":"2025-05-08T17:29:52+09:00","era":"A","subject":"chore: 통계 구글챗 발송 테스트 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b9197431c758eb448ab9f16f1e7f453812792ae1","date":"2025-05-08T15:18:26+09:00","era":"A","subject":"chore: guard 중단 회원 체크 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4a8cd900cb2be5a9965d9ddb0f61854ae097796","date":"2025-05-08T15:04:56+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e84e6599e78cba97029b2e78d0a77ebabf4f7b88","date":"2025-05-08T15:04:43+09:00","era":"A","subject":"feat: 기업회원 차단 혹은 중단되었을 시 guard 영역에서 검증 후 예외처리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/user/auth-guard.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/user/auth-guard.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02e3abdb7f52593ccc966ed8c3049efe67c4d702","date":"2025-05-08T10:53:15+09:00","era":"A","subject":"fix: 결제취소 시 정산완료는 관리자일 때만 검사하도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a6f755efb44ee2d3b0369028d56273f785136cb","date":"2025-05-08T10:49:17+09:00","era":"A","subject":"fix: 정산대상 등록된 주문은 수정 불가하도록","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f9b2f08028b7a430cfe869be4ad26e4faf5fe3e","date":"2025-05-08T10:36:46+09:00","era":"A","subject":"fix: 기업정산 시 결제취소건은 합산에서 제외하지만 주문매핑에는 포함되도록","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e2a0a07078a5ce5004179f4a81de93eea4aefa1d","date":"2025-05-07T17:58:04+09:00","era":"A","subject":"fix: 주문취소 시 유효성검사 추가(정산완료건 불가) 및 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48a95474d29916fb983d8d0f2bb42106fc5e988b","date":"2025-05-07T12:06:06+09:00","era":"A","subject":"Merge branch 'dev' into fix/image","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"530f3d99f6498657be8b7f32235730c4ec8c1694","date":"2025-05-07T12:05:32+09:00","era":"A","subject":"fix: 배너/팝업 수정 시 s3이미지 업로드 계속 되는 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfb4f05cb471fcc9703f289fcd701da21b8553b8","date":"2025-05-07T10:07:45+09:00","era":"A","subject":"chore: 사용중지 회원 처리 및 구독 수정시 에러 response 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"23130174de42c2285b8bc63983bb9eb1a7cd44be","date":"2025-04-30T16:41:30+09:00","era":"A","subject":"fix: 게시글 수정 시 s3이미지 업로드 계속 되는 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd19e173051cb032ad8a3146070c78db8f33456b","date":"2025-04-30T10:57:40+09:00","era":"A","subject":"chore: 대시보드 변경으로 인한 통계 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cac8ce77fcaa6cd919de69c7f433031eface133d","date":"2025-04-29T17:58:31+09:00","era":"A","subject":"chore: 기업회원 구독 병렬 처리 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e767b7f9b9bf98da17966b973f4d22af118e4673","date":"2025-04-29T17:37:07+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa1875f0baadabd689c803e04a9dbac238ee5156","date":"2025-04-29T16:29:43+09:00","era":"A","subject":"chore: 통계 챗봇 로직 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be0d86b9694d44aa6aa3e2b4d9050056e11aee3c","date":"2025-04-28T15:49:11+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2aec5df9c9a8db8b0135e68105a5e005e149c62c","date":"2025-04-28T15:47:59+09:00","era":"A","subject":"fix: 처방조제 조회 시 where절 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4660e762c02d56363c724891d7fdb2e58e4210ed","date":"2025-04-28T15:42:45+09:00","era":"A","subject":"chore: 기업 목록 및 상세 response 값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2bd3c752e035f3b98c4deb6615a6bd6ec3caa40d","date":"2025-04-28T14:55:27+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01fb4007d6639cbdef43395d6644c9acd62d4f30","date":"2025-04-28T14:51:39+09:00","era":"A","subject":"chore: 기업 상세 수정시 불량기업 수정 값 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50ed54af1d04aa81f2073f95017a5ea6ccd6b6a3","date":"2025-04-28T10:14:15+09:00","era":"A","subject":"Merge branch 'stg' into temp","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3c46792a9104228c270dabafb76a73a95e406ae","date":"2025-04-28T09:47:22+09:00","era":"A","subject":"chore: yml 스케줄러 관련 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f60518ce0802fef5903d6bd1c53287ea40aab43","date":"2025-04-25T18:41:17+09:00","era":"A","subject":"fix: 게시글 내용 검색 시 html테그는 검색되지 않도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2b3ef23c704a989bf5358657aa281c9a01f0671c","date":"2025-04-25T18:41:17+09:00","era":"A","subject":"fix: 게시글 내용 검색 시 html테그는 검색되지 않도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"231646ea23ee9450a3b17d9180d86fc60b58773d","date":"2025-04-25T18:20:36+09:00","era":"A","subject":"feat: 불량기업여부 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f0ca4ce9d808a46491253735fb990c290f89d130","date":"2025-04-25T17:58:59+09:00","era":"A","subject":"Merge branch 'fix/isNewSubscribe' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4da8ecea5238d85f5a0249cedf7acf0461a02b36","date":"2025-04-25T17:58:41+09:00","era":"A","subject":"fix: 기업회원 구독처리 시 신규/변경 여부 확인","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ca9af4d9d82eb2348638504e4aeff107f0a7eb7","date":"2025-04-25T17:50:52+09:00","era":"A","subject":"refactor: 구독해지 라우트 오타 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e56532d2aaa17bf4183b86caa22fba1ace74c651","date":"2025-04-25T17:17:42+09:00","era":"A","subject":"chore: 주문상세 주문 사용수, 제한수 변경 및 구독 다음 예정일 변경 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5b865d71fd46613cf223836855e8d93247b8bbb","date":"2025-04-25T14:51:30+09:00","era":"A","subject":"feat: 스케줄러 적용","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/src/schedules/delete-fc.schdule.ts","old_path":"apps/api/src/schedules/delete-fc-schdule.ts","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01949207f1767aea223259eb96e026153ac5119d","date":"2025-04-25T12:36:18+09:00","era":"A","subject":"chore: 기업계약 관리 구독중인 회원 있을시 삭제 불가 error response 정리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2c54e38aa8682381a7bb7904057b33b85fc8526c","date":"2025-04-25T11:54:25+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f368969aea64b46d2b872bd8e416d65484d0c8d7","date":"2025-04-25T11:54:18+09:00","era":"A","subject":"chore: 계약 삭제시 해당 계약 기업의 회원 중 구독 중인 회원이 있을 시 삭제 불가 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5db4eb226f95550bf6609a52da198a831db099d8","date":"2025-04-25T11:10:06+09:00","era":"A","subject":"fix: 고객사 분석목록 엑셀다운로드 항목 순서 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92fe990ed1f5ad337e41414f2c466ab2605775d6","date":"2025-04-24T17:50:01+09:00","era":"A","subject":"fix: 회원명 빈값저장 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b10533c092dc640cb9902c9e849fbeb2d9e94db","date":"2025-04-24T16:11:52+09:00","era":"A","subject":"fix: 팝업 업데이트 값 검사 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/separator/src/separator.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"976d43417c0ec992ea27bb613deff3f6f5280818","date":"2025-04-24T15:52:53+09:00","era":"A","subject":"fix: 팝업 안내일 컬럼 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/popup/popup.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ebaaaa6f1bf10975d33c685ef4009d6882eabd4","date":"2025-04-24T15:08:40+09:00","era":"A","subject":"comment: 주석삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f08fb21b72d68e18cb59d371c4393a66066e4822","date":"2025-04-24T15:05:33+09:00","era":"A","subject":"fix: 주문관리 일반/기업 구분 시 결제상태값도 분류처리","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"983677f2268e3bbd517950706131358d75164e76","date":"2025-04-24T12:44:45+09:00","era":"A","subject":"fix: 엑셀컬럼명 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8a5577b905832b22d2bbda71d9a73cd0764214e","date":"2025-04-24T12:08:18+09:00","era":"A","subject":"fix: 사용여부 변경 시 기업id값 안받도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"598185e8300af66d5d3b254445f68f3d835ff10e","date":"2025-04-24T11:52:42+09:00","era":"A","subject":"fix: 팝업 안내시작종료일 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/popup/popup.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"87f77b9b8537e3a9a3e5e77826775a34fb80d214","date":"2025-04-24T11:43:41+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8a8c54c991d88b04026f51e1bbc6563ca0766c0","date":"2025-04-24T11:43:31+09:00","era":"A","subject":"chore: 구독, 주문 각 일반/기업으로 구분되어 엑셀 다운로드 되도록 처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0aec29c41e8bd9c4af0108ffc341d3e3a993313","date":"2025-04-24T11:17:16+09:00","era":"A","subject":"chore: add column","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1565054971c1ff1e75ea4d4277900a070b37904f","date":"2025-04-24T10:47:19+09:00","era":"A","subject":"fix: 결제취소 시 멤버타입별 분기처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2217880a3a26285c59169bdee89ebc0a70610e87","date":"2025-04-24T10:30:45+09:00","era":"A","subject":"fix: 기업계약수 삭제","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4cdc3a4dfce0112a469bfbc4223a484483bd1cb","date":"2025-04-24T10:25:39+09:00","era":"A","subject":"feat: 기업회원 구독일괄업로드 추가(구독해지 추가)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"721027854c72ad9be06c2d0e9e61090989295206","date":"2025-04-24T09:21:32+09:00","era":"A","subject":"fix: 구독해지처리 시 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d1c89ed4686f4de68f4849b0d8e050f02283c65","date":"2025-04-24T09:00:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into feat/fc-status-upload","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fe4e96f0cecdce35b836fde19c1be1050e742b58","date":"2025-04-23T18:10:31+09:00","era":"A","subject":"chore: 기업회원 목록 추가 노출 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"819cf297cd684b020004b197087f10d589d04802","date":"2025-04-23T18:03:32+09:00","era":"A","subject":"Merge branch 'dev' into feat/fc-status-upload","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30af7933a111969fc0e9f7132168973c03256d5f","date":"2025-04-23T17:56:42+09:00","era":"A","subject":"feat: 기업회원 구독일괄업로드 추가(구독만 가능)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccfe25a78def07da895d302bf1fba15d64fb34b7","date":"2025-04-23T15:24:28+09:00","era":"A","subject":"feat: 기업회원 구독일괄업로드 추가(유효성검사까지만)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30f28b18fa35cd38498b018b8c32f89c70cf15f1","date":"2025-04-23T15:23:49+09:00","era":"A","subject":"refactor: 알림메시지 형식 통일","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a051914fbbf0fbcf436f9950a8c5c389a1a8817","date":"2025-04-23T15:18:38+09:00","era":"A","subject":"기업회원 사용처리시 계약계정수 체크하여 처리하는 로직 추가 적용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f440ef0be17fffe6144fa2c0a16cb93c3a0fe0d9","date":"2025-04-23T12:26:27+09:00","era":"A","subject":"feat: 기업회원 구독해제 API 구현","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"14f6993a727beb66bad7031e2204ee39b7643c3f","date":"2025-04-23T11:11:42+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da71f7b3489b3e4733eb4be8af2895f53ce1dfd2","date":"2025-04-23T11:03:10+09:00","era":"A","subject":"fix: 기업FC 구독처리 시 요청타입 별 유효성검사 다르게 진행","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4a5b56fd936641487dd4e8c11c223b75387bc3ed","date":"2025-04-23T09:39:16+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d0490a77bd2b9936422b85409d77b7e8e9d650a9","date":"2025-04-23T09:38:05+09:00","era":"A","subject":"Merge branch 'fix/client-car' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07a1039ace15401c9ed726548441487b2c7ee3f4","date":"2025-04-23T09:37:05+09:00","era":"A","subject":"feat: 고객사 자동차 분석결과 조회 응답값 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a45287e75c20be9501ebb5d23137e99a1e80f635","date":"2025-04-23T09:33:12+09:00","era":"A","subject":"chore: 권한 수정시 메뉴값만 수정되도 권한 수정일시 들어가도록 조치","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8caa771deef3aec259d0df765bc5dc4bd88db22","date":"2025-04-22T18:03:20+09:00","era":"A","subject":"feat: 고객사 자부상 외래, 입원 자동차보험진료비 및 진료일 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c13121ffadaea9ac5b526c6c77b6060ae1a9fdcd","date":"2025-04-22T17:56:32+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbf0eb7e952f27746f1efb3fb4b5bff9df062880","date":"2025-04-22T17:56:09+09:00","era":"A","subject":"feat: 자부상 외래, 입원 자동차보험진료비 및 진료일 처리 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08328537cc4ea64cdcb376b41b1a1d487d457c68","date":"2025-04-22T17:22:29+09:00","era":"A","subject":"fix: 기업FC다운로드 시 파일명에 기업명 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7b28c59d271bfb83788ba28ddc015fed1998074a","date":"2025-04-22T10:53:25+09:00","era":"A","subject":"comment: 주석 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9e02f3785b8c78425d515c1ccbe503a1971ff65","date":"2025-04-22T10:53:11+09:00","era":"A","subject":"fix: 고객사용 api에서도 자부상 금액 계산 변경사항 적용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7eb10466719c7cad8ab165dc148fc1f10d841cfb","date":"2025-04-22T10:42:19+09:00","era":"A","subject":"chore: 고객사 분석관리 원본데이터 엑셀 다운로드 자부상 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c2dbc23ebcdfee91f35c1659024a7468c72d26b8","date":"2025-04-22T10:30:15+09:00","era":"A","subject":"chore: 고객사 자부상 금액 계산 외래, 입원 구분하여 처리하는 로직 추가 및 목록 조회에도 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-car-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5b14625cfe30365f4c772c1c80bfe7c264ac596","date":"2025-04-22T09:08:11+09:00","era":"A","subject":"chore: 분석관리 원본데이터 엑셀 다운로드 자부상 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c9219710d603f513dddaefd0d7d90cd197e0b15e","date":"2025-04-21T16:17:38+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a20d5e1b5dc5abf62e1a29c02156cffe6b8e56a","date":"2025-04-21T16:16:12+09:00","era":"A","subject":"chore: 자부상 금액 계산 외래, 입원 구분하여 처리하는 로직 추가 및 목록 조회에도 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-car-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdb6255bff6d05e5021fff2e2df3a0589614ce48","date":"2025-04-21T15:01:53+09:00","era":"A","subject":"fix: FC수정 시 기업정보 안받도록","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fc967e5da8a8424688d43339559d33d10389d178","date":"2025-04-21T15:00:58+09:00","era":"A","subject":"chore: 분석인증실패 알람 원복","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d7f84e758b084cc26cc5d9db28158f3723067b7","date":"2025-04-21T14:35:24+09:00","era":"A","subject":"chore: 분석인증실패 알람 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b775921e058cff17d813078023a73806aa7270cd","date":"2025-04-21T11:41:09+09:00","era":"A","subject":"chore: 추가인증 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a025e75d5a6fa675a728955d2424db72df77f99f","date":"2025-04-21T11:24:00+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd836b23bbb453830d59790b1497ba68120e3a56","date":"2025-04-21T11:23:51+09:00","era":"A","subject":"chore: 인증 알림 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77e112f6c4628e6356a06d3c2774bdca0886e8ad","date":"2025-04-21T11:20:20+09:00","era":"A","subject":"fix: 기업FC 등록 시 암호화 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d28d628fe7b5b9bc1c07fac3ed29c681b8eddd8a","date":"2025-04-21T11:13:42+09:00","era":"A","subject":"fix: 기업FC 등록 엑셀 양식 샘플데이터 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53c04507e98c7574cbe657b60ac1af0b5872fea6","date":"2025-04-21T11:05:43+09:00","era":"A","subject":"chore: 알림 원인 분석을 위한 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92a7a0033bdb2db33c1ef4970ffba68aea32ffe6","date":"2025-04-21T10:51:42+09:00","era":"A","subject":"chore: 알림 테스트를 위해 특정 알림 로직 주석 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd0e7fa5dc52fea0de1c672dbec3cd7b8459389e","date":"2025-04-21T10:23:58+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bfb49788b803d312d3567c66e68e5989b79f93e3","date":"2025-04-21T10:23:51+09:00","era":"A","subject":"chore: 추가 인증 순서 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da3630083d726cfc424ac5a96197f05b84d1d229","date":"2025-04-21T09:40:59+09:00","era":"A","subject":"feat: 기업FC도 결제취소처리 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d050b47541930f1b89c918b16ad0af764f68c7c8","date":"2025-04-21T09:40:54+09:00","era":"A","subject":"fix: 고객사정산 정산일 데이터 포멧","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"add725ccda92e6c3ad61a71243ee08babaf42f20","date":"2025-04-20T17:47:05+09:00","era":"A","subject":"fix: 유저에서 FAQ 조회 시에만 카테고리 노출여부 검색하도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5b072f616d9fa3d1fa31f1519d206402feb7b128","date":"2025-04-18T15:33:49+09:00","era":"A","subject":"fix: 고객리스트 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"818131ac0519189648eb1af1a68361fcf36476c7","date":"2025-04-18T15:33:41+09:00","era":"A","subject":"fix: 고객사정산타입 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"641b20b69b380e27845b92a2050838ba8e5cb2d7","date":"2025-04-18T15:11:55+09:00","era":"A","subject":"fix: 회원관리 검색어 추가2","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc40fe17af0e3d5f599c1f4ea9a53b69b975f445","date":"2025-04-18T13:53:58+09:00","era":"A","subject":"fix: 회원관리 검색어 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de22c4c0f0a8e044a5a923db4d7720150990b577","date":"2025-04-18T12:13:23+09:00","era":"A","subject":"fix: 기업FC 로그인아이디도 수정 가능 하도록","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8bd03cef5c2881b089feb654df4e9feb3629812","date":"2025-04-17T17:26:06+09:00","era":"A","subject":"fix: 게시카테고리 정렬순서 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4cf55fa94abb6c287db4967d8236c17fa739957d","date":"2025-04-17T16:43:22+09:00","era":"A","subject":"fix: 문의사항 수정 시 전화번호값 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"84335b6baa82308e3856a4f70bb935962cb2020e","date":"2025-04-17T16:21:01+09:00","era":"A","subject":"chore: 진료정보분석인증 catch 블록 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6ae9b98cd71a734e1ac0d52ceab65e69e79743c","date":"2025-04-17T16:09:30+09:00","era":"A","subject":"fix: 기업FC 이메일 혹은 전화번호 수정 시 값을 지우고 싶을 때","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63ccc6b8b095ca954ea21be8896bebdc61234ed5","date":"2025-04-17T15:39:07+09:00","era":"A","subject":"feat: 게시글/손해사정 서비스 노출여부값 추가","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c9fd3586c17f84a66dd80501088f303468df55dd","date":"2025-04-17T14:44:25+09:00","era":"A","subject":"fix: 손해사정 서비스 서브카테고리 삭제 시 기존 게시글 공란처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e03cc00c46e9453e7ad33bf9febcfa6defee2e5","date":"2025-04-17T14:24:43+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"080c7590a355390417990d82fd64686f16cb094e","date":"2025-04-17T14:24:35+09:00","era":"A","subject":"chore: push 알림 메세지 및 타이틀 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26a21c7f457045da7d27b03fccad78f26e5344bc","date":"2025-04-17T12:23:32+09:00","era":"A","subject":"fix: 고객타입에 회원타입, 기업id값 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc388392fbfb434839ad4b13168fb33225afa982","date":"2025-04-17T12:20:49+09:00","era":"A","subject":"fix: map관련 값들 수정 시 연결값의 수정일이 업데이트 안되는 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"82a9e7af464cbca47cec70237c561eb0ad169a6c","date":"2025-04-17T11:49:32+09:00","era":"A","subject":"fix: 목록/상세조회 시 수정일 추가","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3abbba06174897103d47770af525e430eb8535e9","date":"2025-04-17T11:44:00+09:00","era":"A","subject":"fix: 분석상태 변경 시간 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"379e44c34be97bfe9abd6ce8e4a04bc6824ad62d","date":"2025-04-17T09:26:30+09:00","era":"A","subject":"feat: 게시글답변에 관리자정보 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fcbc46ef6dbd0f98dd32444dabbd4b2a20710c01","date":"2025-04-17T09:10:21+09:00","era":"A","subject":"fix: 분석통계 응답값 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c51686eb7600242c9bdd38ea962b15da8a1687dd","date":"2025-04-17T09:07:46+09:00","era":"A","subject":"fix: 가입통계 코드 구조 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a8254a988d1d881461e7fd83f0e0587abc0ceb2e","date":"2025-04-16T15:28:12+09:00","era":"A","subject":"refactor: 통계 불필요한 엔터 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4f880903e26974bb6a88efe30a0f02cea685f0f5","date":"2025-04-16T15:17:39+09:00","era":"A","subject":"git: 손해사정 저장 시 제목 값 잘못들어가는 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c29a12e6ce12bfcf75c1d06607bb07d7e7d70f15","date":"2025-04-16T15:16:34+09:00","era":"A","subject":"fix: 게시글/손해사정 멤버타입 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cd085461a9741f505c614d1e04df2fb539c22305","date":"2025-04-16T15:09:25+09:00","era":"A","subject":"fix: 매출통계 기업매출도 포함","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"885ca43cbbe427b1bea11a9cfccc1d8e0608fc6f","date":"2025-04-16T15:08:58+09:00","era":"A","subject":"fix: 기업회원 구독 시 결제정보에 승인일 저장","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78267350ebcf1bde9d0437485f247e16d1419236","date":"2025-04-16T12:32:14+09:00","era":"A","subject":"fix: 고객사에 계약일 컬럼 삭제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa9a137a8bbabd0b4e4094204cc517c54cab9922","date":"2025-04-16T12:28:05+09:00","era":"A","subject":"fix: 고객사 조회 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"706aa7526f22053e9fc7df6602705784e367fbeb","date":"2025-04-16T12:21:58+09:00","era":"A","subject":"fix: 고객사 조회 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0a36bd5b3935eda345f0ffd6d6aff43d399aeb0","date":"2025-04-16T12:01:45+09:00","era":"A","subject":"fix: 기업회원 구독 시 계약계정수 유효성검사 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b59fa82ebec8f25f0603cbb82b68b8008861ae06","date":"2025-04-16T11:58:35+09:00","era":"A","subject":"fix: 기업FC 엑셀다운로드 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3712a7d7c340d0f389066cb52df2c32124d6149","date":"2025-04-16T11:57:53+09:00","era":"A","subject":"fix: 기업FC 조회 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f387264615c8553600df4fe7f9124b7f2c0377e5","date":"2025-04-16T11:51:50+09:00","era":"A","subject":"fix: 엑셀명 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0056ad0d976c7ddd2bdda25fa92bc05d08d27317","date":"2025-04-16T11:46:24+09:00","era":"A","subject":"fix: 구독실패관리 검색필터 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c261a8e88fe4768cef48cd7526a74010aa5cc3aa","date":"2025-04-16T11:43:04+09:00","era":"A","subject":"fix: 사업자번호 유효성검사","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0e8c04b0e202963a6d40ebdadd6d10c7efae5aa","date":"2025-04-16T11:14:54+09:00","era":"A","subject":"feat: 기업회원등록 시 가입수 검사","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"562f74d39e7676a16d1d0cbf70edd965bba1afb8","date":"2025-04-16T11:03:28+09:00","era":"A","subject":"feat: 매출통계","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"678ab631fedfeed9abf1d1f05680814ac3861abc","date":"2025-04-16T09:36:58+09:00","era":"A","subject":"refactor: 통계 피그마순으로 코드순 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6d6c94078101ee1fe6b38ada6bc10189571cd91e","date":"2025-04-16T09:24:35+09:00","era":"A","subject":"fix: 권한관리 수정오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"478fafbb9762ef01253081dac6e4e23045b947b0","date":"2025-04-15T17:27:44+09:00","era":"A","subject":"fix: 탈퇴회원 정보 삭제 시 게시글 내의 고객 정보도 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7b713397a2199b55e9430cfac311da503e153f6","date":"2025-04-15T17:27:30+09:00","era":"A","subject":"feat: 게시글 고객연락처 정보 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b7f918dadd598f0088793d5ad2c4a2a5ba51aca8","date":"2025-04-15T15:38:52+09:00","era":"A","subject":"fix: 관리자id검색 시 decrypt 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2dcd452907c49b287f3e503c86dc3a96d9d482e6","date":"2025-04-15T15:34:16+09:00","era":"A","subject":"fix: 회원 로그인 시 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5aa62777d639b6b7a9ec9efa4f41ddfe42b15277","date":"2025-04-15T15:16:00+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"efba06e7cc46310b65789e1489296d521ce83354","date":"2025-04-15T15:09:38+09:00","era":"A","subject":"chore: 손해사정 서비스 연락처 저장시 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d80f491987e87216f312914d7da8a0950de838cf","date":"2025-04-15T15:05:08+09:00","era":"A","subject":"fix: add 기업 계약관리 사용계정수/구독계정수 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"79ca2ec5ca48f23d9ced4c9d998d923142fb01a6","date":"2025-04-15T14:50:53+09:00","era":"A","subject":"chore: 손해사정 서비스 목록 카테고리 가져오는 데이터 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"889282a312217244f7ec7856ea6e733f765782d9","date":"2025-04-15T14:38:03+09:00","era":"A","subject":"chore: 손해사정서비스 전화번호 등록 및 상세에서 카테고리 데이터 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f412d4e5db81f3eecc26d52d0bbafd15d77e1ad","date":"2025-04-15T12:30:44+09:00","era":"A","subject":"fix: add 검색타입","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aea6bfa5259e2d75a378e92224a26ce64dc64486","date":"2025-04-15T11:35:50+09:00","era":"A","subject":"fix: 액셀다운로드 컬럼 노출항목과 동일하도록 수정","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"710606843500bafd1422f5989f600b65a743bebd","date":"2025-04-15T10:32:33+09:00","era":"A","subject":"refactor: 구글챗 통계 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6b527a61629fa64489d76e20b4d2da2d0c4b15b","date":"2025-04-15T10:30:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0a36c79c450895379ac8e31f67e7c7fd67eb0002","date":"2025-04-15T10:29:59+09:00","era":"A","subject":"chore: 통계 테스트 코드 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b24ecda445dcf7cec3e3bd6c51c8540e76024ba8","date":"2025-04-15T10:09:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2737b944aeae67378a5e99ee43426c96cb24b57f","date":"2025-04-15T10:08:06+09:00","era":"A","subject":"fix: add list/detail updatedAt","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aa6640dd606fdb2da9c19b3b77460fdebd3c0ba9","date":"2025-04-15T09:56:44+09:00","era":"A","subject":"fix: add 고객목록 검색타입","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6cf7ebdf933b12437a54c1862032dc40bc3d3bfe","date":"2025-04-15T09:23:13+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5ea34bf245e00c63fdb7a3c1f8e3e39120cced26","date":"2025-04-15T09:22:56+09:00","era":"A","subject":"chore: 손해사정 카테고리 목록 서브카테고리 카운트 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb56eb5466c47f23cbc40db727df5f94fe49ba8a","date":"2025-04-15T09:19:30+09:00","era":"A","subject":"fix: 기업FC값 구독상태 요청값 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de067ac6a958da625fccb43640c2c60ce3c284df","date":"2025-04-15T09:16:22+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccfbffa4d53a85e920680ccd6b9db1b6def7b171","date":"2025-04-15T09:16:04+09:00","era":"A","subject":"chore: 손해사정 카테고리 및 고객사 불필요 return 값 조정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec49662a0585ddb6cfef8df6b149e93a14174f45","date":"2025-04-14T17:47:26+09:00","era":"A","subject":"fix: 고객사관리에 고객사검색 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"88be1509375354f1fd4cc15df24bf69c707845ab","date":"2025-04-14T11:58:03+09:00","era":"A","subject":"feat: 게시물 조회 시 고객전화번호 같이 반환","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb37c9ba04b612f131b17c201b02e10e22b4c0a8","date":"2025-04-14T11:44:42+09:00","era":"A","subject":"fix: 고객사 정산 검색조건 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0afc03b904051df84b829f0f38e1a15378b05786","date":"2025-04-13T06:00:09+09:00","era":"A","subject":"fix: 기업 신규등록 시 중복검사","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2df33737f481d0af5e069671e04b5d81123d66f","date":"2025-04-13T05:19:12+09:00","era":"A","subject":"fix: 기업FC 구독처리 시 다음구독일 값 받음","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2066b383eb7855fe94fddd63a6fce5a37da62dbb","date":"2025-04-13T02:54:16+09:00","era":"A","subject":"fix: 구독처리 시 계약의 계약계정수 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08afa323bc7a7e73a37b7b9c17f1aaec5881ed05","date":"2025-04-13T02:32:35+09:00","era":"A","subject":"fix: 기업회원 생성및구독 기업단위로 진행하도록","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fc29644b8cfdcd8073580383fb45b0a284f8112b","date":"2025-04-11T17:58:29+09:00","era":"A","subject":"fix: 고객사 검색조건 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6fcf488def335097a62b9b6854bcb82d168d803","date":"2025-04-11T17:51:56+09:00","era":"A","subject":"fix: 기업FC 이름도 수정 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"29e54fdb85f8973d4d7c35972ec2498504c3bcf6","date":"2025-04-11T16:17:14+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa09fd16142fa1e7c06e5e02d8e4a6f2b255f217","date":"2025-04-11T16:17:02+09:00","era":"A","subject":"fix: add fc타입 검색값","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"57be3843943d694bbc5bd204430b9aaa623a069f","date":"2025-04-11T16:13:33+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c3f3b1ea2d91000efedfd056140e6ec6f2a0a845","date":"2025-04-11T16:13:25+09:00","era":"A","subject":"chore: 손해사정 서비스 답변 작성 관리자 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89a00cb8910cd70a3c24bd024230e7a65b697125","date":"2025-04-11T16:03:09+09:00","era":"A","subject":"fix: 비소속 삭제처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c61f8fef1030d611d7573ebc2de6409d9505f61","date":"2025-04-11T15:52:34+09:00","era":"A","subject":"refactor: 기업id 검색값","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"14aab66218d6bc4f2a284371ef02aaba183f3e1d","date":"2025-04-11T15:48:36+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"105739f49b65198f4c9efbc1379f52e888554a40","date":"2025-04-11T15:48:27+09:00","era":"A","subject":"fix: add 기업id 검색값","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"62d0e1bf13108a9d4546ed2577eb833d6e013510","date":"2025-04-11T15:38:22+09:00","era":"A","subject":"chore: 로그인 where 조건 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"580fe1195e7b3948c03903220b5c7d2b76fae234","date":"2025-04-11T15:04:06+09:00","era":"A","subject":"chore: FC 회원 탈퇴 정보 사용여부로 변경됨에 따른 문구 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"91fa3eb96576339f220529194431aabb70ece017","date":"2025-04-11T14:44:34+09:00","era":"A","subject":"chore: FC 회원 탈퇴 처리를 사용여부로 변경함에 따른 파라미터 처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80d848021414271e3ddeef750bbf2d8273e02d74","date":"2025-04-11T12:37:16+09:00","era":"A","subject":"chore: stage병합","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97e08ace4eaeeb43968b882e8c37110004e2ebd5","date":"2025-04-11T12:35:45+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4e9aca05ad38ce635dcc82bd85a13b39d877ac8","date":"2025-04-11T12:26:40+09:00","era":"A","subject":"Merge branch 'chore/resign-fc' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c251a0b036b9ade8a9e7821dfbed414d36b45fa","date":"2025-04-11T12:16:04+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aaf705ebdd2158009145638179ea42b03e61b0f7","date":"2025-04-11T12:15:52+09:00","era":"A","subject":"chore: 손해사정 서비스 답변 등록시 관리자 정보 및 유저 연락처 정보도 넘어오게 처리","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"93b04588b51dea8f5916de025f6abac9da7aa2ec","date":"2025-04-11T11:14:44+09:00","era":"A","subject":"chore: 고객사 디비 제약조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6917c851aa98bcac7cd4138b295bdf6df80686c1","date":"2025-04-11T11:07:27+09:00","era":"A","subject":"feat: 기업계약관리에서 가입자수, 구독자수 조회 가능하도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8c91229080798833e260d6256be80141eb388d97","date":"2025-04-11T10:56:36+09:00","era":"A","subject":"chore: 기업FC의 경우 탈퇴가 사용 및 미사용처럼 데이터 삭제가 아닌 구분값 변경만 이뤄지도록 변경","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7edca6de0689366c90e784425027a88ec2c7f29a","date":"2025-04-11T09:44:09+09:00","era":"A","subject":"fix: 디비 유니크값 에러 시 컬럼명 반환","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.utill.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be64047140899251537df0487601160458a4567e","date":"2025-04-11T09:43:03+09:00","era":"A","subject":"fix: add 기업계약관리 조회 반환값","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e322d483fb5f1eea0efd4cb75b40072a1459c360","date":"2025-04-11T09:22:14+09:00","era":"A","subject":"fix: all 조회 시 코드도 반환하도록","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f3dd2a4e0ee7575c4c4ea030da1082ab5f7ac6c2","date":"2025-04-11T09:19:08+09:00","era":"A","subject":"fix: add agency contract updatedAt","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"17efbf6bd317eb9fabd29cd5d5be509376f3aa12","date":"2025-04-10T18:05:04+09:00","era":"A","subject":"fix: 게시물 수정 시 필수값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"915e7cc68803dd00dbdf85996ba1e9a3e717eff6","date":"2025-04-10T12:31:03+09:00","era":"A","subject":"chore: Content-Disposition cors허용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30ce23299cd1933cfb8864ba412347bf33650a84","date":"2025-04-10T12:23:15+09:00","era":"A","subject":"chore: 진료정보요청 중 자료수집완료상태 처리 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"69995daf58de36399e30b56fa9ceb67ce3539a84","date":"2025-04-09T17:55:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8fb73690dd3e3da7a199e3f14a4061b1eb82d26","date":"2025-04-09T17:55:01+09:00","era":"A","subject":"chore: 손해사정 카테고리 삭제시 엮여있는 게시글이 있을 경우 error code return 되게끔 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b51c3369cf445c7f049bea490fafd4b02fe25b02","date":"2025-04-09T17:52:17+09:00","era":"A","subject":"fix: 전체기업 조회 시 비소속은 미노출 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b41d43deffd50275b7e5deb6ee2e973c73c267dc","date":"2025-04-09T17:51:45+09:00","era":"A","subject":"fix: 기업등록 시 최초구독처리 되도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4619932e199a0761bddde1438a987c09720cde1","date":"2025-04-09T17:47:42+09:00","era":"A","subject":"comment: 기업fc","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2401829a92a0164d977c61423758f3682dc08b6","date":"2025-04-09T17:37:49+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da8149c060ac286baa6fc64bd7cc9cfd94e88e4d","date":"2025-04-09T17:35:45+09:00","era":"A","subject":"chore: 조사선정 등록 및 수정시 게시글  노출로 데이터 넘어올 경우 다른 게시글 미노출 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"23bdbc9c3faf7d37a3f312a25da1bae9e652cf88","date":"2025-04-09T16:49:22+09:00","era":"A","subject":"fix: 기업FC 검색필터 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6fc1e6f682a07e54d9b169a70ac15bd33d4995ce","date":"2025-04-09T16:44:44+09:00","era":"A","subject":"refactor: 메소드명 보기좋게 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"082877129a80954e88c321578f16b615f58d4d93","date":"2025-04-09T16:43:58+09:00","era":"A","subject":"fix: 기업fc 엑셀업로드 시 계약계정수 유효성검사","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdadcd516b463f09a5906435ffb8cd565a28a8c1","date":"2025-04-09T16:13:58+09:00","era":"A","subject":"fix: 손해사정 서비스 모듈 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e2f087576b23dae59125cfdd77899af237f096bb","date":"2025-04-09T15:45:31+09:00","era":"A","subject":"refactor: 변수명 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9f2de215b41921e0f65de16d2a1c178307fa37ee","date":"2025-04-09T15:31:21+09:00","era":"A","subject":"fix: 기업fc등록/수정 시 비밀번호 유효성검사추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2232f15d260996b819a6737b3c2ba67651f48406","date":"2025-04-09T15:08:45+09:00","era":"A","subject":"fix: 구독상품 저장 시 필수값 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a468e9e6f6bc7c11a6dcbbd35f900b943cb08d00","date":"2025-04-09T15:04:52+09:00","era":"A","subject":"fix: 정산연월 포맷팅 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e594a83d218bd4bbdd400a00662f31b63eb65ea","date":"2025-04-09T14:54:35+09:00","era":"A","subject":"fix: 계약계정수 최솟값 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad3ca3aeb4434ef42aace9f0931ad7988ba9ec7b","date":"2025-04-09T12:33:47+09:00","era":"A","subject":"fix: 관리자 개발서버 ip 강제허용 삭제4","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"762910289de14c8a2d85cf0685515ff868486c43","date":"2025-04-09T12:27:10+09:00","era":"A","subject":"fix: 사업자등록번호 컬럼 제약수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aca43b1ffe36a46169f976cdbca3b0279ab81ee4","date":"2025-04-09T12:23:15+09:00","era":"A","subject":"fix: 관리자 개발서버 ip 강제허용 삭제3","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"85aa9192b5aac26249788dfd733f429641e7ef83","date":"2025-04-09T11:55:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"294d8cc6855ef8066554c872e93939ce8c19e075","date":"2025-04-09T11:55:15+09:00","era":"A","subject":"chore: 권한명 수정되도록 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8588055fba7568031c581d248dab75241829798","date":"2025-04-09T11:44:49+09:00","era":"A","subject":"fix: 관리자 개발서버 ip 강제허용 삭제2","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc9e365c6f9e8276b5723084ee8897550e161bd1","date":"2025-04-09T11:35:59+09:00","era":"A","subject":"fix: 관리자 개발서버 ip 강제허용 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c3987880afe10b9a5abced2bf2dac018da31a2c","date":"2025-04-09T11:27:00+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"849fabc74beba4d40b35f9a2f333a7e3ef79050d","date":"2025-04-09T11:26:46+09:00","era":"A","subject":"chore: 권한 목록 검색시 날짜 검색 기능 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53c73b27d9ca5a4c85435741baaacfca872c75df","date":"2025-04-09T11:21:38+09:00","era":"A","subject":"fix: 관리자 개발서버 강제 정보주입 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6019b681c7e94943da52cbc7ad7f6906e385554","date":"2025-04-09T10:57:29+09:00","era":"A","subject":"chore: 구글 챗봇 통계에 가입 통계 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50950ed246955e8d97778a2fe53965ec57aea69c","date":"2025-04-08T10:24:25+09:00","era":"A","subject":"feat: 가입통계 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"64260fe522c9cb0c462303de3de08a87cd28c5df","date":"2025-04-07T14:40:12+09:00","era":"A","subject":"Merge branch 'feat/statistics-analysis' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08f61a328199a9049692d8a6e8aadd21b274b300","date":"2025-04-07T14:39:47+09:00","era":"A","subject":"refactor: 분석통계 쿼리수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e70334967eafaeb8cbd80022175f098006fa01b9","date":"2025-04-07T14:28:31+09:00","era":"A","subject":"feat: 구글챗용 통계 조회(미완)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa5b28a221d35150d5245f38b3707a1afb4d4f0d","date":"2025-04-07T12:14:15+09:00","era":"A","subject":"chore: 관리자 검색조건에 권한 항목 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff8a6b34ff401c70a3cf287a86eac6cd1701e795","date":"2025-04-07T11:52:54+09:00","era":"A","subject":"chore: 권한목록 검색조건 추가 및 관리자 등록 수정 권한 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4465ee54d15e4250178eb3212abb5d83cafefd90","date":"2025-04-07T11:36:58+09:00","era":"A","subject":"feat: 분석통계-일별","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfa600aca6933c1315b32824f983544777363f22","date":"2025-04-07T10:36:54+09:00","era":"A","subject":"chore: 수정시 필요 값 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d61897df2ea6d844b27530bc49fe5d52485397c","date":"2025-04-07T10:32:00+09:00","era":"A","subject":"chore: 권한 등록 FK 참조 오류 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ef2e349df936cbcc72ee1efc62018427d36f11a","date":"2025-04-07T10:15:40+09:00","era":"A","subject":"feat: 통계분석-월별","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"932c862068ffae15b1f375ccd7429190b06f2b98","date":"2025-04-04T17:29:40+09:00","era":"A","subject":"feat: 구글챗발송 메소드 생성","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"libs/chat/src/chat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"943c47c0c754495b3eab7bc23bb08e7f54cd5f57","date":"2025-04-04T17:19:35+09:00","era":"A","subject":"feat: chat library","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"libs/chat/src/chat.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/chat/src/chat.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/chat/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/chat/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aaa21f2548b31ef1573ed5669a6164d2dcb802a3","date":"2025-04-04T17:03:11+09:00","era":"A","subject":"fix: 미답변 게시글 조회 응답값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0d78683379ad2fd1369516d28cde4faac5e8cfc5","date":"2025-04-04T16:52:43+09:00","era":"A","subject":"Merge branch 'fix/statistic-member' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5728e608d44ad9d69490840dc72044e113cf604b","date":"2025-04-04T16:51:49+09:00","era":"A","subject":"feat: 미답변 게시글 조회","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"522bbcc68c67924c5168220aa7d13e2723fc4828","date":"2025-04-04T16:27:27+09:00","era":"A","subject":"chore: 권한 목록 조회 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db48a7c3dd8094e35f83adf348d69044e8b84b45","date":"2025-04-04T16:07:56+09:00","era":"A","subject":"chore: 사용자 권한 메뉴 코드 조회 방식 Get으로 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f471d7ee83406034b3748fc633c96fe8966eb492","date":"2025-04-04T16:01:54+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be6b122f5a0918b3f1a9470e4117f7820a78f9e3","date":"2025-04-04T16:01:44+09:00","era":"A","subject":"chore: 권한 swagger 정의 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48a1e3575c67b79a560a6c657e5738b4462faa16","date":"2025-04-04T12:32:11+09:00","era":"A","subject":"fix: add 전체회원수 in statistics","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e06b8af1965daf509aa3bebbbd41a466a3096fe5","date":"2025-04-04T11:50:37+09:00","era":"A","subject":"feat: 관리자 알림 전부 읽음처리추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a7362d987ec70e7944d6d63751a0327794807a3","date":"2025-04-03T22:49:43+09:00","era":"A","subject":"fix: 구독실패 리스트 조건 수정정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"99d9d7f95853aabc94524cc4b6f731ff1ce054ea","date":"2025-04-03T17:17:47+09:00","era":"A","subject":"chore: swagger type수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6723c827ed4f160546461e567d6512ce1b6c36a8","date":"2025-04-03T16:53:00+09:00","era":"A","subject":"Merge branch 'feat/admin-auth' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"644f841b555ef8a569d70e0401e04d70dd3f95fd","date":"2025-04-03T16:52:28+09:00","era":"A","subject":"feat: 관리자 권한 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68d33974ecf40ec70a9e1c9195c189b7504034d7","date":"2025-04-03T16:24:33+09:00","era":"A","subject":"chore: dev서버 강제 토큰주입값 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"516f5c8524925568a0529f4313f701931af389de","date":"2025-04-03T14:50:39+09:00","era":"A","subject":"chore: 청구서 발급내역 저장 dto 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21511e390245e431f6f4af25c3759f537ed0e1ad","date":"2025-04-03T12:42:18+09:00","era":"A","subject":"fix: 기업FC 업로드 시 유효성검사 노티추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1f3e471aecab616e58455ff41255735ec9e86586","date":"2025-04-03T11:00:49+09:00","era":"A","subject":"chore: 앱 자동 로그인을 위한 로직 변경 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4ca36f2137e9f88189c97cf8d39e9444378b73b7","date":"2025-04-03T10:14:31+09:00","era":"A","subject":"feat: 로그아웃시 앱 자동 로그인을 위한 refresh 토큰 삭제 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"360bf6cff22f65bb57cbb7b5da652e2e77f9747b","date":"2025-04-03T09:52:14+09:00","era":"A","subject":"chore: foreginkey2","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"afdbf4df0aae7db6ecb506327491caf4b991b6c9","date":"2025-04-03T09:44:55+09:00","era":"A","subject":"feat: 권한 관리 작업 진행중","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/auth/menu/menu.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.service.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/menu/menu.controller.ts","old_path":"apps/api/src/modules/auth/menu/menu.controller.ts","score":66},{"status":"R","path":"apps/api/src/modules/menu/menu.dto.ts","old_path":"apps/api/src/modules/auth/menu/menu.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/menu/menu.module.ts","old_path":"apps/api/src/modules/auth/menu/menu.module.ts","score":64},{"status":"A","path":"apps/api/src/modules/menu/menu.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/menu/menu.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9691415384da310da3029a11ee31f9cf9d4483de","date":"2025-04-03T09:44:16+09:00","era":"A","subject":"chore: foreginkey","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"793cdcb353311e09a55c3e69b09d980b92ed4f52","date":"2025-04-03T09:23:07+09:00","era":"A","subject":"fix: 정산 입금처리 기능수정","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e39aa3cbed06b795cd8531fa00dd337fffaddd8b","date":"2025-04-02T16:12:12+09:00","era":"A","subject":"feat: 게시판 목록 조회 시 웹/앱 접근 구분값 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4919d2d169079479554749d6c357b8949a10e8d0","date":"2025-04-02T14:50:44+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into feat/admin-auth","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48c791c3ef977c944250c1b7730007cca872683a","date":"2025-04-02T14:50:06+09:00","era":"A","subject":"feat: 권한 관리를 위한 메뉴 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/menu/menu.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/menu/menu.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/menu/menu.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/menu/menu.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8cf4f3555299c985e851d3838a4dca3c1fffebba","date":"2025-04-02T12:43:37+09:00","era":"A","subject":"fix: 게시판에 접근허용타입값 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c9346388952ee64e952944ed817e484956872095","date":"2025-04-02T12:06:33+09:00","era":"A","subject":"refactor: 웹앱 구분 헬퍼로 분리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"A","path":"apps/api/src/helpers/device.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b87b45d4f17b6de59988befc410cb18a36eb690f","date":"2025-04-02T11:44:00+09:00","era":"A","subject":"fix: 입금/미입금 => 완료/미완료","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd2a53dcf5e9e6eac7479683329a7b5baee718d2","date":"2025-04-02T11:28:32+09:00","era":"A","subject":"feat: 고객사 정산 상세의 주문상세내역 리스트 조회","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d65345458b48b95d6825b0825298886fe0765c2","date":"2025-04-02T10:41:35+09:00","era":"A","subject":"refactor: 파일명 변경","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/src/schedules/settlement-agency.schedule.ts","old_path":"apps/api/src/schedules/settle-agency.schedule.ts","score":100},{"status":"R","path":"apps/api/src/schedules/settlement-client.schedule.ts","old_path":"apps/api/src/schedules/settle-client.schedule.ts","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48ad3877eb4010769f2d107166161c89bbd1f819","date":"2025-04-02T10:39:22+09:00","era":"A","subject":"chore: add settle-client schedule","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/src/schedules/settle-agency.schedule.ts","old_path":"apps/api/src/schedules/agency-settlement.schedule.ts","score":100},{"status":"R","path":"apps/api/src/schedules/settle-client.schedule.ts","old_path":"apps/api/src/schedules/client-settlement.schedule.ts","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d48d5ab7acbb8266315aee1b913f1155df7b8108","date":"2025-04-02T10:32:42+09:00","era":"A","subject":"fix: 정산상세매핑테이블에 정산연월값 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7d2b53f3adc21406651f25ca1b69b19ef88a3c0","date":"2025-04-02T10:27:57+09:00","era":"A","subject":"feat: 고객사 정산 CRUD/스케줄러","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/settlement/settlement.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/agency-settlement.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/client-settlement.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"767bd8a92d64791b75e2a2e9cd3ab4a3bb94326b","date":"2025-04-01T23:00:37+09:00","era":"A","subject":"fix: 기업FC 엑셀업로드 시 로그인정보 포멧팅 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be610be23617f0e9f82c6198ec6d58e7a68d6e89","date":"2025-04-01T18:01:46+09:00","era":"A","subject":"fix: 기업/고객사 계약관리 날짜 유효성검사 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef46e8ce49d57e2211b94cd072fe95b99aa95154","date":"2025-04-01T17:47:04+09:00","era":"A","subject":"chore: 1년경과 분석결과 삭제 수정2","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b6b1064e2d7282ccb44166cd76ba5adcb90fc211","date":"2025-04-01T17:43:43+09:00","era":"A","subject":"fix: 원본자료 고객사도 삭제처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae7bf8f06961568f7001ad3cd1431da4473c5326","date":"2025-04-01T17:37:11+09:00","era":"A","subject":"chore: 1년경과 분석결과 삭제 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"baa5776ad5c13895050e6097cf1a689b5c03cdbc","date":"2025-04-01T17:30:39+09:00","era":"A","subject":"feat: 분석삭제 스케줄러에 고객사분석내용도 포함","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc1de6566be391ec37a313cad695b63df41aae79","date":"2025-04-01T17:22:46+09:00","era":"A","subject":"Merge branch 'feat/client-analyze' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6e87b1f4d46275f2b644d2c7d4470b13eff3294c","date":"2025-04-01T17:21:19+09:00","era":"A","subject":"fix: 컬럼명 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"25e35feeb5ff396223741cb681c1f9b053b09e17","date":"2025-04-01T17:17:58+09:00","era":"A","subject":"refactor: client 모듈 분리","body":"","body_present":false,"is_merge":false,"file_count":24,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/client/analyze/client-analyze-admin.dto.ts","old_path":"apps/api/src/modules/client/analyze/client-analyze.dto.ts","score":99},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/client/order-detail/client-order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/order-detail/client-order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b174f15adf2ea5553ce87835c3bee70792372372","date":"2025-04-01T16:16:29+09:00","era":"A","subject":"fix: client 놓친부분 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13e2f7b4695c41b5bdc6629aa1d951d1e0364ed9","date":"2025-04-01T16:05:16+09:00","era":"A","subject":"chore: 스케쥴러 삭제 제약사항으로 인한 삭제 순서 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aff18868443daae28b0338c57c17da15d5105d35","date":"2025-04-01T15:53:54+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into feat/delete-schedules","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"873bc9baf32b19b0a9dd0044eb9b1140dc628b2b","date":"2025-04-01T15:53:01+09:00","era":"A","subject":"feat: 고객사 분석조회","body":"","body_present":false,"is_merge":false,"file_count":23,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-basic.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-car-basic.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-car-detail.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-detail.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-prescibe.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze-where.builder.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/analyze/client-analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/order-detail/client-order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"336832c4c458e4130d27ead65157458323b7def8","date":"2025-04-01T15:51:08+09:00","era":"A","subject":"Merge remote-tracking branch 'origin' into feat/delete-schedules","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e8ac389b707842b29a07f44ae5e9d62e382a67c9","date":"2025-04-01T15:47:26+09:00","era":"A","subject":"merge conflict analyze repository","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4412e5d0afda6eac1a76d1b652f4967c8874b188","date":"2025-04-01T15:43:45+09:00","era":"A","subject":"chore: 주문 상세의 user FK 값도 NULL 처리되도록 조치","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5918a89406f1480c1a217643bfe19be1b66aaf03","date":"2025-04-01T12:11:42+09:00","era":"A","subject":"fix: client contract","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/client-contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8cde2f7dfda055d8dd667be6a031b9706d5521d6","date":"2025-04-01T11:26:03+09:00","era":"A","subject":"merge conflict auth service","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e26fa34f1b674fe2eb6c3164c5761dd291354eb9","date":"2025-04-01T11:23:35+09:00","era":"A","subject":"chore: 앱자동로그인 앱에서 로그아웃시 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4a853e7069a20fcb5beb8e55f2b8bb964a398f1f","date":"2025-04-01T11:12:09+09:00","era":"A","subject":"merge conflict auth service","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a533407af3c1598062b31c19d72b5f911895bda","date":"2025-04-01T11:09:40+09:00","era":"A","subject":"chore: 손해사정 서비스 상세 조회 검증 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f09626aa4f4d2c530968cba1000d925dee3b6e13","date":"2025-04-01T09:46:21+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"689a9bcd87e381a9c814f5866c164cc7f7c27ff2","date":"2025-04-01T09:45:21+09:00","era":"A","subject":"chore: 손해사정서비스 유저 상세 조회시 검증 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35e38a8fe7dcd8cf4c899b686b8203e2859c14cc","date":"2025-04-01T09:26:15+09:00","era":"A","subject":"chore: add agency-regular-subscription scheduler","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"544176bd5bea31f5db4607cba093e6bdef69aa3b","date":"2025-04-01T00:10:54+09:00","era":"A","subject":"Merge branch 'feat/agency-scheduler' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4113535b4c9102be0f7a06315c8412f3bcf89df","date":"2025-03-31T23:09:01+09:00","era":"A","subject":"feat: 실패구독들 재구독처리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e10b4ba81ef8ee13f55f5285af21d8e2fdf6115a","date":"2025-03-31T23:08:27+09:00","era":"A","subject":"fix: test코드 제거거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c85683c89494909896c96c44f0fb7d5341a37acc","date":"2025-03-31T18:22:13+09:00","era":"A","subject":"feat: 구독실패조회","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/subscribe/subscribe-failed/subscribe-failed.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-agency-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"42f9cbdc1d4e4ee1675e9c92f918e2d04546f2ec","date":"2025-03-31T14:53:50+09:00","era":"A","subject":"refactor: subscribe폴더위치 변경","body":"","body_present":false,"is_merge":false,"file_count":25,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.dto.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe-admin.controller.ts","old_path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.controller.ts","old_path":"apps/api/src/modules/subscribe/subscribe.controller.ts","score":97},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.dto.ts","old_path":"apps/api/src/modules/subscribe/subscribe.dto.ts","score":94},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.entity.ts","old_path":"apps/api/src/modules/subscribe/subscribe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.module.ts","old_path":"apps/api/src/modules/subscribe/subscribe.module.ts","score":61},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.repository.ts","old_path":"apps/api/src/modules/subscribe/subscribe.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe/subscribe.service.ts","old_path":"apps/api/src/modules/subscribe/subscribe.service.ts","score":96},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-agency-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ca55059333977a77699248fb3e8a2307221c2e6","date":"2025-03-31T14:32:59+09:00","era":"A","subject":"feat: 기업FC 정기구독 스케줄러","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/regular-agency-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6344da57de6ac10df0abac6a9fcf52799c60aceb","date":"2025-03-31T12:22:02+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac9ce14a6bca1a30656397b2c41929a87e8fbefd","date":"2025-03-31T12:19:57+09:00","era":"A","subject":"feat: 손해사정서비스 삭제 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"532dc141b62a8425e5cf9a993922cf50ad360bfe","date":"2025-03-31T12:06:21+09:00","era":"A","subject":"fix: 기업FC리스트 orderby 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec0347d51e2cce61ea73fa9d1848a0ab83f55d60","date":"2025-03-31T12:00:02+09:00","era":"A","subject":"fix: 최초구독 시 유효성 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"79dc40c76cdaf86784b872bdfcf2161e5cd18585","date":"2025-03-31T10:41:19+09:00","era":"A","subject":"chore: 분석데이터 삭제 스케쥴러 탐색 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9616997c02031a3275269553ed7cf4f0971d1287","date":"2025-03-31T10:13:53+09:00","era":"A","subject":"chore: add agency settlement scheduler","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"225b1315e8f2cfca796568ba76ee2ba4d0099e2d","date":"2025-03-31T09:32:14+09:00","era":"A","subject":"fix: 기업회원 탈퇴 시 해지도 되도록","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c23205c29ce30de59c6590d865723f12acefcc9","date":"2025-03-28T17:57:43+09:00","era":"A","subject":"comment: 작업필요건 메모","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"672e1bc1a29fd963c0d82c42e95775ff740162e4","date":"2025-03-28T17:49:34+09:00","era":"A","subject":"refactor: endpoint 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4780ed87b2ec60636b1434520e32ab3fee26c9be","date":"2025-03-28T17:42:48+09:00","era":"A","subject":"Merge branch 'feat/delete-schedules' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2b3ba40aa64c6bf248ff1e3d922628ce2957213","date":"2025-03-28T17:38:05+09:00","era":"A","subject":"feat: 탈퇴 회원 1년 후 데이터 삭제 스케쥴러 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/delete-fc-schdule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b14216c5352fe54f77284197e4b77379e591db74","date":"2025-03-28T16:17:24+09:00","era":"A","subject":"git merge conflict client","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55ea73f93bbaf782efdc0e99b4d4e4302719882a","date":"2025-03-28T16:15:50+09:00","era":"A","subject":"chore: 고객사 전체 목록 조회 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client/client-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d99e282d9ed94966c378367f7254ea940d92f5ea","date":"2025-03-28T15:49:51+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c2db10758ae9c8e78929716192d5334d14df2f01","date":"2025-03-28T15:49:26+09:00","era":"A","subject":"chore: 손해사정 서비스 상세 조회 데이터 답변 포함","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e1f2a0e50ad57ff025037ccb120e4575ab479ec","date":"2025-03-28T11:30:40+09:00","era":"A","subject":"chore: swagger에서 date자동입력값 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0a85180b633228615c470e6ee72e375864444b35","date":"2025-03-28T11:26:43+09:00","era":"A","subject":"Merge branch 'feat/agency-settlement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3b9dcbf2ad0b79e3393bbac7c75eb7703bf04077","date":"2025-03-28T11:26:13+09:00","era":"A","subject":"feat: 기업 정산 입금/입금철회처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"022c0b77ac3a389bfad997aa2c8b0a73eccade53","date":"2025-03-28T11:13:22+09:00","era":"A","subject":"feat: 기업정산 목록/상세 조회","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/settlement/settlement-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/settlement/settlement-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/settlement/settlement.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de1a0b96c43f53290e81a74112b3bd6033dbecc6","date":"2025-03-28T11:12:26+09:00","era":"A","subject":"refactor: method name","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27b615e479aa48e0dc4d9f1abf4dfd866df30d84","date":"2025-03-28T10:57:29+09:00","era":"A","subject":"Merge branch 'feat/client' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec6765a39bd15e7343917db86a10f1586355d509","date":"2025-03-28T10:57:00+09:00","era":"A","subject":"feat: 고객사 계약 관리자 기능 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/client/client/client-admin.controller.ts","old_path":"apps/api/src/modules/client/client-admin.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/client/client/client-admin.dto.ts","old_path":"apps/api/src/modules/client/client-admin.dto.ts","score":98},{"status":"R","path":"apps/api/src/modules/client/client/client-admin.service.ts","old_path":"apps/api/src/modules/client/client-admin.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/client/client/client.controller.ts","old_path":"apps/api/src/modules/client/client.controller.ts","score":98},{"status":"R","path":"apps/api/src/modules/client/client/client.dto.ts","old_path":"apps/api/src/modules/client/client.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/client/client/client.entity.ts","old_path":"apps/api/src/modules/client/client.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/client/client/client.module.ts","old_path":"apps/api/src/modules/client/client.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/client/client/client.repository.ts","old_path":"apps/api/src/modules/client/client.repository.ts","score":100},{"status":"R","path":"apps/api/src/modules/client/client/client.service.ts","old_path":"apps/api/src/modules/client/client.service.ts","score":100},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/client-contract.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7824ce1454387f8d0ad2b5c34a7020ad879a679a","date":"2025-03-28T09:28:45+09:00","era":"A","subject":"refactor: 정산 폴더구조변경","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement-admin.controller.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement-admin.controller.ts","score":86},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement.controller.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement.controller.ts","score":83},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement.dto.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement.dto.ts","score":92},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement.entity.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement.entity.ts","score":100},{"status":"A","path":"apps/api/src/modules/agency/settlement/settlement.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement.repository.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/agency/settlement/settlement.service.ts","old_path":"apps/api/src/modules/settlement/agency/agency-settlement.service.ts","score":88},{"status":"D","path":"apps/api/src/modules/settlement/agency/agency-settlement.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/agency-settlement.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"995a4f07967523dd529d549844a7463ef8dbcd40","date":"2025-03-28T09:21:42+09:00","era":"A","subject":"fix: add 관리자알람결과 type","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alram-admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8610ad1187e664d41d0065c607fe74b8e2cefce9","date":"2025-03-28T08:54:02+09:00","era":"A","subject":"fix: add 관리자알람 type","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alram-admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"188adf19ec983e50630cb5aa10ab6c8c171a59d8","date":"2025-03-27T17:36:23+09:00","era":"A","subject":"Merge branch 'feat/agency-settlement' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a225f41db4b88283a3789fc8ed15dbb03cf8add2","date":"2025-03-27T17:35:38+09:00","era":"A","subject":"fix: 최초구독 유효성검사 조건값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15b37258cade1b60385dde36a6f3fe19486c9912","date":"2025-03-27T17:21:05+09:00","era":"A","subject":"feat: 기업정산 스케줄러(스케줄러 설정 필요)","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/settlement/agency/agency-settlement.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/agency-settlement.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"332d2814e95d0887bb180b2e74a76ac435f2406a","date":"2025-03-27T16:52:35+09:00","era":"A","subject":"Merge branch 'feat/client' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1f1e2cfeeba8bc7d7af53243109ee7fc4427a9c2","date":"2025-03-27T16:50:56+09:00","era":"A","subject":"feat: 관리자 고객사 관리 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/client/client-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f703aa1660234847b291304dbd2b4615e86893e4","date":"2025-03-27T11:43:23+09:00","era":"A","subject":"Merge branch 'feat/agency-subscribe' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f94618d3de8af763927a923847f69d4418cb7fe3","date":"2025-03-27T11:37:42+09:00","era":"A","subject":"fix: 계약기간 수정 시 중복검사 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"59e9ac16a8ac56f98d3ef2446149d317687197f5","date":"2025-03-27T10:33:46+09:00","era":"A","subject":"git merge conflict dev auth service","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac3bee9618d2d037bdf59ca03dcd452265b5990d","date":"2025-03-27T10:29:36+09:00","era":"A","subject":"chore: 로그인 할 시 리프레쉬 토큰 생성 앱 환경일 경우만 실행되도록 처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"958e0f3266e7aa0dde922add83b5dbcca3cb54ca","date":"2025-03-27T10:03:51+09:00","era":"A","subject":"feat: 조사선정기준/질환별 대상 관리 기존 게시판 기능 활용하여 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f65c3027e4eae7228598336b7741d260129a864","date":"2025-03-27T09:15:14+09:00","era":"A","subject":"chore: 개발서버인 경우 payload 강제삽입","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6083111444e14da4e16e35b96fd5aaf4ccc91ce1","date":"2025-03-26T17:46:42+09:00","era":"A","subject":"fix: 최초구독처리 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/drizzle/src/transaction.type.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff50c41f316b23e552fab4effd04fcf15c0fa030","date":"2025-03-26T11:05:22+09:00","era":"A","subject":"fix: 최초구독처리 성공/실패 시 알림으로 전송","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21d0c117457cd06bd26c64ec03cd83658deb19bd","date":"2025-03-26T10:17:56+09:00","era":"A","subject":"fix: add select admin-alarm-list","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"be976748a4c851cbba5fd0b6af612321319da164","date":"2025-03-26T10:16:12+09:00","era":"A","subject":"feat: 엑셀업로드 실패 시 알림","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3343bb2682a18cd0cb64babc6b4e5f5d6479aa9c","date":"2025-03-26T10:15:01+09:00","era":"A","subject":"fix: admin jwt token name 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d295da169f6ff0033d6eb85a2cabc847f1d9bee9","date":"2025-03-26T09:59:48+09:00","era":"A","subject":"refactor: 기존 alarm에 admin분기처리 삭제 및 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1809f9f5a8efecabb79b7b16206562ff715d19c9","date":"2025-03-26T09:59:14+09:00","era":"A","subject":"feat: admin alarm CRUD","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alarm/alarm-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alarm/alarm-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alarm/alarm-admin.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alarm/alarm-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/alarm/alram-admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a75aa39e714a21e3172ffc3b327611f837e4f2ed","date":"2025-03-26T09:35:10+09:00","era":"A","subject":"feat: refresh token을 통한 앱 자동로그인 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f36418820942ec8c24206fdef51dc9b40447e45e","date":"2025-03-26T09:21:44+09:00","era":"A","subject":"refactor: 코드정리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2468022858e572cbb015737f70b2265eb5780176","date":"2025-03-25T22:47:22+09:00","era":"A","subject":"feat: 엑셀 업로드 시 최초구독 진행하도록","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e3bbdbc2290b69e3cadee64a1479fbb8fdf32d4","date":"2025-03-25T22:24:49+09:00","era":"A","subject":"fix: 기업FC업로드는 event-emitter로 작동하도록","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc.event-handler.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0a036d0d8325743dbb53fa99c219c27e5dc6538a","date":"2025-03-25T14:39:29+09:00","era":"A","subject":"feat: 분석결과 1년 후 삭제 스케줄러 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/delete-analysis.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb1615bda06d24ec4777269a15eb5a35318a7e40","date":"2025-03-25T12:41:39+09:00","era":"A","subject":"feat: 최초구독처리","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e520ce6e68aaedee03f4c030fd16ca51c14f8f7","date":"2025-03-25T12:29:17+09:00","era":"A","subject":"feat: 기업fc검색조건 추가(구독상태)","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6f590028f353b6ff1aeffe389ec92ca00c3ffd7","date":"2025-03-24T16:19:06+09:00","era":"A","subject":"fix: 기업FC 엑셀업로드 시 유효성검사 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"700a563e38b47ba53e97330e94fc870e8d25d513","date":"2025-03-24T11:22:36+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bf5eb80146e73696fcc3822ac0c4d552ae4d6bd1","date":"2025-03-24T11:18:49+09:00","era":"A","subject":"chore: 손해사정 서비스 유저 목록 조회 API 리턴 타입 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f5b57fe34ebfba586c333b9e8d8df3bf74e4c425","date":"2025-03-24T11:04:23+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccf6d94f52d446317c474d1c4f1435f4f9129866","date":"2025-03-24T11:03:12+09:00","era":"A","subject":"chore: 손해사정서비스 관리자 목록 조회 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b3c4e6efd066abcb3cc7290d5cb593b302fe4c7","date":"2025-03-24T10:28:25+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32dd0748db5cf5a408023b05ced7b6c3f58c956d","date":"2025-03-24T10:24:42+09:00","era":"A","subject":"chore: 손해사정 서비스 및 카테고리 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fd0d8c1e83ffa047abf65988e1dc30f1f53f682","date":"2025-03-21T18:01:30+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1f18acab29534fa001659262c2a6f5e5a8bc1a7","date":"2025-03-21T18:00:31+09:00","era":"A","subject":"feat: 손해사정 서비스 상세조회 유저 API 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4a14dc1d027b0be63c8edf01a2abf2085c95cfd","date":"2025-03-21T17:21:53+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6b98d6eab38b6380fda5a2a8af9242fa5a0681ed","date":"2025-03-21T17:21:19+09:00","era":"A","subject":"feat: 손해사정 서비스 유저 수정 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da7c07c0598dab934b9382142aba88c84cc8c2d8","date":"2025-03-21T17:10:30+09:00","era":"A","subject":"fix: add hospitalName","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44ff33a846569ca6d6bd5dbc5d6f2c3edd755c0c","date":"2025-03-21T16:37:44+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e6d6cf132beef2c672c3155f353cbd54cb54b62","date":"2025-03-21T16:36:56+09:00","era":"A","subject":"chore: 손해사정 서비스 신규 등록 param 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e96e0a9081c262aad7ceb84addaf2fc20eb2f173","date":"2025-03-21T16:10:15+09:00","era":"A","subject":"git merge conflict appmodules","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"18c652edc3366ca0c3b9f4d706ea206c3c79044e","date":"2025-03-21T16:08:48+09:00","era":"A","subject":"feat: 손해사정 카테고리 유저 API 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56e886e8141bc42f9a08c3ec947fd665e202c60a","date":"2025-03-21T15:50:41+09:00","era":"A","subject":"feat: 손해사정 서비스 답변 등록 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-comment/loss-adjustment-comment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"04b1ca9636c5102e43fff0e38993ab90f80749fe","date":"2025-03-21T11:40:06+09:00","era":"A","subject":"chore: swagger operation 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e0ec1ae8315e8d164e8624b8962eaa34e79a0dac","date":"2025-03-21T11:35:50+09:00","era":"A","subject":"Merge branch 'feat/fcm-token' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba5cbab70b9b740ef71f8c763d85d7602cce0a28","date":"2025-03-21T11:35:24+09:00","era":"A","subject":"chore: fcm 토큰 발송 기능 fcm token 존재여부 확인 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01ff277ed2e79680b9e888c3cd3e5312d5dc9790","date":"2025-03-21T11:32:13+09:00","era":"A","subject":"feat: 손해사정 서비스 유저 API 작업","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"A","path":"apps/api/src/modules/loss-adjustment/file/loss-adjustment-file.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/file/loss-adjustment-file.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"86fbcbfcf28ef00425cbe3ea8436da53a9092b3a","date":"2025-03-21T11:31:05+09:00","era":"A","subject":"Merge branch 'feat/agency-product' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e3dd9145cc68dc9c247c4afe1df738b5cee0106f","date":"2025-03-21T11:30:57+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78d950d35c253fbd6f907ab5c7c0a4445bc9e3c0","date":"2025-03-21T11:30:35+09:00","era":"A","subject":"feat: 기업FC 개별등록 생성","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"18499e267c8e89c3f0675534ae2db6a752dbd26c","date":"2025-03-21T11:23:44+09:00","era":"A","subject":"fix: 고객사API 응답값 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0f966436199953595360853a1c749e622d527c6","date":"2025-03-21T10:44:42+09:00","era":"A","subject":"fix: 분석/구독관리에 체험상품만 노출되지 않도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fef3b55e5141ef468405ad94178887502d82c34a","date":"2025-03-20T18:13:55+09:00","era":"A","subject":"Merge branch 'dev' into feat/agency-user","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35ae6c6502a2e8d11624dfbe641ce88ed8b5d4f1","date":"2025-03-20T18:13:30+09:00","era":"A","subject":"feat: 기업fc 탈퇴처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3a86ad18cde255b0cb3ca889e0df795ea50e00b9","date":"2025-03-20T17:39:30+09:00","era":"A","subject":"feat: agency-fc 엑셀업로드 기능 생성","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"73b108b4b3384676a7988f00aef31cc1dabfba7f","date":"2025-03-20T17:31:00+09:00","era":"A","subject":"fix: client응답값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3392f719263caa6203f8fb233d8133d9f0f84b39","date":"2025-03-20T15:11:42+09:00","era":"A","subject":"fix: client endpoint","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5ce6af585db9219fd79d50e5d99a141a7bb5c02","date":"2025-03-20T12:02:08+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32b7c059c2fa71737c353d8b81bc25db8ccda8e5","date":"2025-03-20T10:14:20+09:00","era":"A","subject":"chore: 카테고리 목록 조회시 page 0일 경우 전체 조회되도록 작업","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment/loss-adjustment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff9fda6f936376ebf5fd25debf15f6f114acd45a","date":"2025-03-19T17:11:02+09:00","era":"A","subject":"fix: 고객사 진단코드 무조건 일치검색으로 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"187f32382f06be3c3c2b1cb4bc1f3b806d384c4f","date":"2025-03-19T15:55:50+09:00","era":"A","subject":"feat: board category 선택박스용 전체조회api 유저","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4ab84a69b5a6f179c783a78aee1a22f38903968e","date":"2025-03-19T14:53:46+09:00","era":"A","subject":"Merge branch 'feat/loss-adjusting' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9873856d5d3fe6a21280fe46dd3ad17b24be9149","date":"2025-03-19T14:53:18+09:00","era":"A","subject":"chore: 관리자 손해사정 카테고리 상세 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36915d9e7c19353befff44664ae7f2858ca61322","date":"2025-03-19T12:44:48+09:00","era":"A","subject":"feat: 기업FC CRUD","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/agency-fc.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fc/agency/fc-agency.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"43ccee939412f4d0720926f002b5a574a4b8a67a","date":"2025-03-19T12:26:51+09:00","era":"A","subject":"feat: board category 선택박스용 전체조회api","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70e677dad40c201650ae7e1da55766dee35bb6c3","date":"2025-03-19T12:10:23+09:00","era":"A","subject":"git merge conflict dev appmodule","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2612b177e794b8a8c35cca7be19be7b9f34f036d","date":"2025-03-19T12:07:44+09:00","era":"A","subject":"feat: 손해사정 상위 하위 카테고리 관리자 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ff91686d90b773945d61cd0a2209f32e6c209a3","date":"2025-03-19T11:51:49+09:00","era":"A","subject":"fix: board category 상세조회 쿼리수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f2332fb560299a20e29173dd88b7a04f49231ee5","date":"2025-03-19T10:54:36+09:00","era":"A","subject":"fix: 계약관리 목록조회 시 필터링값 누락","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f162f526953e84851bf2a2a1e0227ed134468f4","date":"2025-03-19T10:26:14+09:00","era":"A","subject":"fix: 상품목록 조회 시 상품타입 구분","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50862ed44301cdecf3e5aa7262617deceee19241","date":"2025-03-18T18:02:09+09:00","era":"A","subject":"fix: auth부분 일반/기업회원 구분","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"323ac0428f6d096e5acae7503754df8e82fe72e1","date":"2025-03-18T16:37:03+09:00","era":"A","subject":"feat: 기업계약관리 생성/수정 시 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb394b9e224bf2e9ae766149d4d3765c75604d20","date":"2025-03-18T15:42:05+09:00","era":"A","subject":"feat: 진단코드검색","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b9ce826407182686ff08eb69b3a80b2034d2f822","date":"2025-03-18T15:16:47+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a718599afff1062a3297edf58d1e70b23bf43861","date":"2025-03-18T15:14:59+09:00","era":"A","subject":"fix: 자동차보험 총청구비도 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c04186cf4340fcd4d624273761e0ddb36bbc0df","date":"2025-03-18T15:11:29+09:00","era":"A","subject":"chore: 로그","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"311ac1acd4f52eee51986a601dffa4bcd631fc85","date":"2025-03-18T14:47:42+09:00","era":"A","subject":"remove: mok stg 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"D","path":"mok_keyInfo_stg.dat","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"382b2d035a72e844993913b68e1f6b1d0440bb2f","date":"2025-03-18T14:44:03+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50b20ae1a5a230cf86ccb100d508299640ee3bff","date":"2025-03-18T14:43:58+09:00","era":"A","subject":"git merge conflict dev schema","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a9d7e37031368c4820b14750a194912835f242f","date":"2025-03-18T14:37:28+09:00","era":"A","subject":"feat: 손해사정 카테고리 관리자 기능 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/loss-adjustment/loss-adjustment-category/loss-adjustment-category.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"563f0134a3223ec554922c2f4f3a13385eef3bd3","date":"2025-03-17T17:35:39+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into feat/client-analyze","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"24eba61189463b137868cd6db08e3c498790653a","date":"2025-03-17T17:04:59+09:00","era":"A","subject":"Merge branch 'feat/hidden-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ed5e6e5f048b539053ab361c6862413750f36b86","date":"2025-03-17T17:03:52+09:00","era":"A","subject":"chore: PDF 다운을 위한 숨은보험금 전체 목록 response 값 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70f20053126f3abf59087913b8174cfffd58a5e3","date":"2025-03-17T15:51:11+09:00","era":"A","subject":"fix: dto expose명 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eea373e5507d295f5736b0c7fab3867331644b7d","date":"2025-03-17T15:45:38+09:00","era":"A","subject":"fix: ValidationPipe에서 상수 객체 변경으로 인해 발생하는 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/pipes/validation.pipe.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4280ef9cfd9a084a1195fbf03751bb7da99b4cb5","date":"2025-03-17T15:00:54+09:00","era":"A","subject":"chore: 진료내역(자동차보험) 분석시 총자동차진료금액도 처리되도록 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7241229d18dde9dc19c1ad30d7350586935d04fc","date":"2025-03-17T14:53:26+09:00","era":"A","subject":"feat: add validaton pipe","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/client.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/pipes/validation.pipe.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70784b8302bda1d22f75366489d5707bac989ee9","date":"2025-03-17T12:41:47+09:00","era":"A","subject":"Merge branch 'feat/client-analyze' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6f67fb8b8cf0fa609499591ec08cd4075b6268e8","date":"2025-03-17T12:40:11+09:00","era":"A","subject":"fix: 고객사 분석결과 조회 시 값이 없는 경우 빈 배열 반환","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bf64e84a55b9ae0c8da3be9ef10c612dbc49549d","date":"2025-03-17T12:17:38+09:00","era":"A","subject":"fix: 고객사용 interceptor, filter생성 및 기존 interceptor, filter수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/client.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/fliters/client-exception.filter.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/interceptors/api-response.interceptor.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/interceptors/client-response.interceptor.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80ec17d2ec66d821999f0befccbeea5333f460d5","date":"2025-03-17T11:48:53+09:00","era":"A","subject":"Merge branch 'feat/fcm-token' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c242323ba8e55f1fba1de73266569b77d49ecacb","date":"2025-03-17T11:48:07+09:00","era":"A","subject":"chore: fcm 푸시 baseUrl 오타 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"93c8d6a42173e24251c9c8a78e5afdd47c3bad63","date":"2025-03-17T11:14:16+09:00","era":"A","subject":"Merge branch 'feat/fcm-token' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"17439e9a204df820c715426983a2dc0b39da39fe","date":"2025-03-17T11:12:38+09:00","era":"A","subject":"feat: 앱에서 푸시 알림 테스트를 위해 알림 테스트 API 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e87f7e364522be12000783ecac6feab42e36a102","date":"2025-03-17T10:59:25+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb36bd3a14cdbbeb97f7da6ba9b346f5db36a907","date":"2025-03-17T10:40:55+09:00","era":"A","subject":"Merge branch 'feat/hidden-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9659e80f44e96a833a1473a8745f4002fde62706","date":"2025-03-17T10:39:18+09:00","era":"A","subject":"feat: PDF 다운로드를 위한 분석데이터 숨은보험금 탭별 전체 데이터 조회 API 작업","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da3e8e8e56c52038b58132267a7e59709dd499c0","date":"2025-03-17T10:30:32+09:00","era":"A","subject":"chore","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a203726503f65432f5d5996cec65c68307bdea1","date":"2025-03-17T10:15:14+09:00","era":"A","subject":"chore: date-fns 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e688ee44ade1cf82cd4683c9f08616382aa804e","date":"2025-03-17T10:13:00+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into feat/client-analyze","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6dfdc104886afc79dfac9ac7a179483259c2e4ee","date":"2025-03-17T10:09:58+09:00","era":"A","subject":"feat: 고객사 분석결과조회api 생성(자동차)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27cff740c70881c5764409b95a0d8f2e7aa9e290","date":"2025-03-14T16:39:40+09:00","era":"A","subject":"chore: 알림 체크 처리할수 있도록 id값 앱푸시 데이터에 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fcm/fcm.type.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e271f18605abfced06b41556ddaee222a9501d0","date":"2025-03-14T16:14:04+09:00","era":"A","subject":"feat: 알림시 fcm_token firebase 앱푸시도 진행되도록 작업","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fcm/fcm.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fcm/fcm.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/fcm/fcm.type.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bc271a8a7f92e66952b806a43ce1c85137cb8ba","date":"2025-03-14T12:43:24+09:00","era":"A","subject":"fix: 변경된 컬럼명 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"934a673f178f655f680dc7055f4e3f14b56a65c1","date":"2025-03-14T12:41:51+09:00","era":"A","subject":"fix: 진료분석api 요청값 필수값처리 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd3d8996aef0d3a93f081a339ef3922a7deec2b1","date":"2025-03-14T12:41:37+09:00","era":"A","subject":"fix: endpoint 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d3af6c7b7c7f78c8e7617afa5e20f0013427b4c5","date":"2025-03-14T11:54:49+09:00","era":"A","subject":"feat: 고객사 진료분석요청에 자동차도 포함","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4b091439096eff7e62b9e488a18a26d8e53902b","date":"2025-03-14T11:54:08+09:00","era":"A","subject":"fix: 고객사 자동차보험용 테이블 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5835da2aef103241b860966fa28bf128b38cf469","date":"2025-03-14T11:24:25+09:00","era":"A","subject":"chore: 분석결과(자동차보험) 상세 카운트 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0bda3fa5e282ea520ccab1f623224300155a1fa2","date":"2025-03-14T11:09:38+09:00","era":"A","subject":"feat: 유저 fcm 토큰 update 기능 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d311faf4106e2649d859d72a236b4a2c1d6c89a","date":"2025-03-13T17:46:54+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a9f0eee0c16bc2684b39ca7ae0fde9329603c8f","date":"2025-03-13T17:45:57+09:00","era":"A","subject":"feat: 분석데이터(자동차보험) 관리자 API 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e9098de1035098dcee05a580788f7855630592e0","date":"2025-03-13T17:31:17+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into feat/client-analyze-result","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0a0d5c9271c0f3434a87fee2049f043b8b87f0fb","date":"2025-03-13T17:27:17+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df674b87ad4d397cd8e857834460305260afbb8e","date":"2025-03-13T17:26:34+09:00","era":"A","subject":"chore: 분석 API 내부 DB 트랜잭션 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8c8fc1978d5b1615f85821ef443fa8dad36710b","date":"2025-03-13T17:14:16+09:00","era":"A","subject":"refactor: cod state값 타입화","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"edf5832042d28bebd60bbc77042e98424bb1c526","date":"2025-03-13T17:01:22+09:00","era":"A","subject":"refactor: add error constant","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/client.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1fba3ab153b07627b2ffa65af5fb4482695cbaa","date":"2025-03-13T15:43:15+09:00","era":"A","subject":"fix: 고객관리의 fc아이디 검색은 like아닌 eq (임시)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02cdff8ad5ec76a912080e963858eeed7f18a065","date":"2025-03-13T16:58:26+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f6b5f84c23b22719667af95dc85bd99baf2b6bf","date":"2025-03-13T16:57:54+09:00","era":"A","subject":"chore: 분석진료정보(자동차보험) API 오타 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e4e1c7f875758c27b7b44d3e00ed35ae9e7e16d","date":"2025-03-13T16:33:57+09:00","era":"A","subject":"feat: 고객사 분석결과조회api 생성(숨은보험-기타)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b399bf4c744f1b4ad7caf3e704d121579b153c90","date":"2025-03-13T16:32:10+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b3dd76f16a0c6510b9e7ce76cfa6223c10a8638","date":"2025-03-13T16:30:45+09:00","era":"A","subject":"chore: 분석 로직 진행중 자동차 진료정보가 없을 경우에 대한 처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"79e0d6a08ecf58a76a60780e1eb2eac2187852d0","date":"2025-03-13T16:23:07+09:00","era":"A","subject":"feat: 고객사 분석결과조회api 생성(숨은보험-치아)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b39baa4828271225309b33a607d8f1160c0f246","date":"2025-03-13T16:02:11+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c2891261a0a36368e0aa156f4cacead129cfdcd1","date":"2025-03-13T16:01:39+09:00","era":"A","subject":"chore: 진료정보(자동차보험) response 데이터 길이 확인","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77762edc750a7b360a1a56bcaa42f49bec41d2ce","date":"2025-03-13T15:57:35+09:00","era":"A","subject":"feat: 고객사 분석결과조회api 생성(숨은보험-수술)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"edafea3eb33f7d62aa33556c57e202072d2ac15b","date":"2025-03-13T15:49:04+09:00","era":"A","subject":"Merge branch 'feat/car-insurance' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2203332ee77b715c1ea626a76b8ccfb58ab05155","date":"2025-03-13T15:47:23+09:00","era":"A","subject":"chore:진료기록(자동차보험) 데이터가 있을 때만 저장 로직 타도록 수정 작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c1a01975e090ff85545a1f28e00e8db28faf6c50","date":"2025-03-13T15:43:15+09:00","era":"A","subject":"fix: 고객관리의 fc아이디 검색은 like아닌 eq (임시)","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b423292fa13ef62ba1ef4c20d02ea341f66a8415","date":"2025-03-13T15:11:54+09:00","era":"A","subject":"Merge branch 'dev' into feat/client-analyze-result","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f9dc03613f996ec24b5fae65ab4fa3e419e4d493","date":"2025-03-13T15:10:33+09:00","era":"A","subject":"fix: 조건절 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5044977184e54ec47b5cebac7ff84848584bb5b8","date":"2025-03-13T15:00:53+09:00","era":"A","subject":"chore schema primarykey 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"29d5de5445bfe2d87c34e86be95adebc7982757d","date":"2025-03-13T14:58:28+09:00","era":"A","subject":"feat: 고객사 분석결과조회api 생성(숨은보험-진단)","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2acd51a2049e64561f59727c5a87bcb5ea1b99f5","date":"2025-03-13T14:48:39+09:00","era":"A","subject":"chore: schema pull","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f326cddbc3fc675e7cc8b88c5597a544b9eee54","date":"2025-03-13T14:37:46+09:00","era":"A","subject":"chore 분석(자동차보험) drizzle 스키마 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f6453890bb2d97b3764c2d65be9585079a095b34","date":"2025-03-13T14:32:36+09:00","era":"A","subject":"dev merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"623e706bec783f1433d859ac7983c4b330fc370a","date":"2025-03-13T14:29:04+09:00","era":"A","subject":"feat: 자동차 보험 분석 완료 유저 기본, 상세 조회 API 작업","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"A","path":"apps/api/src/modules/analyze/analyze-car-basic.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/analyze/analyze-car-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a11e8e69c8f8c1c40c54c8974d117ce53978183","date":"2025-03-13T09:43:01+09:00","era":"A","subject":"Merge pull request #6 from rsteam-organization/feat/client-auth","body":"고객사 API 인증가드 생성","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac30e7b0f8412868125267dd7aea8a2c487673d4","date":"2025-03-13T09:41:46+09:00","era":"A","subject":"Merge pull request #8 from rsteam-organization/feat/client-analyze","body":"고객사 진료정보분석요청 API 생성","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d445dbd48ac594e43b2fb979a710adf13189639c","date":"2025-03-13T09:27:45+09:00","era":"A","subject":"comment: 주석수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"955930a6f5d9a9b57d01f6fd6df0145138fda7b3","date":"2025-03-13T09:21:51+09:00","era":"A","subject":"Merge branch 'dev' into feat/client-analyze","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75c443ff349da1998f0c008bb4fc7ffbf5ab3def","date":"2025-03-13T09:14:48+09:00","era":"A","subject":"dev merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"112ef0a8d3fafbfb5bbca047640f4beed37a4f44","date":"2025-03-12T18:59:30+09:00","era":"A","subject":"Merge pull request #7 from rsteam-organization/feat/addPrimaryKey","body":"feat: 디비 pull할 때 primaryKey 자동지정 되도록","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74c636013cf2d51d46fb0b5ddbf143f9623e95ea","date":"2025-03-12T18:08:02+09:00","era":"A","subject":"feat: 디비 pull할 때 primaryKey 자동지정 되도록","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"A","path":"scripts/schemaPrimaryKeyUpdater.mjs","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c576ab1666a5c21ed2d1856d8f91872f5ed8eb81","date":"2025-03-12T17:54:25+09:00","era":"A","subject":"feat: client 분석요청api 구현 (리팩토링X)","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e9a56ba78adad18cff95c28c7e6eb46c71e944d","date":"2025-03-12T16:52:14+09:00","era":"A","subject":"feat: 분석요청 API 요청시 자동차보험 분석도 되도록 기능 추가 작업","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a0ef9c9188c9ec0d38989f8ff3ed92af315575d","date":"2025-03-12T11:51:13+09:00","era":"A","subject":"fix: agency 정보 임시 주석처리한 것 해제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3ead5d8eff53074efe928e8b97589cf31ee0ee78","date":"2025-03-12T11:32:10+09:00","era":"A","subject":"fix: 대리점명 유저관리에도 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"afa7472fa1530f32100840a4c7e57a0c23c60828","date":"2025-03-12T11:32:20+09:00","era":"A","subject":"fix: codef 분석axios시간늘림","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e936509e4b14cfe6fa9f13d9eea9d5687ceada4","date":"2025-03-12T11:32:10+09:00","era":"A","subject":"fix: 대리점명 유저관리에도 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5a03621007e165611c88c0104b4b79461446cac","date":"2025-03-12T11:29:41+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"473dbfcd0e527171a1138113eeb3582bf290f9ba","date":"2025-03-12T11:29:22+09:00","era":"A","subject":"feat: console.log 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0278342997aea8898b7c8334c7f063845fe480e8","date":"2025-03-12T11:12:57+09:00","era":"A","subject":"fix: 동기를 비동기로 설정하고있던 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"624bd107021699a9babd1fb9d33e77368ec48aef","date":"2025-03-12T10:19:06+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff35c088d66f2b52d1bffd960546808641dbbf20","date":"2025-03-12T10:18:58+09:00","era":"A","subject":"feat: add console.log","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b800ee7968f706fe95543b822d777063d3b4a84","date":"2025-03-11T15:33:26+09:00","era":"A","subject":"feat: client 초기모듈 생성","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/client/client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfde2bbee62c0b97ea6ca65bd0cc628000aa5c3a","date":"2025-03-11T15:33:16+09:00","era":"A","subject":"chore: client tables db pull","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a94e864de599452e686aefcef120c38ce327810c","date":"2025-03-11T15:13:12+09:00","era":"A","subject":"Merge branch 'dev' into feat/client-auth","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"013af97a3805ee15c49d021ef907f1170c4920a1","date":"2025-03-11T15:07:37+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08e1fc26c194eb7fa02c8243ec268e1a7f58276c","date":"2025-03-11T15:07:01+09:00","era":"A","subject":"chore: swagger 인증단계 주석 해제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/swagger.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6ad230c296078a8ed5043bcc472a2a0fa4f301d","date":"2025-03-11T15:07:01+09:00","era":"A","subject":"chore: swagger 인증단계 주석 해제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/swagger.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0646d02e4dde7ee3edac7f7181a501bac5f110ee","date":"2025-03-11T14:59:56+09:00","era":"A","subject":"fix: agency 정보 임시 주석처리한 것 해제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"473ce37f74766ff5a08381e89b981fec5ef92838","date":"2025-03-11T14:58:25+09:00","era":"A","subject":"Merge branch 'stg' into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3fef3445dc0536c1eb7884cf051d397fea4a2d3d","date":"2025-03-11T14:57:29+09:00","era":"A","subject":"fix: agency 정보 임시 주석처리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ab2a711b0a47c150f41c7f9f4895d19e2ad1b02","date":"2025-03-11T14:55:36+09:00","era":"A","subject":"fix: 각 fc대리점명 항목 및 검색조건 추가(stg병합)","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"919c179cf0a3a43b268fc15e9d68e1cfaa30ca91","date":"2025-03-11T14:47:35+09:00","era":"A","subject":"fix: 각 fc대리점명 항목 및 검색조건 추가","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36ea37f64445ed4433515b9e75931c5273babe16","date":"2025-03-11T12:40:23+09:00","era":"A","subject":"feat: 고객사 인증단계 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"A","path":"apps/api/src/constants/client.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/client/auth.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3fb292ba55a77c01e584e90907e23ba23bca727d","date":"2025-03-11T12:40:07+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into feat/client","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c3ce7e470b4627c797f36f0e06edd6c92e3d86c","date":"2025-03-10T18:04:32+09:00","era":"A","subject":"fix: 분석결과 조회 시 필요없는 유효성검사 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdbbaf34787901a82cfc1934ee5ff19754db4801","date":"2025-03-10T17:11:18+09:00","era":"A","subject":"feat: 자동차 진료정보 조회 CODEF API 연동 생성","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9f97231a9befc1ce4690316fbf8d9b2d1bdba07f","date":"2025-03-10T16:21:25+09:00","era":"A","subject":"fix: 기업 계약정보 응답값 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8bc6b56587e786b15ba34a67a811dfa234bc9f4f","date":"2025-03-10T15:27:32+09:00","era":"A","subject":"fix: 기업 계약정보 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb4eaf443b2c985a5b144389e8d4ca7426c80038","date":"2025-03-10T12:42:45+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"151f0fbc47687d0155867fbf0abd114bbb04a39a","date":"2025-03-10T12:42:34+09:00","era":"A","subject":"fix: 기업 상세조회 시 계약종료여부값 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"87477d65cd4500652c435a020714cb8112763f18","date":"2025-03-10T11:12:20+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into stg","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7c3ff2115d1e8865d78be4a6c93729ce0fa1e97","date":"2025-03-10T11:12:12+09:00","era":"A","subject":"test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e9fd5f507463e14b2b9c61141f791ca62c7915b","date":"2025-03-10T11:02:17+09:00","era":"A","subject":"feat: stg dat 파일 생성","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"mok_keyInfo_stg.dat","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ce0173049d5ea329ebf7b62a739bb279796339b","date":"2025-03-10T10:26:32+09:00","era":"A","subject":"feat: cors test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9fa2ee88a744f3b5fe5a00dcd7b429423fb160ad","date":"2025-03-10T10:13:08+09:00","era":"A","subject":"refactor: auth 폴더구조 변경","body":"","body_present":false,"is_merge":false,"file_count":48,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/contract/contract.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/auth/admin/auth.controller.ts","old_path":"apps/api/src/modules/auth/auth-admin.controller.ts","score":86},{"status":"R","path":"apps/api/src/modules/auth/admin/auth.dto.ts","old_path":"apps/api/src/modules/auth/auth-admin.dto.ts","score":70},{"status":"R","path":"apps/api/src/modules/auth/admin/auth.service.ts","old_path":"apps/api/src/modules/auth/auth-admin.service.ts","score":88},{"status":"R","path":"apps/api/src/modules/auth/admin/jwt.guard.ts","old_path":"apps/api/src/modules/auth/admin-jwt.guard.ts","score":96},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/auth/user/auth.controller.ts","old_path":"apps/api/src/modules/auth/auth.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/user/auth.dto.ts","old_path":"apps/api/src/modules/auth/auth.dto.ts","score":98},{"status":"R","path":"apps/api/src/modules/auth/user/auth.service.ts","old_path":"apps/api/src/modules/auth/auth.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/auth/user/jwt.guard.ts","old_path":"apps/api/src/modules/auth/jwt.guard.ts","score":100},{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f7c98b9b19c24f051c1d0e541a471382e8d4763f","date":"2025-03-07T18:35:04+09:00","era":"A","subject":"Merge pull request #5 from rsteam-organization/feat/agency-crud","body":"Feat/agency crud 생성","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19c16dffe3d64f23763cb28eb7e6d4d9434fc734","date":"2025-03-07T18:18:49+09:00","era":"A","subject":"feat: 계약종료여부도 반환하도록","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0599e862d68aa40ff0fe72925956b8dfcf77e1c6","date":"2025-03-07T17:53:33+09:00","era":"A","subject":"feat: 기업 계약목록 등록/수정 시 사용될 선택박스용 전체조회api 생성","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"671341667a8b4ab471321a8cb68748095536fb9a","date":"2025-03-07T17:44:24+09:00","era":"A","subject":"feat: 기업계약정보 crud","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/contract/contract.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"900e91f1dadd6fa9fa7d82ad0016473dd3e02eaa","date":"2025-03-07T14:25:06+09:00","era":"A","subject":"Merge pull request #4 from rsteam-organization/feat/agency","body":"기업 테이블 추가 및 로그인 시 FC구분","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df0e5198e6addf1327ca61a80274734bb19c8e99","date":"2025-03-07T12:26:01+09:00","era":"A","subject":"fix: 기업 모듈 폴더위치 변경","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/agency/agency/agency-admin.controller.ts","old_path":"apps/api/src/modules/agency/agency-admin.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/agency/agency/agency-admin.dto.ts","old_path":"apps/api/src/modules/agency/agency-admin.dto.ts","score":98},{"status":"R","path":"apps/api/src/modules/agency/agency/agency-admin.service.ts","old_path":"apps/api/src/modules/agency/agency-admin.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.controller.ts","old_path":"apps/api/src/modules/agency/agency.controller.ts","score":83},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.dto.ts","old_path":"apps/api/src/modules/agency/agency.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.entity.ts","old_path":"apps/api/src/modules/agency/agency.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.module.ts","old_path":"apps/api/src/modules/agency/agency.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.repository.ts","old_path":"apps/api/src/modules/agency/agency.repository.ts","score":100},{"status":"R","path":"apps/api/src/modules/agency/agency/agency.service.ts","old_path":"apps/api/src/modules/agency/agency.service.ts","score":100},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/swagger.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d9cb08206b508f24be0747b95f830bfc0bca890c","date":"2025-03-07T12:09:25+09:00","era":"A","subject":"fix: 관리자 특정 메뉴 기업명 검색조건 추가","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb91e88ae2f7265e85093de5cbd4abd6e046c992","date":"2025-03-06T17:28:23+09:00","era":"A","subject":"feat: 기업 crud 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30d33f1188e3c5506c8de27bb55df2fc6005dc9a","date":"2025-03-06T16:59:13+09:00","era":"A","subject":"fix: 로그인 시 반환값에 FC구분값 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f8fd06d87fbe9e793f35b01742d7f404f6b0890e","date":"2025-03-06T16:56:59+09:00","era":"A","subject":"fix: 로그인 시 FC구분값 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b93e901b988d1a0569da9ed1711050fd64e2968a","date":"2025-03-06T12:39:34+09:00","era":"A","subject":"fix: 명칭 변경 (대리점 -> 기업)","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee9268c838e7137d5b422425ed78e10b81caa2e8","date":"2025-03-06T12:39:03+09:00","era":"A","subject":"feat: 기업 초기모듈 생성","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"A","path":"apps/api/src/modules/agency/agency-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency-admin.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/agency/agency.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"254561f9f9da3efc13c6a4419df31d8076d0aa7e","date":"2025-03-06T11:05:03+09:00","era":"A","subject":"Merge pull request #3 from rsteam-organization/refactor/method-name","body":"메소드명 변경","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccbfc68e87f8457f3a9fddae72240dfb7cb4f6da","date":"2025-03-05T15:13:17+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into refactor/method-name","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d9cf48cade98ddef42dd48ceb8ec749d4404f331","date":"2025-02-26T15:04:22+09:00","era":"A","subject":"fix: 실수로 저장못함","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b43eab2a1829c1d2feb22b7472e77327dea8c2c4","date":"2025-02-26T15:02:00+09:00","era":"A","subject":"fix: 리디렉션 시 origin 까지 선언","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6fcfa99f6b803b8832ad364ef296bd01f949647e","date":"2025-02-26T12:41:12+09:00","era":"A","subject":"feat: 본인인증 결과 수신, path만 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9fb09cfed6d1299dc24ba5b842a23a7af43a41d1","date":"2025-02-24T18:09:12+09:00","era":"A","subject":"feat: 템플릿 코드 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bb8c24e49ddda322cd95e83ed67d2bb4e84bfdfb","date":"2025-02-19T12:03:29+09:00","era":"A","subject":"Merge pull request #1 from rsteam-organization/refactor/whereClause","body":"whereClause repository로 분리","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"619ae898624016423a0f4af7100d47b749832143","date":"2025-02-19T10:32:25+09:00","era":"A","subject":"refactor: analyze where builder 분리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/modules/analyze/analyze-where.builder.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3006118eabfd431903caf774f73f835581b8747f","date":"2025-02-18T14:39:04+09:00","era":"A","subject":"refactor: board service에서 변수명에 data가 들어간 것들 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e5467198538e3e6ae72322a60c0d6d673d7d774f","date":"2025-02-18T14:38:35+09:00","era":"A","subject":"refactor: 메소드명에 data포함된 것 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aeaaf079c86fd66805b13ce1c375e8200ad614ee","date":"2025-02-18T14:30:47+09:00","era":"A","subject":"refactor: 변수명에 data 삭제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/separator/src/separator.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"697bb24a0b853448638d5f17b2ad88e57cd53455","date":"2025-02-18T12:34:26+09:00","era":"A","subject":"feat: add separator library","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/separator/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/separator/src/separator.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/separator/src/separator.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/separator/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b7998fe8d82716361a06a67649554a05ecedf95e","date":"2025-02-18T10:59:18+09:00","era":"A","subject":"Merge pull request #2 from rsteam-organization/refactor/lodash","body":"lodash 사용 최소화","body_present":true,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6242c7e5ac9b7d269ca02611a31bb0ec85ce310","date":"2025-02-18T09:45:00+09:00","era":"A","subject":"refactor: 메소드명 기능에 맞게 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae108d765b84d85ae18e1f0bb7a49868c4a3751a","date":"2025-02-18T09:41:26+09:00","era":"A","subject":"refactor: banner 생성 시 파일 존재유무 검사 조건 방식 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dec7b04de2a2af0047266e74057e5dda4ac4273d","date":"2025-02-18T09:41:00+09:00","era":"A","subject":"refactor: toss 에러 시 에러메시지 핸들링 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/toss/src/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c1942a8a85b58b0d0049b85d8dbe448034284c70","date":"2025-02-18T09:08:18+09:00","era":"A","subject":"refactor: where절 repository로 분리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9f27d8d5cf623b35d3798f9fe4a50916239d3ff9","date":"2025-02-06T09:31:14+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"680521d30c3056b8e3441fe0e3ec582147be7e28","date":"2025-02-05T17:03:02+09:00","era":"A","subject":"chore(): member 소속값 관리자 항목추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"854db5255cf7238cb3b6eb64b69a94b67be758a7","date":"2025-01-24T11:59:22+09:00","era":"A","subject":"fix: 청구서 좌표 수정시 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9f69d997ea2a6ff3b201fdee561d754a254b44b","date":"2025-01-24T11:51:23+09:00","era":"A","subject":"fix: fix values empty error","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dfa89e03c825cd2e39cfa0eaebc19790a4e5fc6b","date":"2025-01-24T11:32:21+09:00","era":"A","subject":"feat: 보험사 노출여부 구현","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fcba0ad17d2f0fcaa9adbfcb9cc4a86a436452c2","date":"2025-01-24T09:17:40+09:00","era":"A","subject":"feat(): fc 목록,상세 회원탈퇴여부 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"98e209595b02d6cfb63f852fcbe6f39a5ca705c9","date":"2025-01-23T10:55:58+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"790a31c902797310f2b94679e3cb9a41d0571ddf","date":"2025-01-23T10:47:06+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5ccfdeca49dd7255744c93a10ab1a0210c50117f","date":"2025-01-23T10:45:47+09:00","era":"A","subject":"chore(): 기본대조 엑셀업로드 추가 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36584e02fb62e8cd7379dc70ed2ed4e266f82b69","date":"2025-01-23T10:31:38+09:00","era":"A","subject":"chore():대조세부업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef0f564f99f1f70b0cb02387110a76bd5c9cc278","date":"2025-01-23T10:12:30+09:00","era":"A","subject":"chore(): 기본대조 업로드 기능 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f54c34cf832450de4e031a4a6de7c0bb7911f5dd","date":"2025-01-22T14:33:56+09:00","era":"A","subject":"feat: 청구서 생성시 존재여부 검사","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"34ea83b6663404c432e9631052dd555c4c6507f6","date":"2025-01-22T12:24:48+09:00","era":"A","subject":"feat: 캐시무효화","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"A","path":"libs/cloudfront/cfn.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/cloudfront/cfn.service.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb03371945e11f17475cbe6413b339bb5bfde0ea","date":"2025-01-22T10:53:22+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba4a599ff3800434e64b553610bf6d4d2391cc51","date":"2025-01-22T10:53:17+09:00","era":"A","subject":"fix: insSort 타입변환","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c638169fba49b6e8a0b474adacee5adc83445e49","date":"2025-01-21T17:36:39+09:00","era":"A","subject":"chore(): codef 에러코드로 반환변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bbccc5253e27350e515c9f76b1d2d278fd3d5d55","date":"2025-01-21T11:51:07+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d090ecb0ddba9167ab052c1dd753cc8b79b64a73","date":"2025-01-21T11:50:53+09:00","era":"A","subject":"chore(): 분석상태 업데이트 추가인증요청중 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"975a722710def5713cf8f37b9d02e1f458253ef9","date":"2025-01-21T11:02:53+09:00","era":"A","subject":"feat: 보험사 정렬 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1bc04da05736b18b7bb571bca708ee0e7b7f9348","date":"2025-01-20T17:07:58+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b4d558bd239edda346db929979c4d956b9ba519","date":"2025-01-20T17:07:33+09:00","era":"A","subject":"Merge branch 'prod' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fea3415ab832855d29f78c4a6d21c876ed6ab0b3","date":"2025-01-20T17:06:13+09:00","era":"A","subject":"chore(): 심평원인증 핸들링처리한 logger 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ab91b7013f1e070feb5d8af69e2e750749e34936","date":"2025-01-20T16:06:40+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into prod","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1764ed8f3e784232ccbef5b96c1bf3d536b6b97","date":"2025-01-20T16:05:03+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9cae260e46cec67ec626f68afd561b5c6d2f6a52","date":"2025-01-20T16:04:52+09:00","era":"A","subject":"chore(): 심평원 인증요청 시의 logger 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30d847d4a818aaf9462c54f07b7c283560841185","date":"2025-01-20T15:50:20+09:00","era":"A","subject":"Merge branch 'prod' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b9b5a1b20b56ecf8c1007c829f6f44b09164ff29","date":"2025-01-20T15:49:30+09:00","era":"A","subject":"feat: 청구서 상세조회 관리자 API 구현","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin-jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08a25b61b25a5260000234deb3cce705d5c776ec","date":"2025-01-20T11:59:49+09:00","era":"A","subject":"chore: 격리수준 최하 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3af469173df32bfbfed1c8aa3cc619a8ad54dab","date":"2025-01-20T11:25:15+09:00","era":"A","subject":"chore: 병렬사용테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0911eb2a65f33ced8095006bbab2742167947ea2","date":"2025-01-20T11:15:32+09:00","era":"A","subject":"feat: add console.time to analyze","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0be13dfa0249e244aaf9e19a5ef0202e9634cbd1","date":"2025-01-20T10:38:10+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"381d09b5eea78b58d2873deb4ec4d06ac398b367","date":"2025-01-20T10:33:05+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c46259d614ab9032f32976c3433be5e839293639","date":"2025-01-20T10:32:45+09:00","era":"A","subject":"chore(): 분석상태업데이트 권한 제외","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0d33381eddf35b5c921c9a8fffa0b68b79bdef79","date":"2025-01-20T10:22:09+09:00","era":"A","subject":"feat: 분석 시 트랜잭션 격리수준 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a122c30f0c84fa27f9a42e087dd75d192157bc93","date":"2025-01-20T10:16:37+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b288ad6b01969725e18eb1b9b83de2d48def5d3","date":"2025-01-20T10:16:26+09:00","era":"A","subject":"chore: 부하테스트 파일 생성","body":"","body_present":false,"is_merge":false,"file_count":0,"files":[],"excluded_only":true,"large_commit":false,"structural_event":false}
{"sha":"056d0155b87f8c2d88cfc8e254a27612b7973ec0","date":"2025-01-20T09:29:11+09:00","era":"A","subject":"chore(): 심평원 인증확인 console log 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ac490d5ab92e35d7e14edaae3afb29ffd5091c94","date":"2025-01-17T15:54:14+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76560a32ecaa0817b1d35f7825dce4b4bac2ccc8","date":"2025-01-17T15:54:02+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a4ec352093b292f48391349a5761cefc006caef","date":"2025-01-17T14:41:45+09:00","era":"A","subject":"feat: return url 환경변수화","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a47fea6532656afdfcc2e1e80444dbc83190e3b3","date":"2025-01-17T12:43:17+09:00","era":"A","subject":"fix: 도커파일 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6769494a97455eab2a4dd6648217bdd75405a76","date":"2025-01-17T12:36:49+09:00","era":"A","subject":"chore: 운영용 mok info 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"R","path":"mok_keyInfo_dev.dat","old_path":"mok_keyInfo.dat","score":100},{"status":"A","path":"mok_keyInfo_prod.dat","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"484582fd347f0e072873543ba2db6386d92ceb3e","date":"2025-01-17T12:36:40+09:00","era":"A","subject":"chore: 운영용 mok info 추가","body":"","body_present":false,"is_merge":false,"file_count":0,"files":[],"excluded_only":true,"large_commit":false,"structural_event":false}
{"sha":"38cd0206c2bc8e1d0e0182d3fc836381256303db","date":"2025-01-17T11:43:19+09:00","era":"A","subject":"chore(): 상품삭제 에러코드 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.utill.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/mysql-error.enum.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bf86cdc06cbc8a8c8b277cfa3282c402e2a6a05c","date":"2025-01-17T09:34:40+09:00","era":"A","subject":"chore(): 배너, 팝업 정렬조건 추가","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b0c51dbe78f5c6d4dd9e6da655e79b72fd5fb10a","date":"2025-01-16T18:03:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40c8587a3f2a8c9f2f106782834bf5816953dac8","date":"2025-01-16T11:37:45+09:00","era":"A","subject":"feat(): 게시판 정렬조건 유저, 관리자 변경","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae4847589b98a0ab21e642c63d2179ef184ca4c2","date":"2025-01-16T10:41:10+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a0eb8be9421468bc87f9705f059382d9680f2d45","date":"2025-01-16T10:07:18+09:00","era":"A","subject":"feat(): 미확인 알람수량","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53d9e7904e104462dac0d175b5f56445ba92cb05","date":"2025-01-15T15:14:39+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"022ef676487e609378240de4e1537da4d87b557c","date":"2025-01-15T11:28:46+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1703c016a357989528b498ee816e561bd8e026cd","date":"2025-01-15T10:59:13+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ceaa7a3071dd45cce4da33a7a167af261132686","date":"2025-01-15T10:46:19+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffaca9b8ce6669e6111fed1a958f8733311b0569","date":"2025-01-15T10:43:16+09:00","era":"A","subject":"chore(): 회원가입반환값추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2e24e78d1b7b1d69de046bdb164ce02f8d75b93","date":"2025-01-15T10:33:20+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6f5cf3d70c442f1d41e85986ddf708328c0dc5b0","date":"2025-01-15T09:57:48+09:00","era":"A","subject":"탈퇴후 재가입자에 대한 무료체험부여여부 분기처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ecad8947fdd2f34e1560dce56d1b56078858af7","date":"2025-01-15T09:34:28+09:00","era":"A","subject":"chore():상품등록 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"83836ef497a887b7df4ae5dc18623331dbe9b214","date":"2025-01-14T17:55:17+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b33b735e13b72c4d431025ec0bebfbf9fe333f5","date":"2025-01-14T17:50:24+09:00","era":"A","subject":"feat: 탈퇴 시 전화번호 유지, 탈퇴여부 활성화, 탈퇴일시 업데이트","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd133302a3b36ca51190ade97dc5c1b8fdf2d4ba","date":"2025-01-14T16:45:01+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"42a2b37def185e77c703de7e5e3f76146659456f","date":"2025-01-14T15:41:22+09:00","era":"A","subject":"chore(): 주석삭제","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7efb5087fb055090ecaf37a5a02344e185dcfad6","date":"2025-01-14T10:51:28+09:00","era":"A","subject":"feat() 임시데이터 삭제, 해지처리 스케줄러 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6d5da08f7e1056cef8ae3ba08d5bbdfc02816ce3","date":"2025-01-14T10:20:36+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"54ce22c4c8fc30aef79ff0e9e7f27f5a354d7922","date":"2025-01-14T09:55:13+09:00","era":"A","subject":"feat(): 게시글 답변여부 처리","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ca2416bb7c3eee9e84bc41c5d226413dfa26e06f","date":"2025-01-14T09:34:52+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cc74c907311805e23228a85685e73c38a21d2b4d","date":"2025-01-13T15:56:37+09:00","era":"A","subject":"chore(): 결제취소 유저, 관리자 분기처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7605fde3275cb3514f9604b4527e8be57c9d8ac4","date":"2025-01-13T15:53:23+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e3ea74b8f2854815961e074de37172dcef6ed5d0","date":"2025-01-13T12:14:37+09:00","era":"A","subject":"feat(): fc 목록상세 체험이용기간 function으로수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9e13ca377b563cd590ce0ca7f7b4e49787d1cead","date":"2025-01-13T12:00:27+09:00","era":"A","subject":"chore():","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89ab1c5f994bc9b10698a10b37e1b5284e4ad3ad","date":"2025-01-13T11:57:07+09:00","era":"A","subject":"chore","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c514d67a8c989144240e35a56b68c19014c2617c","date":"2025-01-13T10:48:47+09:00","era":"A","subject":"feat():회원가입시 무료체험가입 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"738207198c5c036ee4b336de3b4ed6ee7e1e815a","date":"2025-01-13T10:30:20+09:00","era":"A","subject":"feat(): 관리자 fc목록, 상세 체험구독기간 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2b5b8d5abfca15f8111573bde71675c8b67ae0f","date":"2025-01-10T18:25:00+09:00","era":"A","subject":"fix: add scheduler to dockerfile","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"928968986f88cfd03d0f0070b950e95b51b7df1b","date":"2025-01-10T18:20:59+09:00","era":"A","subject":"chore: test logger","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c2404496b273559af85093d6135a840f5fc5325","date":"2025-01-10T18:13:28+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"44418376fecf45e399588bb36e74d8016ce43084","date":"2025-01-10T18:11:40+09:00","era":"A","subject":"chore: test logger","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fecdccaf440b6814c6709627fff9a23b9b56ff8","date":"2025-01-10T17:50:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fbf5b09087a5c2c143ed12b4fa06d346914fc49","date":"2025-01-10T17:49:56+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"938eb55e748e8f31d07c424dba6bf07c7729debe","date":"2025-01-10T17:20:29+09:00","era":"A","subject":"chore: test logger","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee57185e60e1ee6d6f296dcf0caec8dd097094f8","date":"2025-01-10T17:19:10+09:00","era":"A","subject":"chore: test logger","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1aecefe418417cd6edfb237d3d5fa13a9d956195","date":"2025-01-10T17:12:33+09:00","era":"A","subject":"chore: test logger","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff57382699cee23ce2c0d1dfbd4e11442259903f","date":"2025-01-10T16:49:53+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ee30e19aa7e21f8e9be96427d9519b9aa1569e4","date":"2025-01-10T16:49:40+09:00","era":"A","subject":"feat: 보험사별 청구서 조회 기능 추가","body":"- `InvoiceController`에 보험사별 청구서 조회 엔드포인트 추가\n- `GetInvoiceByInsurerResponse` DTO 추가\n- `InvoiceRepository`에 보험사별 청구서 조회 쿼리 수정\n- `InvoiceService`에 `getInvoiceByInsurer` 메서드 추가","body_present":true,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f747f7d7e25b523e7edacaba62a01c760e2afa41","date":"2025-01-10T15:54:46+09:00","era":"A","subject":"feat(): 체험상품 관리자 구독, 주문내역 제외","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cce10b0054af1d8e63f1060fb4d74a5e9c8dfd89","date":"2025-01-10T15:48:55+09:00","era":"A","subject":"feat: 전체 청구서 조회 기능 추가","body":"- AdminInvoiceController에 getAllInvoiceList 메서드 추가\n- AdminInvoiceService에 getAllInvoice 메서드 추가\n- InvoiceRepository에 findAllInvoiceList 메서드 추가","body_present":true,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"781e45ee0c09afb68825c331b7e86230798af46f","date":"2025-01-10T15:20:16+09:00","era":"A","subject":"feat: 청구서 템플릿 수정 기능 추가","body":"- 청구서 템플릿 수정 API 엔드포인트 추가 (/invoice/:insId)\n- 보험사 정보, PDF 파일, 좌표 정보 수정 기능 구현\n- S3 파일 복사 및 삭제 기능 추가\n- 보험사 코드 변경 시 S3 파일명 자동 변경\n\n관련 변경사항:\n- UpdateInvoiceDto 추가 (PartialType 활용)\n- coordinates Transform 로직 개선\n- S3Service에 copy, delete 메소드 추가\n- InvoiceRepository에 findInsurerByInsId, updateInvoice 메소드 추가","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f2c0e2af6410f56ac404b38cd13ed0c672d35e0a","date":"2025-01-10T14:52:42+09:00","era":"A","subject":"feat(): 유저 결제내역 체험권 제외","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b79b1a7602c22bd446c987adfb822e42469dd28","date":"2025-01-10T14:22:21+09:00","era":"A","subject":"feat: 청구서 템플릿 등록 기능 구현","body":"- 청구서 PDF 파일 업로드 및 좌표 정보 저장 기능 추가\n- 파일 업로드 시 PDF 타입 검증 추가\n- S3 업로드 시 동적 키 지정 기능 추가\n- 보험사 및 청구서 좌표 정보 DB 저장 로직 구현","body_present":true,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e75b2eead586d221dfd02c0a19a699fbd53eec23","date":"2025-01-10T12:39:23+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6946a0f7702e0de31d8d2ca0a6f4efcd3428be7","date":"2025-01-10T12:17:05+09:00","era":"A","subject":"feat(): db order 주문상품타입 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6dfc9fd3b50cb4fff4bb988b6e87a2019f410ea8","date":"2025-01-10T11:36:52+09:00","era":"A","subject":"feat: 관리자 보험사 삭제 API 추가","body":"- 관리자가 보험사를 삭제할 수 있는 API 엔드포인트 추가\n- DELETE /admin/invoices 엔드포인트 구현\n- DeleteInsurersDto를 통해 삭제할 보험사 ID 배열 검증\n- 보험사 삭제 기능 관련 서비스 및 레포지토리 메서드 구현","body_present":true,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9d9bce15a9265b72a1975ca3186f471d8c08185d","date":"2025-01-10T11:30:29+09:00","era":"A","subject":"feat: 보험사 관리자 API 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/invoice/invoice-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/invoice/invoice-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/invoice/invoice-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ba77d9d93149544a141dcb2fca64408106e81c7","date":"2025-01-10T11:19:01+09:00","era":"A","subject":"feat(): db payment method 추가","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2220b5e80771dcadb21ab80b68107c60030f1837","date":"2025-01-09T18:00:18+09:00","era":"A","subject":"feat(): 무료구독체험권 1차","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c32452ad510cacd517296aa8b28eec1c6702f86","date":"2025-01-09T15:35:02+09:00","era":"A","subject":"chore(): product db 컬럼추가","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"82ec283b21551a5498cedbcf13d2e627cd79d683","date":"2025-01-09T14:24:13+09:00","era":"A","subject":"chore","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dca8c8e6162534d8283e1bc39e3aec8336106c91","date":"2025-01-09T11:49:34+09:00","era":"A","subject":"feat(): 관리자 통계조회","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e69e3dc693fccfc7c6d39d52a718425ff7f50065","date":"2025-01-09T09:49:30+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2736113a0f4f17a533cf02a1c2aab8d9c0dd94e7","date":"2025-01-09T09:28:31+09:00","era":"A","subject":"chore(): banner translate 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffc25f22e872e666d0944429e127c61791350de7","date":"2025-01-08T18:05:41+09:00","era":"A","subject":"chore(): 통계조회 1차","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"af44237e5c37505f84f080ac24684e148cd06ed2","date":"2025-01-08T16:02:29+09:00","era":"A","subject":"chore(): state 및 type 스웨거 반환타입 추가","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d192c60b7ce56909ac8f044a472f4dbb1c486e25","date":"2025-01-08T15:54:35+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"57fa79e24b01241fc203570066672714a87cd4e8","date":"2025-01-08T15:47:54+09:00","era":"A","subject":"chore(): 배너 위치 타입 추가","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"D","path":"apps/api/src/modules/_sample/sample.controller.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/_sample/sample.dto.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/_sample/sample.entity.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/_sample/sample.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/_sample/sample.repository.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/_sample/sample.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a77f949a7094971d7a64d914920023328831fc2","date":"2025-01-08T11:32:10+09:00","era":"A","subject":"feat(): 진료정보 삭제 스케줄러 yml 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"31817ea98546b1d4570e9f8a94f6efcaa005d739","date":"2025-01-08T11:25:56+09:00","era":"A","subject":"chroe()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"358e15568ebfce0587e7c5682d80186812e363eb","date":"2025-01-08T11:01:18+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"615140451fdb7aa08c120e039ab93b989d3594f0","date":"2025-01-08T10:47:25+09:00","era":"A","subject":"feat(): 알림톡발송여부 스케줄러 yml 파일 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26a988abfc0afadc9fc71ef22a00e1241a025c0a","date":"2025-01-08T10:24:28+09:00","era":"A","subject":"chore(): 팝업 editor이미지 업로드 반환값추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/schedules/alimtalk-status.schedule.ts","old_path":"apps/api/src/schedules/aligo-status.schedule.ts","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"659d8065e2fdcf75150ef08ed15a980e2f06add2","date":"2025-01-08T09:20:51+09:00","era":"A","subject":"feat(): 게시판 edtitor  이미지 업로드 반환값","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c529d4743f4c3db221588a86d99f31500c1b2fb","date":"2025-01-08T09:13:51+09:00","era":"A","subject":"feat(): 게시판 edtitor  이미지 업로드 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"381dd0336944e8e445dc50f9741a510161d3bc52","date":"2025-01-07T17:21:19+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f77980f01275aef8669d304e0c85c1b17d48659e","date":"2025-01-07T17:12:36+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"R","path":"apps/api/src/schedules/delete-treat.schedule.ts","old_path":"apps/api/src/schedules/delete-treat-data.schedule.ts","score":100}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c8e6184529bd3673f8670f1e039fcc4aaab097a","date":"2025-01-07T17:04:51+09:00","era":"A","subject":"chore(): Statistics folder 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/statistics/statistics.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/statistics/statistics.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/statistics/statistics.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/statistics/statistics.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/statistics/statistics.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"87e7dc123e8dba297008340d1e1e028b4e86eb28","date":"2025-01-07T16:30:29+09:00","era":"A","subject":"feat():진료임시데이터 삭제 스케줄러","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/schedules/schedule.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/aligo-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/delete-treat-data.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d5abf5375697ddba98fd1218cc39642358cd40b","date":"2025-01-07T15:20:24+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff2e400f70f07ab526e56791b1d7af0455a32931","date":"2025-01-07T15:12:58+09:00","era":"A","subject":"chore(): 알림톡 목록 추가 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b852e6ce532e74ce2119e48ef95e1536706a70a4","date":"2025-01-07T15:04:25+09:00","era":"A","subject":"feat(): 알림톡 발송완료여부 스케줄러 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/aligo-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"561156e8d035d039ba46da5a29d8a66dd4c05579","date":"2025-01-07T09:53:05+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48e5180270ae540fb96632997e0d660f3da9e105","date":"2025-01-06T18:05:10+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a931520662fcb1d3627a8fbbfe131704e8ed3b73","date":"2025-01-06T17:56:59+09:00","era":"A","subject":"chore(): 게시글 파일 업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5afe8d195ce151fce915e4093a84250694a17170","date":"2025-01-06T17:46:51+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6305a699b11ab8c6eb5d8749355437256fd6d2be","date":"2025-01-06T17:41:55+09:00","era":"A","subject":"fix: 게시글 파일 업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"79fc419646d9026302125b1d590188044273521f","date":"2025-01-06T17:27:20+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d8c72c1c30c02867e1c60725b58e0ed6b008095","date":"2025-01-06T17:13:25+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b36c966ea33c44aba6ec4ab61b0c425838d1f751","date":"2025-01-06T16:34:30+09:00","era":"A","subject":"chore(): maxCount 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05ddbdeff2e611cd727aa31acf11d0de0ca0fcf2","date":"2025-01-06T16:32:24+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"22b60d77119430add7bd733ac5f434b63f152b06","date":"2025-01-06T16:30:54+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f97c63319dd9bcc9b1428868990832b5816068d2","date":"2025-01-06T16:17:30+09:00","era":"A","subject":"chore(): 게시파일 수정","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4217df2bec0b8449ec07c006356a756b4699fa9","date":"2025-01-06T15:30:31+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"715786a5915ba3d1bacc3cce23daa629c7040535","date":"2025-01-06T15:17:31+09:00","era":"A","subject":"chore(): 게시판 파일 console log","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/aligo-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.interface.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fba95cc0e4b1e0a9a5b861f41eaa91fd8da087d4","date":"2025-01-06T11:01:48+09:00","era":"A","subject":"chore():게시물 상세 에러수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/aligo-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05b5196f0abf4e507cec62a43c41382efa3ab84d","date":"2025-01-06T10:41:22+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a381c7495674965e66fa692efdc38770836c1064","date":"2025-01-06T10:38:52+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a593d49c3a64faf1b6bde1ad823ef6cb5740027","date":"2025-01-06T10:20:58+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"921f6e8cc1a7deaa6d145f033c371bebb44c62c1","date":"2025-01-06T10:00:27+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0affbe38fffd10b6629fffdfccdf53147d85d873","date":"2025-01-06T09:49:11+09:00","era":"A","subject":"feat(): 게시글 상세 파일목록 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56fe399daad35bd5f2d36183ecf919677e98062c","date":"2025-01-03T17:34:12+09:00","era":"A","subject":"feat(): 게시글수정 파일추가","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a16b31a3f58025109c94b07eca4028cca07ba3b","date":"2025-01-03T14:59:06+09:00","era":"A","subject":"feat(): 게시판 신규등록시 파일추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/board/file/board-file.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/board/file/board-file.entity.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"29664ec4e7e5ef594756863e6b70893b98430a2f","date":"2025-01-03T11:51:09+09:00","era":"A","subject":"feat(): 관리자 원본데이터 다운로드 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/excel/src/excel.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b986721a7cdc108edb708669a2ca8d14d023037f","date":"2025-01-03T09:29:52+09:00","era":"A","subject":"chore(): 게시판 검색조건 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89e6f4d53f949e334818e958f861750dce42c307","date":"2025-01-02T17:14:40+09:00","era":"A","subject":"chore(): 유저 db fn 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8fe00cd3982530ddf99954c8699905b7ee86fe56","date":"2025-01-02T17:09:40+09:00","era":"A","subject":"chore(): 상품, 팝업 db fn 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"641347760823644350cef09fa882f2eef9a61b05","date":"2025-01-02T17:05:01+09:00","era":"A","subject":"chore(): 주문, 주문상세 db fn 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f658b54038cbab7b4aca8d334c19b146831991f2","date":"2025-01-02T16:57:40+09:00","era":"A","subject":"chore(): fc db fn 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a1abb3e5888e1f16291ebcd2765117d849f256b2","date":"2025-01-02T16:53:00+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63062e9ca2687ef16e2569c233800a6b0c0ce82b","date":"2025-01-02T16:51:44+09:00","era":"A","subject":"chore(): 게시판, 카드 db fn 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6241b719746d7574a6e0252d2378f8bacea79a60","date":"2025-01-02T16:47:22+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78f2187d461f683c837ab5c08c770c73e16ffdaa","date":"2025-01-02T16:44:02+09:00","era":"A","subject":"chore(): 배너 sql fn 변경","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7602fc1128cb329a4b17844aeb66dc3962d4862e","date":"2025-01-02T16:36:06+09:00","era":"A","subject":"chore(): 알림 암호화 fn 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef2fb55b5cb675ba03f767cf25ae11bf3e6c1bee","date":"2025-01-02T16:32:13+09:00","era":"A","subject":"chore(): 관리자 개인정보 암호화 fn 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a33813a6392bf22498fc17de126029d58a9610f1","date":"2025-01-02T15:18:07+09:00","era":"A","subject":"feat(): 관리자 알림톡 목록","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"A","path":"apps/api/src/helpers/translate.helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"718e2cb71ce400e761bc0b591a59f7ef13031cd1","date":"2025-01-02T12:18:29+09:00","era":"A","subject":"chore(): 알리고 템플릿 코드 변경 및 발신번호 변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1ad8cdfec51d7975020496c596e228b7fa8eb134","date":"2025-01-02T09:45:54+09:00","era":"A","subject":"chore(): schema 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32cbb681c1d7fa6cc215f8960138ccb80a596e3d","date":"2024-12-31T11:48:58+09:00","era":"A","subject":"feat(): 관리자 환불처리시 구독상태 해지로 변경처리","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f559fe1dbb673f3f8d20bd4fa43f76c8418cb760","date":"2024-12-31T11:12:32+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ade4bab85c067ab6f53ccfdd4eaf1aac5a3f5d2a","date":"2024-12-31T10:34:37+09:00","era":"A","subject":"feat():yml 분석상태 변경 스케줄러 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"58933ebee36e7c8e80c1dba632718bef5caf85b4","date":"2024-12-31T10:17:49+09:00","era":"A","subject":"feat(): yml 수정 및 결제취소시 해지완료일 추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"094d046efe891027af2b5763523256fc7039bd86","date":"2024-12-30T17:59:18+09:00","era":"A","subject":"chore():즉시변경 로직 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e4b9bf01ed710e378a46011b84559de691df230f","date":"2024-12-30T17:03:15+09:00","era":"A","subject":"feat(): 해지완료 스케줄러 처리","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aa9ce0d023298fc330dbf93840fe26ea0cb3f6b0","date":"2024-12-30T16:18:24+09:00","era":"A","subject":"feat(): 분석목록 [인증요청중]상태값 변경에 대한 스케줄러","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e04930e11278cfc75e29b4ae92eb9aa0f1d7dd6","date":"2024-12-30T11:37:17+09:00","era":"A","subject":"chore() 대조데이터 검색 정렬조건 디폴트","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75da7033930574b1b31435c356a3027c30f09077","date":"2024-12-30T10:57:40+09:00","era":"A","subject":"chore() 관리자 상품등록 수정 필수값 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db6e6698bdad0f545d5eb8542cbe4389664c00e6","date":"2024-12-30T10:42:00+09:00","era":"A","subject":"chore(): 세부 데이터 대조 정렬조건 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7fcc90eed0eb9852a2eec9fa41804e19c53cd39a","date":"2024-12-27T18:01:19+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db34a09b9604194b31a89704e0a1d0723380d2a4","date":"2024-12-27T16:42:33+09:00","era":"A","subject":"chore(): 정기결제 스케줄러 테스트용 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76d1179fba0ac23c6d7d3fef64f4c54ef8804913","date":"2024-12-27T16:12:56+09:00","era":"A","subject":"fix(): 결제취소시 청구서 사용이력에 대한 유효성 검사 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"08537a875b345512c1ecc66a4a41e03184c48592","date":"2024-12-27T14:54:29+09:00","era":"A","subject":"chore():정기구독스케줄러 테스트용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"afbb2fdc09c70c883bd8fb48438fb7c289db7b97","date":"2024-12-27T14:45:51+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8e1366c0fef363e9e8e1faa77b8879838b5a92bf","date":"2024-12-27T13:47:40+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"apps/api/src/schedules/analysis-status.schedule.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/disable-subscription.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"476302bce70dcd680b5c8c6ec7819ae349576a03","date":"2024-12-27T12:28:47+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e396ba7c4b18860e65cd067f25f2de244ae3b77","date":"2024-12-27T11:46:12+09:00","era":"A","subject":"feat(): 분석상태변경 시 인증실패일 경우 알람 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8a5acaaf36cc2945bce4b968d86157a9d316054","date":"2024-12-27T11:09:10+09:00","era":"A","subject":"fix(): 신규구독 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2dd40175f1835d474eff4e61852b4d0914b2b6f","date":"2024-12-27T10:56:40+09:00","era":"A","subject":"merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05c8c2bd3fc38e3b94f65a87e057d7e07445ef38","date":"2024-12-27T10:55:56+09:00","era":"A","subject":"fix: 스케줄러 순회방식으로 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a042d40dc3a59f062c51d1191636a5e5ca6c7e51","date":"2024-12-27T10:36:43+09:00","era":"A","subject":"chore(): 스케줄러 logger log 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f81f75ff8686b22c79fb92675809a96cc8bbad71","date":"2024-12-27T10:00:25+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/webclient/src/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a338547e481e60835e0a9406f77548af3070c66","date":"2024-12-26T17:57:44+09:00","era":"A","subject":"fix(): 정기구독결제 console log추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7468ef6d12ac2237223b7e7146db714a88e5628","date":"2024-12-26T16:05:10+09:00","era":"A","subject":"chore(): 분석결과 3개월 조건 주석해제","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"apps/api/src/modules/alimtalk/alimtalk.-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"984cb421436be4614b7a27cae06209167056e389","date":"2024-12-26T15:34:23+09:00","era":"A","subject":"feat(): 분석상태 변경 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02c4200c9123460a252f1e3703b5498aca42e996","date":"2024-12-26T11:52:55+09:00","era":"A","subject":"fix(): 게시판 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6fc6fdc1e7a6063bdbc490e0c9a4ac63010e2e0b","date":"2024-12-26T11:37:56+09:00","era":"A","subject":"feat(): 대조데이터 이전데이터 복구 기능 추가","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.utill.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3f4cfa5bc4292eddedb9932457b1051f874d5f35","date":"2024-12-24T12:27:35+09:00","era":"A","subject":"feat: 회원정보 수정 시 동일비밀번호변경 방지","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d6aa053be53e0858468082bbb363f1e99942964","date":"2024-12-24T12:11:18+09:00","era":"A","subject":"feat: 동일비밀번호 변경 방지","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"748bdf3d611860e8265ae15be120879fbc82783d","date":"2024-12-24T11:45:01+09:00","era":"A","subject":"fix: 탈퇴한 아이디 재로그인 방지","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff62b8f3c9b1a26817410cd4653adf8df89de3eb","date":"2024-12-24T11:37:20+09:00","era":"A","subject":"add log","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".prettierignore","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"565b11f7a5c338ec216983ed8b1aba5a2b6c47a0","date":"2024-12-24T10:25:46+09:00","era":"A","subject":"feat: 탈퇴한 회원 아이디로 로그인 방지","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"178f3a80fc724cac8f5423479d154aaaa1ce699b","date":"2024-12-24T10:18:34+09:00","era":"A","subject":"feat: 회원가입 유효성 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e667b3b14f290eb3688e79705af854c7b32d3fbe","date":"2024-12-20T17:56:14+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/search/search.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a19b69b27cf7226374cfc4f233464e57dd1f5acb","date":"2024-12-20T17:14:18+09:00","era":"A","subject":"chore(): 관리자 질병검색, 대조데이터 정렬 디폴트 변경","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7a6382523bcd29e74c338d61da1da215faf6ef66","date":"2024-12-20T15:55:04+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/interceptors/api-response.interceptor.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aab46ead2c9f4a636dfa728dcb943a6899a3142e","date":"2024-12-20T15:32:27+09:00","era":"A","subject":"fix(): 정기구독 스케줄러 수정완료","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a18e0c8a1282490e0bd7b39165a85f7192eb72ae","date":"2024-12-20T14:22:21+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"617ea796890383dbcf3ac9dcb9cd17f3e451a552","date":"2024-12-20T12:44:47+09:00","era":"A","subject":"fix(): 정기결제 스케줄러 수정1","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"584c5e0f3119d8c2a9af15e394c9608b421c4cb6","date":"2024-12-20T10:51:31+09:00","era":"A","subject":"fix: 구독시 구독중복가입불가 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a72dfbe10a44e920321bff56bbbdd94e60b8bde4","date":"2024-12-20T09:41:09+09:00","era":"A","subject":"fix: 유저 구독현황 반환값 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fab6db976bb0d14f8c5c45ca55412e5c3069207","date":"2024-12-20T09:16:20+09:00","era":"A","subject":"chore() 두독현황 테스트용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb717cd92e66c711f508f2af20d7df18d26e95cb","date":"2024-12-19T21:21:25+09:00","era":"A","subject":"feat: bypass rs local","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin-jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f691cdbcaa4f398751bbbedd5fc01f3d989efc57","date":"2024-12-19T17:22:05+09:00","era":"A","subject":"chore(): 정기구독처리시 해지상태에 대한 처리 추가2","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c20237a1f767fa2c458cabc614f088f98838fbde","date":"2024-12-19T17:01:20+09:00","era":"A","subject":"chore(): 정기구독처리시 해지상태에 대한 처리 추가 1","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"236591282633f2e3b31be26e9b6403af3574dba3","date":"2024-12-19T15:37:12+09:00","era":"A","subject":"chore(): 구독현황 리턴값 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6531dfc5340af0c17113fec3964457d931d035b","date":"2024-12-19T13:57:43+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5ce8d2f2ca6ec773c69be20351c5d7d2361a88b7","date":"2024-12-19T12:44:59+09:00","era":"A","subject":"fix(): 즉시변경시 해지완료,변경완료 값 추가","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b31723e5937374c7dd12839c6e14d3978b89c1cf","date":"2024-12-19T11:55:20+09:00","era":"A","subject":"chore():콘솔로그 제거","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec5c11a2b2b324652d3022200fd41221e2f70ead","date":"2024-12-19T11:52:28+09:00","era":"A","subject":"remove: 불필요한 콘솔로그삭제","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8a7fe27a808a3dd1ed1850eed2798b4b2609e2e","date":"2024-12-19T11:50:09+09:00","era":"A","subject":"fix: 스케줄러 9시 분기 핸들링","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef6bb8f062922b783ced26c4ad9e8c648919fa9f","date":"2024-12-19T11:30:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70e9dd7af2c27be743c95092b96f896b7315f980","date":"2024-12-19T11:29:56+09:00","era":"A","subject":"심평원 인증요청 시의 개인정보 오입력 에러처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b619214dde590be376e2430aaef8cebf2d56a41","date":"2024-12-19T11:18:27+09:00","era":"A","subject":"remove: remove console.log","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3b27ab00ad7f2580f5418546c26d5072ad3efb5e","date":"2024-12-19T11:07:17+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"04bc548e5ab535566e9c9f27a84e47faf8b5ecd9","date":"2024-12-19T11:07:09+09:00","era":"A","subject":"feat: 성공코드 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e99b6d4be40ea7cb48fcdf590a28f7ee55bbdad7","date":"2024-12-19T10:48:34+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"228beda312661b607a03d12fd0695e7bf7e060d3","date":"2024-12-19T10:48:22+09:00","era":"A","subject":"chore(): 구독현황 결제취소 및 환불완료일 경우엔 리턴값 제거","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d61b5f44d620522d88981d9b9ff04773efbce6a1","date":"2024-12-19T10:47:18+09:00","era":"A","subject":"feat: mok토큰 복호화 시 에러핸들링","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"527960203601f53285583ccd08ce2e4f19b93967","date":"2024-12-19T10:27:02+09:00","era":"A","subject":"chore: 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de991801c5c9cd027779f0385fef0005e30afe9b","date":"2024-12-19T09:40:29+09:00","era":"A","subject":"chore(): 대조세부 목록 조회 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7204fb5ae9cdb39166ef5023889023dbfecffa4c","date":"2024-12-18T18:35:56+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5b8a652b86029097cffe864657be3d1f9ce5cf32","date":"2024-12-18T18:10:04+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47436256f964f7ee8dbbfe9c8635cf820cbc513a","date":"2024-12-18T18:09:49+09:00","era":"A","subject":"chore(): 고객목록, 분석상세 반환값 삭제","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c32c9e86bdd99988420898c5e70115b3b8ef877","date":"2024-12-18T17:38:20+09:00","era":"A","subject":"feat: 회원탈퇴 시 민감정보 빈값처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc2fb51a2f6639c4ee0cb400ffaf6a10087d95cc","date":"2024-12-18T17:07:16+09:00","era":"A","subject":"fix: IP 가져오는 방식 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bd1ac1262ee20a6c129f78efb671417475b76f6","date":"2024-12-18T17:00:57+09:00","era":"A","subject":"feat: 사무실 IP 인증 허용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"23f224cc908278bf03739b4ac806d7a9c0bf5eee","date":"2024-12-18T16:49:11+09:00","era":"A","subject":"fix: 회원가입/아이디중복검사 시 아이디 정규식 검사","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"effca0d00941049ff4833a0d4befbba14d59ed3f","date":"2024-12-18T13:59:04+09:00","era":"A","subject":"chore(): 분석대조 세부 데이터 수정시 조건값 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51d7b84973cafa3abfe4e3d77560fdea7a39ed3c","date":"2024-12-18T12:35:11+09:00","era":"A","subject":"chore(): 질병검색 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffaffbf90f6061631a90620929a7996b18df0938","date":"2024-12-18T12:31:59+09:00","era":"A","subject":"관리자 구독관리 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"028960f762b7ee9210269e74905ccc6739127999","date":"2024-12-18T11:51:52+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8fd88b603e4cdff59eed241badfcffbda9f8b6e0","date":"2024-12-18T11:21:54+09:00","era":"A","subject":"chore(): 유저페이지 고객목록 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"53b6d15b361de52c8e38ee97e6131070b2b0515f","date":"2024-12-18T10:22:23+09:00","era":"A","subject":"chore(): 분석결과 테스트를 위한 기간제한 주석처리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ce31fb408f7085a7156efbbc237f1d0e8b26ee9","date":"2024-12-17T18:16:15+09:00","era":"A","subject":"fix: fix task definition name","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"565ae33c839ff3f627061c2e74b1e0fb029fb5e8","date":"2024-12-17T18:11:48+09:00","era":"A","subject":"feat: Exit after regular subscription processing ended","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3611e886839573cc1155d2a002dcf0417f7aa017","date":"2024-12-16T16:26:04+09:00","era":"A","subject":"chore: CI/CD test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae2be62cd1c9f8ccde8ae63d80c0f3980f1291d5","date":"2024-12-16T16:03:16+09:00","era":"A","subject":"chore: 스케줄 태스크 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c8629f9b0af4715a411d49a52da274e016d5b3f","date":"2024-12-16T15:43:22+09:00","era":"A","subject":"chore: 도커 빌드 시 .env 포함시켰던 것 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c6ca1935613274f3969cdf5bd5d474c1c41834c","date":"2024-12-16T15:39:51+09:00","era":"A","subject":"chore: 스케줄러 도커 빌드 이후 새로운 태스크 정의 생성 step 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c67fdf2f0d8608c6d7b79f658d38e5329c959f45","date":"2024-12-16T15:33:46+09:00","era":"A","subject":"chore: 스케줄러용 태스크 정의 배포 생성","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4293b1f25ed6ab0caa4d9279b374559c7692338d","date":"2024-12-16T15:02:20+09:00","era":"A","subject":"fix:/treat/* 인증 미사용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ebfd552597542926ad4354ae1fa7d0b3dc4e71f","date":"2024-12-16T15:00:50+09:00","era":"A","subject":"fix: /alimtalk/check 경로 가드 미사용","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null},{"status":"D","path":".github/workflows/scheduler.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/schedules/regular-subscription.schedule.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/dockerfile","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/tsconfig.app.json","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a38ca211a041098d996be24e350064492fe1db73","date":"2024-12-16T11:35:17+09:00","era":"A","subject":"chore: docker 정제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/scheduler/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a602a55ed43802590af13cd8896b44c0aae1af3","date":"2024-12-16T11:34:25+09:00","era":"A","subject":"chore: build test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/scheduler/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e5b5606f91bd8940df0bbefc0ad01c6f72fb5b26","date":"2024-12-16T11:31:24+09:00","era":"A","subject":"chore: build test 1","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/scheduler/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"889932ede41ad39d6ba3332c93ab6ef1f2328a80","date":"2024-12-16T11:25:28+09:00","era":"A","subject":"chore: build test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/scheduler/dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"155320f9e2d0e970e22d0e8ea87e538a3f90cc7e","date":"2024-12-16T11:18:43+09:00","era":"A","subject":"chore: seperate task definition","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/scheduler.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f9dcf9e93cb82f1aa8654b81b1da889d752892ea","date":"2024-12-16T11:06:32+09:00","era":"A","subject":"chore: 스케줄러 배포","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"A","path":".github/workflows/scheduler.yml","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"M","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1dcd71d61ba65e34c9c686efa0f4c2c82e277da0","date":"2024-12-16T10:14:10+09:00","era":"A","subject":"remove: 예제 컨트롤러 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"D","path":"apps/scheduler/src/scheduler.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c5b7e20da878016113fa219724344cba3b430e40","date":"2024-12-16T10:13:21+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bf7c159003d85df5e484f35cb8639cd5954b5c0a","date":"2024-12-16T10:13:16+09:00","era":"A","subject":"chore: 인증 주석 해제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ab696615a46edce383a14a6590ced9602aec3cb7","date":"2024-12-13T17:30:38+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7d828d6165717a4e6a15361aa561ee413ccbb334","date":"2024-12-13T16:53:19+09:00","era":"A","subject":"chore(): 대조, 검색데이터 앞뒤공백제거","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8520df260d559e5f6025234501cfe93551b397f1","date":"2024-12-13T16:13:31+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0653890926a2c6cb9a27aa8b2ef91ff08b7d31a2","date":"2024-12-13T16:05:05+09:00","era":"A","subject":"chore(): 스웨거 반환값 표기 수정","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"71dc1ff2c49fe5b3838435d58d57564059c0cbce","date":"2024-12-13T15:26:06+09:00","era":"A","subject":"chore(): 결제취소 유효성검사 수정","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"046de3e859528741e721febdfe107236cbfa629c","date":"2024-12-13T14:29:50+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"433b632f1ac38e3f6940b3305a668ef55c1153ea","date":"2024-12-13T12:45:41+09:00","era":"A","subject":"feat(): 상품의 구독결제주기, 이용주기 추가","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75aaf9e0c15e6d20cb1fef5ad5666d43a5709bc8","date":"2024-12-13T11:30:03+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b64a7bf24d560e980d24976b137cd63e7279877e","date":"2024-12-13T11:27:09+09:00","era":"A","subject":"chore: 임시로 인증 off","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e927a77b280759f75d9527922bb501a7389ae00a","date":"2024-12-13T11:13:05+09:00","era":"A","subject":"chore(): 결제취소시 청구내역여부 유효성검사추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70dbe6b3727ebcf513a47f597be4a7b0e6867850","date":"2024-12-13T10:57:36+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5695f79948902a83d2234d072543369b853f9fe6","date":"2024-12-13T10:57:28+09:00","era":"A","subject":"청구서 발급내역 생성 시 주문테이블에 invoice Qty + 1","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"02cda819f45870c707b36ead9c54f82f8a11da5a","date":"2024-12-13T10:40:25+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"46b620c0fdeee47636654fe4fc1baa435162878e","date":"2024-12-13T10:38:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35ff4ed908d23eec9acadbf6d0a4faa4085d7f98","date":"2024-12-13T10:38:13+09:00","era":"A","subject":"chore(): 엑셀업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e5afc029999cf574029ea42df56840eeb462033f","date":"2024-12-13T10:33:08+09:00","era":"A","subject":"fix: 로그인 응답시 비밀번호 비노출","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a686c235ae6224937433f114c3e86146d71f0ce1","date":"2024-12-13T09:43:45+09:00","era":"A","subject":"chore(): 분석결과 진단 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c12dbcfe86b360b4c2181dd9ea007e194329292","date":"2024-12-12T17:59:46+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5bc43bacd2ed474c9dab2b56ebad7a6ecafb8d21","date":"2024-12-12T17:11:50+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e709c109aa6394ea0463eb2aedbae6505600fb97","date":"2024-12-12T17:05:09+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef41b1ba38ff25bf613f5542f63e1a1db9480460","date":"2024-12-12T16:59:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2f8cf4d0d6cec9227db0ab3d59c9e4dfbd2deb0","date":"2024-12-12T16:49:18+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b7220fb4cd0404d166675f5f8c0c2fe91d0a2aa6","date":"2024-12-12T16:09:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f5e6ee7c555c703769c60c044bcb89f286d8aef","date":"2024-12-12T16:08:11+09:00","era":"A","subject":"chore(); jwt 주석해제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/drizzle/src/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"350eb720847c483aac1e456f7244120bcfe09bf6","date":"2024-12-12T11:31:54+09:00","era":"A","subject":"chore(): fc유저목록 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6998ebfa47aceefb2d03c51aa5233c49e1c2d74c","date":"2024-12-12T10:55:59+09:00","era":"A","subject":"chore(): 질병코드 업로드 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/helpers/findDuplicate.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"70a9ccadad239c50c3936c122447e7979b8f7a6b","date":"2024-12-12T10:07:24+09:00","era":"A","subject":"feat(): 질병코드검색 업로드","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15dd3192b0dd8bfa5f8e3c137ef6e64e914298fb","date":"2024-12-12T10:04:14+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9fa725251ed6e3f9d61a4d2d3603ef1d642b306","date":"2024-12-12T10:04:06+09:00","era":"A","subject":"fix: Missing imports","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68151740a56e96ac47e6ff2c22001c0621476b0a","date":"2024-12-12T09:22:23+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a00fbbe86790f0b93259da438c8d6e216586def","date":"2024-12-11T18:32:18+09:00","era":"A","subject":"feat: 회원탈퇴 유효성검사 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4ee34e278b6299c05a1c6c5284c4c859b8341b0b","date":"2024-12-11T18:14:12+09:00","era":"A","subject":"fix: Fix imports","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"114e353b8d67c6a8ff9ed4a92ddc97874ad5bc01","date":"2024-12-11T18:12:04+09:00","era":"A","subject":"fix: 회원정보 수정 no value 에러 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9326fc2277b8519cc847b4bbff54b563141ffc16","date":"2024-12-11T18:09:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5dcd562bdb49d03aa79a6a1f9ab9e6b5e126a645","date":"2024-12-11T18:09:04+09:00","era":"A","subject":"feat: 회원탈퇴 구현","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ed8d2304564140e840093a81d0115efbc8779dc","date":"2024-12-11T18:06:04+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3c1fb001888f7b3b64502060b8b54e5d74b7bb2e","date":"2024-12-11T17:54:49+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1348c5c31ec4e697d5c69f5bf6152835a912af3e","date":"2024-12-11T17:54:37+09:00","era":"A","subject":"feat(): 대조기본데이터 양식다운로드 및 업로드","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"01d54868fc8fa3eb2728b81751000b0173978a4b","date":"2024-12-11T17:52:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cebf9efe14ce9bd4d590e4692bd6e500b98bc87b","date":"2024-12-11T17:52:05+09:00","era":"A","subject":"feat: 회원정보수정 시 이메일 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92799ea3b001f879ee30093127884ad45a5ded14","date":"2024-12-11T17:26:39+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ebd4f5c720d77908bd8b59ad9aca780dc9f90388","date":"2024-12-11T17:26:25+09:00","era":"A","subject":"feat(): 대조데이터 세부 양식다운로드 및 엑셀업로드","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/excelErrorFormat.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/findDuplicate.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6005855dce98c346dc1af348a8fb604191186581","date":"2024-12-11T17:26:08+09:00","era":"A","subject":"fix: 로그인 시 복호화 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"47b6708b20e187fcc707ad0c8b993484be435a3e","date":"2024-12-11T15:39:38+09:00","era":"A","subject":"fix: 본인인증 decrypt 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b6eecbb8620c0734d4705f4bfa41d9ba04b27191","date":"2024-12-11T15:31:32+09:00","era":"A","subject":"chore: add log","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d3f2900dbccbe455c44874e223818d3e3fb3733","date":"2024-12-11T15:21:02+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ae1abfacc08a0dd82f5cfa812e6647e4494bc68","date":"2024-12-11T15:20:56+09:00","era":"A","subject":"fix: 본인인증 결과 요청 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6072e4ae0c498b7a7864a89a6b2d46b94a62a62d","date":"2024-12-11T14:01:46+09:00","era":"A","subject":"chore: 외부요청테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5323b8d69165e80272dc65d043859f70c3f8435a","date":"2024-12-11T12:23:50+09:00","era":"A","subject":"chore():대조 기본/상세 엑셀탭명 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c6aa6874d7fcf16c81d94cb7f267704eb5a6de0","date":"2024-12-11T12:17:37+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f59a126bd87710643036a9391924c59061f95cc6","date":"2024-12-11T12:17:24+09:00","era":"A","subject":"feat(): 대조기본/세부 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4cd4efa3e588b3bb827c34d59139af2c65373dae","date":"2024-12-11T11:42:34+09:00","era":"A","subject":"chore: 본인인증 결과 수신 테스트1","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1f4b0e5921d3592659cac9783bdc359c2cf47dfc","date":"2024-12-11T11:26:52+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"973cf67c517d12131203df2d40f7fcd4a4ea8400","date":"2024-12-11T11:26:45+09:00","era":"A","subject":"chore: 복호화 테스트","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-client.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b04bbfc7d1b0eeb891798fb4228be0c2c44655d1","date":"2024-12-11T10:55:25+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97a172264416a492970e0dd1273f97c78c39b222","date":"2024-12-11T10:46:05+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f02607b7e0cd34b8f67bec343e3e7005da5b6c67","date":"2024-12-11T10:45:48+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c95adcec282e6840dc37c97a682365e83fa4d7b","date":"2024-12-11T10:35:39+09:00","era":"A","subject":"feat: 로그인시 소속대리점 반환 주석 해제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1ada11ec6dd9dd16d9f2779744a8c97dde228e1","date":"2024-12-11T10:19:41+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea72ac2f6ca4c9859bc14ff8b1d144cbfe827fdf","date":"2024-12-11T10:19:30+09:00","era":"A","subject":"feat: 비밀번호 확인 API 구현","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fbd58d09a267c6dbeb3f2e6fcddb145678e5f39","date":"2024-12-11T10:14:45+09:00","era":"A","subject":"feat(): 분석목록 노출/비노출처리","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"M","path":"apps/api/src/modules/_sample/sample.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"edd3b7e6a88d79847f9f2c4002be8293e8090bcf","date":"2024-12-11T10:09:18+09:00","era":"A","subject":"feat: 본인인증 토큰 복호화 DTO 구현","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c2d1346c1ec9d96165df3026a46c2652e2f0223","date":"2024-12-10T19:08:36+09:00","era":"A","subject":"chore(): 반환값 수정","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"89763e547588c66e34925d2e8297f07bb79df0d8","date":"2024-12-10T18:58:07+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e42136fe588621e573946356310a84d1cab2585","date":"2024-12-10T18:57:52+09:00","era":"A","subject":"chore() 배너 dto분리","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d4ffc8df5659fa5ebd13263aa57af43f5753fbf","date":"2024-12-10T18:56:55+09:00","era":"A","subject":"fix: missing imports","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3d7a136442518b0e28a91423e8fea99b9e98628","date":"2024-12-10T18:49:12+09:00","era":"A","subject":"feat: FC 상세 조회 구현","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"49a8d03ed6ad5a6f96a7df5081fbec2487203039","date":"2024-12-10T18:48:32+09:00","era":"A","subject":"feat: FC 상세 조회 구현","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4348b601c178ef714cd5faa738484abd6601ee8","date":"2024-12-10T18:46:14+09:00","era":"A","subject":"chore() 팝업 dto분리","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07651e5709457faf784b44d89dceb3d9b4d80514","date":"2024-12-10T18:43:05+09:00","era":"A","subject":"feat: 본인인증 토큰 복호화 API 구현","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5229c5887f2060ca12ae4a9842c013a7f1f76384","date":"2024-12-10T18:37:45+09:00","era":"A","subject":"feat: 회원정보 수정 API 구현","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56472356df5bc6ce2d6d008e81a830d29617bb8a","date":"2024-12-10T18:33:12+09:00","era":"A","subject":"chore():product dto 분리","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d611b5ba4e9db40288baa9a155dbe07a4176bff1","date":"2024-12-10T18:13:36+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e17036198db1646d1422aac6e76d7c44e1969f04","date":"2024-12-10T18:13:23+09:00","era":"A","subject":"chore(): user dto 변경","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a29ebef41e58fbd04015786cff7fdead69a40fd9","date":"2024-12-10T17:56:27+09:00","era":"A","subject":"feat: 본인인증 적용 필요한 곳에 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5403a50d689ba31e9592c77d7cd210564bfd6c01","date":"2024-12-10T17:51:26+09:00","era":"A","subject":"feat: mok token 파라미터 명 변경","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"608b984b9418aa9ffc9b2229889cc89f9baf732b","date":"2024-12-10T17:44:44+09:00","era":"A","subject":"feat: 토큰 복호화 로직 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fac161528c7c91208616447e8238208a4aafe490","date":"2024-12-10T17:30:28+09:00","era":"A","subject":"chore: 에러 로깅","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"39dd67687126faab7ab78cfd9c8d2651252a0699","date":"2024-12-10T17:22:35+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b90bea26cb3c3c924f37915c4a6816923a91536d","date":"2024-12-10T17:19:16+09:00","era":"A","subject":"chore():분석목록 dto 분리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b13729b01695f5ba99ff1fde9cd40b0344c79a79","date":"2024-12-10T17:14:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b73a24a36ab03ac5701066539252af93f8ee463","date":"2024-12-10T17:14:22+09:00","era":"A","subject":"feat: 복호화 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"62a5212cea4b72d10663a0d23eca00f66218f0dc","date":"2024-12-10T16:58:49+09:00","era":"A","subject":"chore(): 검색어 decode 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d4b969c73b1eb74e853d5b9ad28055226c7e4a67","date":"2024-12-10T16:25:29+09:00","era":"A","subject":"feat():주문상세 엑셀다운로드 및 주문상세 유저 dto 디폴트 설정","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55e75550c951d6d215828d564a95062611954db7","date":"2024-12-10T12:40:38+09:00","era":"A","subject":"feat(): 주문목록 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"391c743e408897a977ba1a9294a8846505499496","date":"2024-12-10T11:58:41+09:00","era":"A","subject":"feat(): 구독목록 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"736134512b18c729d698a74864a53659827dc894","date":"2024-12-10T11:46:16+09:00","era":"A","subject":"feat(): 고객목록 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fbbccac3884cda0c4d86c6e648946b924d53108f","date":"2024-12-10T11:33:21+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2887c2f680fcf14c46f44d7338f73f840e487dd","date":"2024-12-10T11:33:08+09:00","era":"A","subject":"feat(): fc 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/flatten.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"A","path":"libs/excel/src/excel.module.ts","old_path":null,"score":null},{"status":"A","path":"libs/excel/src/excel.service.ts","old_path":null,"score":null},{"status":"A","path":"libs/excel/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/excel/tsconfig.lib.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b8826bfad8664b1a9781cb9cdb32988f23b9d6d2","date":"2024-12-10T11:28:38+09:00","era":"A","subject":"fix: Httpstatuscode 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a08d386b0196cd5cd37443aa3c8fc90ed6f4fbe7","date":"2024-12-10T11:10:52+09:00","era":"A","subject":"feat: 본인인증 결과 수신 후 리턴","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f02b3ed4b7255837000ea6ec9ddd0dbef36e2df4","date":"2024-12-10T10:10:31+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7178ab4fbd469b06c51d90a9234a7a5a61d3ff7a","date":"2024-12-10T10:10:28+09:00","era":"A","subject":"fix: 쿠키 이름 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/admin-jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"81a103a4755e49305b2dab97716c036909efb333","date":"2024-12-10T09:30:11+09:00","era":"A","subject":"chore(): schema 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6cdefab809c410ed4447aa9b920ff74990d2abcb","date":"2024-12-10T09:27:30+09:00","era":"A","subject":"chore(): tinyInt where 조건절 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4daff870f13f4da6ec2a9deb8665568375e3b35e","date":"2024-12-09T18:04:30+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"99bb7aca5395846b5489212775e2631f11867681","date":"2024-12-09T18:04:25+09:00","era":"A","subject":"feat: Http status code 200으로 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92233ced2a9019cfdc3707371c661f4efb58ad0b","date":"2024-12-09T18:02:53+09:00","era":"A","subject":"chore(): 분석목록 조건","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3ff6e513e0245834b8a00a4bdcef6ab17a89400c","date":"2024-12-09T17:12:06+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4cf85a44fd75869e7902e9f21ebd34ad4633c351","date":"2024-12-09T17:11:54+09:00","era":"A","subject":"feat(): 팝업 crud","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06efe35f337a38f826663a8f99a2664f0956f7f5","date":"2024-12-09T16:51:38+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef03d2c0a93508d392a8d39298825755b5f6c12a","date":"2024-12-09T16:51:32+09:00","era":"A","subject":"feat: 관리자 로그아웃","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/auth-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ed3e157ad666380c9e44e3697b6f717598a2010","date":"2024-12-09T16:46:33+09:00","era":"A","subject":"feat(): 팝업 crud","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/popup/popup.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77c5459738366cc1a8cba8e89ce7f6f4a658fc14","date":"2024-12-09T16:12:33+09:00","era":"A","subject":"feat(): 배너CRUD","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c23c86c79d55af14f40191d0da8a969273d068be","date":"2024-12-09T14:51:51+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8df75362449a40f2647f4324d08b33de555b380f","date":"2024-12-09T14:51:23+09:00","era":"A","subject":"chore(): 신규분석 인증요청 시 에러문구 분기 추가","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/file-helper.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/helpers/validation-helper.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"libs/s3/src/s3.service.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b9956728182bff2453ca42331d9aba281fa303a","date":"2024-12-09T14:25:01+09:00","era":"A","subject":"feat: 청구서 발급내역 유저정보 암호화 & ordId 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d9a97e6d70dd38a0d2f0f17d91a0a88eaaf732c1","date":"2024-12-09T14:03:02+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"969d8dae70c7e1b50bf993d92530e0340285939f","date":"2024-12-09T14:02:57+09:00","era":"A","subject":"관리자 인증 구현","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/constants/admin.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/admin-jwt.guard.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/auth-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/auth-admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/auth-admin.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6ed20c24a0a41793b46d4234670e7c204c36e8d8","date":"2024-12-09T11:53:43+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/codef/src/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"87ef8173852e8aeaeebbf8456c6848b084350aed","date":"2024-12-09T11:28:33+09:00","era":"A","subject":"chore(): 인증요청 알림톡사용여부 주석처리","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/banner/banner.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/banner/sample.repository.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/banner/sample.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ada98ef817b8ad5e2376fe1fa4f86c8a60d556f","date":"2024-12-09T10:45:28+09:00","era":"A","subject":"chore(): schema 변경","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"A","path":"apps/api/src/modules/banner/banner-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.entity.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/banner.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/sample.repository.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/banner/sample.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"09eb06b432e2f9ba043173133412cf962a8c6196","date":"2024-12-09T09:24:21+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"488d0889c2e6e119d1594acc3c9bf51599267da9","date":"2024-12-06T15:53:26+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba4a81d7c9503b591e9130b5e7a3aa926d4c4d9b","date":"2024-12-06T14:57:28+09:00","era":"A","subject":"chore():심평원 인증요청 반환값 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/codef/src/codef.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8eb57c7d48bf0973a99a79a53134e81d4f1aa466","date":"2024-12-06T14:14:35+09:00","era":"A","subject":"chore(): 결제취소시 구독해지 자동 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d35e7040e37ed887fd82005cf5aa105c246efe14","date":"2024-12-06T10:40:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"492d2d189bbe168bd5285138d783e3a0c4a04998","date":"2024-12-06T10:40:11+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d9824f4af6d7b65cefd29f061bfe77a333e4e05","date":"2024-12-06T10:31:32+09:00","era":"A","subject":"feat: usageCode 본인확인용으로 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"80a02e1ba2326edfc7aca1d2fe483fab03e53f60","date":"2024-12-06T10:31:10+09:00","era":"A","subject":"feat: 토큰요청 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07c9fb55b5f3deb0d759cacbef094af811332326","date":"2024-12-06T10:30:59+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fe67c25152e542500539c1f42dd0cc0e1ec15a0b","date":"2024-12-06T10:21:52+09:00","era":"A","subject":"feat(): 즉시결제 알림, 알림톡추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0d87374113e7517f662ffa44597b0899ba624188","date":"2024-12-05T18:57:06+09:00","era":"A","subject":"fix: rawdata test 3","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cc0485f203d2c89cddd772efd08768bd3786c683","date":"2024-12-05T18:56:30+09:00","era":"A","subject":"fix: rawdata test 2","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b3bcc9894fe17442c1bb8967829285b380a5ebe","date":"2024-12-05T18:45:05+09:00","era":"A","subject":"fix: rawdata test 1","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c91d1bf6b056972bbbbc9854db1672586a339561","date":"2024-12-05T18:31:04+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"649cd8c4faea151c4029d0592a368a88916b8146","date":"2024-12-05T18:30:58+09:00","era":"A","subject":"chore: tid 객체에 담기","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3580c7b63e7d11ac0ed2b39a36f969920fed3a3e","date":"2024-12-05T17:58:05+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"69c7647f1b1a96de97264afedb914469f118706f","date":"2024-12-05T17:57:50+09:00","era":"A","subject":"feat(): 정기결제실패시의 즉시결제","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5493d9fde543a8f5c6c28840e9039499bd5008ad","date":"2024-12-05T17:11:09+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c726d3ac0746ad355d9ef451e47ed97327caf2e","date":"2024-12-05T17:11:03+09:00","era":"A","subject":"feat: 토큰생성","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/auth/mok-auth.strategy.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-client.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/auth/sample.js","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"597f48ed22bb48d21b7f780030e4184e1050c2ed","date":"2024-12-05T16:43:19+09:00","era":"A","subject":"chore(): scheduler 이동","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/schedules/schedule.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c5fe8c08a21c3cf6945942c6b0ebbb7e8ba5a8a","date":"2024-12-05T16:39:28+09:00","era":"A","subject":"chore(): dto expose 추가 외","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea0269c03a4027bd6b57d529f9b5468578976f80","date":"2024-12-05T16:22:36+09:00","era":"A","subject":"chore(): dto expose 추가 외2차","body":"","body_present":false,"is_merge":false,"file_count":26,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"345e6ea555e2bc0d5d3b77c704882448ce319ef7","date":"2024-12-05T15:49:18+09:00","era":"A","subject":"chore(): dto expose 추가 외 1차","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"apps/api/src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b281a1adb8b1070877dea685c12845146fb765c","date":"2024-12-05T14:55:29+09:00","era":"A","subject":"feat: 요청 path 분기처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e07f319f5599a3f6673132245e13cdb1f055737","date":"2024-12-05T14:34:57+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2a5a937e6fc583e455f0b4673a2d5279ac535a25","date":"2024-12-05T14:34:42+09:00","era":"A","subject":"chore(): entity expose 추가","body":"","body_present":false,"is_merge":false,"file_count":25,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/allow-ip/allow-ip.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze-prescibe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/authority/authority.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/card/card.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/refund/refund.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/search/search.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/user/user.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9cfeb47e4f91ee05fc7ebb973f3bf3450a30b706","date":"2024-12-05T14:29:27+09:00","era":"A","subject":"feat: 인증요청 API 구현","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"136792816c6de49958f66a5c5656da941eb5071d","date":"2024-12-05T14:28:39+09:00","era":"A","subject":"feat: 인증요청 API 구현","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/mok-auth.strategy.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/mok-client.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/sample.js","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1816a2dc717b4f84083ee532f3fb0349ecf6af2a","date":"2024-12-05T14:13:37+09:00","era":"A","subject":"feat(): 정기구독결제실패시 알람 및 알림톡추가","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78f7b5ab3e5b7acdd7d0dc308a572b8d1b72cedd","date":"2024-12-05T12:34:47+09:00","era":"A","subject":"chore(): 주문타입 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b843e7acefe1f73bea9eeee60e557f2b488e253a","date":"2024-12-05T11:38:06+09:00","era":"A","subject":"chore() schema 변경","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d6d262258942a664f1e003c55c4333fe1ca9ad4e","date":"2024-12-05T11:04:37+09:00","era":"A","subject":"chore(): 구독목록 상세 swagger 반환값 수정","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7223f1f1b30b24ee88ded7384b2bf4e2b350c16a","date":"2024-12-05T10:30:13+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e668fcfa2c0a2f2a9d0aa2a77aeb7cbb428fc56a","date":"2024-12-05T10:24:19+09:00","era":"A","subject":"chore(): 알림톡 타입추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d0bee9ab32785a565f4a307a41808e7a4117839","date":"2024-12-05T09:51:22+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"46d1776f615083d7d41210f84feedaa1f6a60a04","date":"2024-12-04T17:41:12+09:00","era":"A","subject":"chore() codef폴더 libs로 변경","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"R","path":"libs/codef/src/codef-auth.service.ts","old_path":"apps/api/src/modules/codef/codef-auth.service.ts","score":100},{"status":"R","path":"libs/codef/src/codef.dto.ts","old_path":"apps/api/src/modules/codef/codef.dto.ts","score":100},{"status":"R","path":"libs/codef/src/codef.exception.ts","old_path":"apps/api/src/modules/codef/codef.exception.ts","score":100},{"status":"R","path":"libs/codef/src/codef.interface.ts","old_path":"apps/api/src/modules/codef/codef.interface.ts","score":100},{"status":"R","path":"libs/codef/src/codef.module.ts","old_path":"apps/api/src/modules/codef/codef.module.ts","score":64},{"status":"R","path":"libs/codef/src/codef.service.ts","old_path":"apps/api/src/modules/codef/codef.service.ts","score":100},{"status":"A","path":"libs/codef/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/codef/tsconfig.lib.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"40820cea482a15ff0665203242062cbe0df01220","date":"2024-12-04T17:19:51+09:00","era":"A","subject":"feat: Add axios request but can't receive response","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"abd5d68a6e5646a732f803a4f5a8f40bd666b822","date":"2024-12-04T16:41:44+09:00","era":"A","subject":"feat():분석결과 주의사항항목 추가","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/analyze/analyze-admin.controller.ts","old_path":"apps/api/src/modules/analyze/analysis-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze-basic.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-basic.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/analyze/analyze-detail.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze-prescibe.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-prescibe.entity.ts","score":100},{"status":"M","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/analyze/analyze.dto copy.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/analyze/analyze.repository copy.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fca7485ad2f3663789d679c7e18ec6b4b001a53","date":"2024-12-04T12:45:50+09:00","era":"A","subject":"chore(): 분석요청시의 유효성검사추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c6c66ff20f5b08e5e00d254c06e9b55ba9cb5bf","date":"2024-12-04T12:30:09+09:00","era":"A","subject":"chore(): schema 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"061987bd02712d9eae5be9ee00909fdf4d0ff063","date":"2024-12-03T19:17:08+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5a1401494a98cd9d60cb345b3e96f65c4690bfd","date":"2024-12-03T19:17:02+09:00","era":"A","subject":"feat: 본인인증 셋업","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/mok-auth.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/mok-auth.dto.ts","old_path":null,"score":null},{"status":"A","path":"apps/api/src/modules/auth/mok-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/pino.ts","old_path":null,"score":null},{"status":"A","path":"libs/utils/mok_Key_Manager_v1.0.3.js","old_path":null,"score":null},{"status":"A","path":"mok_keyInfo.dat","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f878620c66e4c8101316a256caf11584c734ab2d","date":"2024-12-03T17:36:40+09:00","era":"A","subject":"feat():알람목록 날짜 검색조건 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b18bcf0454744e3730b4625e14d38e99f48a3e3b","date":"2024-12-03T17:19:28+09:00","era":"A","subject":"feat(): 알림목록","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d8514bd9e7187548e2161706d530091062551b16","date":"2024-12-03T16:52:19+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e13f8395c5c8b2d34464f110172c4b24dd788b96","date":"2024-12-03T16:15:10+09:00","era":"A","subject":"feat(): 분석목록 수정","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"apps/api/src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d0419ee2e88c192cde0a0347239ebe8927c324fc","date":"2024-12-03T15:39:42+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f9d89224bf36f9a8a29005e36f9c62f0afde756","date":"2024-12-03T15:08:52+09:00","era":"A","subject":"feat(): 신규분석 수정","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c0ac71402d964d6ca5c64d3614d634a89732740","date":"2024-12-03T11:46:39+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"12bc68b7ab57cf5e6002a95b6979921203a18e29","date":"2024-12-03T11:25:29+09:00","era":"A","subject":"feat(): 분석상태값 변경","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4f9d9a10a8406fcc98dda96683cadeda1bf2fcf9","date":"2024-12-03T10:55:43+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"309fd04d26ddfa00e90ec2f1563946f0c9e983ac","date":"2024-12-03T10:53:25+09:00","era":"A","subject":"chore(): api 에러 코드정리 1차","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"81197cc173c4a075d6dbaa58bec6dbc353dd17db","date":"2024-12-02T17:04:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"45231a26252fdd28a069705b7ba6df1fe1d81a3c","date":"2024-12-02T16:53:00+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e9d9e11f12308fa36d572434b734c9d23a6dfdc6","date":"2024-12-02T16:40:13+09:00","era":"A","subject":"feat(): 심평원원본데이터 저장 및 재분석 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"apps/api/src/modules/codef/codef.interface.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"016aa0fd432ada25ebc6b99bfb1695fdd18239fc","date":"2024-12-02T15:58:09+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74f0dbfcbfbcc3b6d9928f8e181491738a5ad76b","date":"2024-12-02T15:31:38+09:00","era":"A","subject":"chore() 관리자 등록시 권한 삭제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d556d9b52f5be322a0f80861444540f9f15eeef4","date":"2024-12-02T15:18:13+09:00","era":"A","subject":"chore(): 관리자 fc count 조건 맞춤","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.interface.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.event.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9132c1dc09deae64c74cdeaeb503d684e27550d0","date":"2024-12-02T14:40:26+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"757d38146e16b2e06a18187b9abbdd3e5859e54d","date":"2024-12-02T12:37:51+09:00","era":"A","subject":"chore() 관리자 fc상세 스웨거 리턴값 수정","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"59639c8876492bb00faaac40217077034e1885da","date":"2024-12-02T10:55:18+09:00","era":"A","subject":"feat(): 알림톡 분석 사용여부 유효성 검사","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"apps/api/src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b93bbaab3c9e6d122b3adde40267d2769423b98d","date":"2024-12-02T09:57:11+09:00","era":"A","subject":"chore(): 알림톡 수정","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"apps/api/src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"M","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.dto.ts","old_path":null,"score":null},{"status":"M","path":"libs/aligo/src/aligo.service.ts","old_path":null,"score":null},{"status":"D","path":"src/providers/aligo/aligo.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cae58cec40f66cb66e156892978f7cac05ed9920","date":"2024-12-02T09:25:32+09:00","era":"A","subject":"merge","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"334bad01eaa2948d534b466f8eb31e674cbc090f","date":"2024-12-01T19:43:56+09:00","era":"A","subject":"chore: ref_name 별 credential role 바인딩","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f13781f35b7cb06139f8984f722323700290201","date":"2024-12-01T19:28:15+09:00","era":"A","subject":"Merge refactor/monorepo","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48e88d4487dfd245698904371dce78d52d43e2e5","date":"2024-12-01T19:24:46+09:00","era":"A","subject":"comment: workflow에 환경변수 주석 기재","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/api.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"078ab15f042d14e5e04d9494632358517cbfb704","date":"2024-12-01T19:10:49+09:00","era":"A","subject":"chore: workflows 파일 병합 및 ref에 따라 환경변수 바인딩","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"R","path":".github/workflows/api.yml","old_path":".github/workflows/monorepo.yml","score":90},{"status":"D","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"D","path":".github/workflows/prod.yml","old_path":null,"score":null},{"status":"D","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1302106c22ad42cbad9ed0030620d380a1dbb0d1","date":"2024-12-01T18:42:56+09:00","era":"A","subject":"chore: monorepo workflows","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":".github/workflows/monorepo.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"17c4fb1f4898614be60f91bc890342883cffec40","date":"2024-12-01T18:38:16+09:00","era":"A","subject":"Reapply \"refactor: 모노레포 전환\"","body":"This reverts commit 8aca37bfe9f2b033b4e4bff649b47531b380be7c.","body_present":true,"is_merge":false,"file_count":244,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/drizzle.config.ts","old_path":"drizzle.config.ts","score":90},{"status":"R","path":"apps/api/src/app.controller.ts","old_path":"src/app.controller.ts","score":100},{"status":"R","path":"apps/api/src/app.module.ts","old_path":"src/app.module.ts","score":92},{"status":"R","path":"apps/api/src/config/configuration.ts","old_path":"src/config/configuration.ts","score":100},{"status":"R","path":"apps/api/src/constants/api.constant.ts","old_path":"src/constants/api.constant.ts","score":100},{"status":"R","path":"apps/api/src/fliters/all-exception.filter.ts","old_path":"src/fliters/all-exception.filter.ts","score":93},{"status":"R","path":"apps/api/src/helpers/format.helper.ts","old_path":"src/helpers/format.helper.ts","score":100},{"status":"R","path":"apps/api/src/helpers/uid.helper.ts","old_path":"src/helpers/uid.helper.ts","score":100},{"status":"R","path":"apps/api/src/interceptors/api-response.interceptor.ts","old_path":"src/interceptors/api-response.interceptor.ts","score":100},{"status":"R","path":"apps/api/src/invoice.seeder.ts","old_path":"src/invoice.seeder.ts","score":93},{"status":"A","path":"apps/api/src/kernel.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/main.ts","old_path":"src/main.ts","score":88},{"status":"R","path":"apps/api/src/modules/_sample/sample.controller.ts","old_path":"src/modules/_sample/sample.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.dto.ts","old_path":"src/modules/_sample/sample.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.entity.ts","old_path":"src/modules/_sample/sample.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.module.ts","old_path":"src/modules/_sample/sample.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.repository.ts","old_path":"src/modules/_sample/sample.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/_sample/sample.service.ts","old_path":"src/modules/_sample/sample.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":"src/modules/admin/admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":"src/modules/admin/admin.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":"src/modules/admin/admin.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/admin/admin.module.ts","old_path":"src/modules/admin/admin.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":"src/modules/admin/admin.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/admin/admin.service.ts","old_path":"src/modules/admin/admin.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":"src/modules/agency/agency.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":"src/modules/alarm/alarm.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":"src/modules/alarm/alarm.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":"src/modules/alarm/alarm.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/alarm/alarm.module.ts","old_path":"src/modules/alarm/alarm.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":"src/modules/alarm/alarm.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":"src/modules/alarm/alarm.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":"src/modules/alimtalk/alimtalk.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":"src/modules/alimtalk/alimtalk.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":"src/modules/alimtalk/alimtalk.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":"src/modules/alimtalk/alimtalk.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":"src/modules/alimtalk/alimtalk.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":"src/modules/alimtalk/alimtalk.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":"src/modules/allow-ip/allow-ip-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","old_path":"src/modules/allow-ip/allow-ip.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.entity.ts","old_path":"src/modules/allow-ip/allow-ip.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.module.ts","old_path":"src/modules/allow-ip/allow-ip.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.repository.ts","old_path":"src/modules/allow-ip/allow-ip.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.service.ts","old_path":"src/modules/allow-ip/allow-ip.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/analyze/analysis-admin.controller.ts","old_path":"src/modules/analyze/analysis-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-basic.entity.ts","old_path":"src/modules/analyze/analysis-basic.entity.ts","score":98},{"status":"R","path":"apps/api/src/modules/analyze/analysis-detail.entity.ts","old_path":"src/modules/analyze/analysis-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-prescibe.entity.ts","old_path":"src/modules/analyze/analysis-prescibe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":"src/modules/analyze/analyze.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto copy.ts","old_path":"src/modules/analyze/analyze.dto copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":"src/modules/analyze/analyze.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":"src/modules/analyze/analyze.module.ts","score":89},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository copy.ts","old_path":"src/modules/analyze/analyze.repository copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":"src/modules/analyze/analyze.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":"src/modules/analyze/analyze.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":"src/modules/auth/auth.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":"src/modules/auth/auth.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.module.ts","old_path":"src/modules/auth/auth.module.ts","score":82},{"status":"R","path":"apps/api/src/modules/auth/auth.service.ts","old_path":"src/modules/auth/auth.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":"src/modules/auth/jwt.guard.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":"src/modules/authority/authority-adimin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":"src/modules/authority/authority.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.entity.ts","old_path":"src/modules/authority/authority.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.module.ts","old_path":"src/modules/authority/authority.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":"src/modules/authority/authority.repository.ts","score":67},{"status":"R","path":"apps/api/src/modules/authority/authority.service.ts","old_path":"src/modules/authority/authority.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":"src/modules/board/board/board-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":"src/modules/board/board/board.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":"src/modules/board/board/board.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":"src/modules/board/board/board.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/board/board.module.ts","old_path":"src/modules/board/board/board.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":"src/modules/board/board/board.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/board/board/board.service.ts","old_path":"src/modules/board/board/board.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":"src/modules/board/category/board-category-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":"src/modules/board/category/board-category.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":"src/modules/board/category/board-category.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.entity.ts","old_path":"src/modules/board/category/board-category.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/board/category/board-category.module.ts","old_path":"src/modules/board/category/board-category.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":"src/modules/board/category/board-category.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":"src/modules/board/category/board-category.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":"src/modules/board/comment/board-comment-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":"src/modules/board/comment/board-comment.dto.ts","score":89},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.entity.ts","old_path":"src/modules/board/comment/board-comment.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.module.ts","old_path":"src/modules/board/comment/board-comment.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":"src/modules/board/comment/board-comment.repository.ts","score":91},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.service.ts","old_path":"src/modules/board/comment/board-comment.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/card/card.controller.ts","old_path":"src/modules/card/card.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.dto.ts","old_path":"src/modules/card/card.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.entity.ts","old_path":"src/modules/card/card.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/card/card.module.ts","old_path":"src/modules/card/card.module.ts","score":85},{"status":"R","path":"apps/api/src/modules/card/card.repository.ts","old_path":"src/modules/card/card.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/card/card.service.ts","old_path":"src/modules/card/card.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/codef/codef-auth.service.ts","old_path":"src/providers/codef/codef-auth.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":"src/providers/codef/codef.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.exception.ts","old_path":"src/providers/codef/codef.exception.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.interface.ts","old_path":"src/providers/codef/codef.interface.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.module.ts","old_path":"src/providers/codef/codef.module.ts","score":65},{"status":"R","path":"apps/api/src/modules/codef/codef.service.ts","old_path":"src/providers/codef/codef.service.ts","score":89},{"status":"R","path":"apps/api/src/modules/common/common.dto.ts","old_path":"src/modules/common/common.dto.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":"src/modules/compare/basic/compare-basic.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":"src/modules/compare/basic/compare-basic.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":"src/modules/compare/basic/compare-basic.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.module.ts","old_path":"src/modules/compare/basic/compare-basic.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":"src/modules/compare/basic/compare-basic.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":"src/modules/compare/basic/compare-basic.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":"src/modules/compare/detail/compare-detail.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":"src/modules/compare/detail/compare-detail.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":"src/modules/compare/detail/compare-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.module.ts","old_path":"src/modules/compare/detail/compare-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":"src/modules/compare/detail/compare-detail.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":"src/modules/compare/detail/compare-detail.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":"src/modules/fc/fc-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":"src/modules/fc/fc.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":"src/modules/fc/fc.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":"src/modules/fc/fc.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.module.ts","old_path":"src/modules/fc/fc.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":"src/modules/fc/fc.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/fc/fc.service.ts","old_path":"src/modules/fc/fc.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":"src/modules/invoice/invoice-storage.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/invoice/invoice.builder.ts","old_path":"src/modules/invoice/invoice.builder.ts","score":95},{"status":"R","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":"src/modules/invoice/invoice.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.drawer.ts","old_path":"src/modules/invoice/invoice.drawer.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":"src/modules/invoice/invoice.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":"src/modules/invoice/invoice.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":"src/modules/invoice/invoice.repository.ts","score":94},{"status":"R","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":"src/modules/invoice/invoice.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.controller.ts","old_path":"src/modules/medical/medical.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.module.ts","old_path":"src/modules/medical/medical.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.service.ts","old_path":"src/modules/medical/medical.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":"src/modules/order/order-detail/order-detail-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":"src/modules/order/order-detail/order-detail.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":"src/modules/order/order-detail/order-detail.dto.ts","score":93},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":"src/modules/order/order-detail/order-detail.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":"src/modules/order/order-detail/order-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":"src/modules/order/order-detail/order-detail.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":"src/modules/order/order-detail/order-detail.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":"src/modules/order/order/order-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":"src/modules/order/order/order.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":"src/modules/order/order/order.dto.ts","score":90},{"status":"R","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":"src/modules/order/order/order.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.module.ts","old_path":"src/modules/order/order/order.module.ts","score":77},{"status":"R","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":"src/modules/order/order/order.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/order/order/order.service.ts","old_path":"src/modules/order/order/order.service.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":"src/modules/payment/payment.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":"src/modules/payment/payment.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/payment/payment.module.ts","old_path":"src/modules/payment/payment.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":"src/modules/payment/payment.repository.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.service.ts","old_path":"src/modules/payment/payment.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":"src/modules/product/product-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.controller.ts","old_path":"src/modules/product/product.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.dto.ts","old_path":"src/modules/product/product.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.entity.ts","old_path":"src/modules/product/product.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.module.ts","old_path":"src/modules/product/product.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.repository.ts","old_path":"src/modules/product/product.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.service.ts","old_path":"src/modules/product/product.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":"src/modules/refund/refund-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.dto.ts","old_path":"src/modules/refund/refund.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.entity.ts","old_path":"src/modules/refund/refund.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/refund/refund.module.ts","old_path":"src/modules/refund/refund.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.repository.ts","old_path":"src/modules/refund/refund.repository.ts","score":93},{"status":"R","path":"apps/api/src/modules/refund/refund.service.ts","old_path":"src/modules/refund/refund.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/schedules/order.schedule.ts","old_path":"src/modules/schedules/order.schedule.ts","score":96},{"status":"R","path":"apps/api/src/modules/schedules/schedule.module.ts","old_path":"src/modules/schedules/schedule.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":"src/modules/search/search-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.controller.ts","old_path":"src/modules/search/search.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.dto.ts","old_path":"src/modules/search/search.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.entity.ts","old_path":"src/modules/search/search.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.module.ts","old_path":"src/modules/search/search.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.repository.ts","old_path":"src/modules/search/search.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/search/search.service.ts","old_path":"src/modules/search/search.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":"src/modules/subscribe/subscribe-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":"src/modules/subscribe/subscribe.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":"src/modules/subscribe/subscribe.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":"src/modules/subscribe/subscribe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":"src/modules/subscribe/subscribe.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":"src/modules/subscribe/subscribe.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":"src/modules/subscribe/subscribe.service.ts","score":97},{"status":"R","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":"src/modules/treat/treat.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":"src/modules/treat/treat.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/treat/treat.event.ts","old_path":"src/modules/treat/treat.event.ts","score":75},{"status":"A","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":"src/modules/treat/treat.repository.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.service.ts","old_path":"src/modules/treat/treat.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":"src/modules/user/user-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.dto.ts","old_path":"src/modules/user/user.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.entity.ts","old_path":"src/modules/user/user.entity.ts","score":93},{"status":"R","path":"apps/api/src/modules/user/user.module.ts","old_path":"src/modules/user/user.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.repository.ts","old_path":"src/modules/user/user.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user.service.ts","old_path":"src/modules/user/user.service.ts","score":100},{"status":"R","path":"apps/api/src/pino.ts","old_path":"src/pino.ts","score":76},{"status":"R","path":"apps/api/src/swagger.ts","old_path":"src/swagger.ts","score":100},{"status":"A","path":"apps/api/tsconfig.app.json","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/tsconfig.app.json","old_path":null,"score":null},{"status":"D","path":"dockerfile","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"R","path":"libs/aligo/src/aligo.dto.ts","old_path":"src/providers/aligo/aligo.dto.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.exception.ts","old_path":"src/providers/aligo/aligo.exception.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.interface.ts","old_path":"src/providers/aligo/aligo.interface.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.module.ts","old_path":"src/providers/aligo/aligo.module.ts","score":81},{"status":"R","path":"libs/aligo/src/aligo.service.ts","old_path":"src/providers/aligo/aligo.service.ts","score":92},{"status":"A","path":"libs/aligo/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/aligo/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/crypto/src/crypto.module.ts","old_path":"src/providers/crypto/crypto.module.ts","score":100},{"status":"R","path":"libs/crypto/src/crypto.service.ts","old_path":"src/providers/crypto/crypto.service.ts","score":100},{"status":"A","path":"libs/crypto/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/crypto/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/drizzle.constant.ts","old_path":"src/providers/drizzle/drizzle.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.module.ts","old_path":"src/providers/drizzle/drizzle.module.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.service.ts","old_path":"src/providers/drizzle/drizzle.service.ts","score":99},{"status":"R","path":"libs/drizzle/src/drizzle.utill.ts","old_path":"src/providers/drizzle/drizzle.utill.ts","score":100},{"status":"A","path":"libs/drizzle/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/mysql-error.constant.ts","old_path":"src/providers/drizzle/mysql-error.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/mysql-error.enum.ts","old_path":"src/providers/drizzle/mysql-error.enum.ts","score":100},{"status":"A","path":"libs/drizzle/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/pdf/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/pdf/src/pdf.module.ts","old_path":"src/providers/pdf/pdf.module.ts","score":100},{"status":"R","path":"libs/pdf/src/pdf.service.ts","old_path":"src/providers/pdf/pdf.service.ts","score":100},{"status":"A","path":"libs/pdf/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/s3/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/s3/src/s3.module.ts","old_path":"src/providers/s3/s3.module.ts","score":100},{"status":"R","path":"libs/s3/src/s3.service.ts","old_path":"src/providers/s3/s3.service.ts","score":97},{"status":"A","path":"libs/s3/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/toss/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/toss/src/toss.dto.ts","old_path":"src/providers/toss/toss.dto.ts","score":100},{"status":"R","path":"libs/toss/src/toss.exception.ts","old_path":"src/providers/toss/toss.exception.ts","score":100},{"status":"R","path":"libs/toss/src/toss.interface.ts","old_path":"src/providers/toss/toss.interface.ts","score":100},{"status":"R","path":"libs/toss/src/toss.module.ts","old_path":"src/providers/toss/toss.module.ts","score":80},{"status":"R","path":"libs/toss/src/toss.service.ts","old_path":"src/providers/toss/toss.service.ts","score":95},{"status":"A","path":"libs/toss/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/utils/shuffle.ts","old_path":"src/utils/shuffle.ts","score":100},{"status":"R","path":"libs/utils/type-parser.ts","old_path":"src/utils/type-parser.ts","score":100},{"status":"A","path":"libs/webclient/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/webclient/src/webclient.module.ts","old_path":"src/providers/webclient/webclient.module.ts","score":100},{"status":"R","path":"libs/webclient/src/webclient.service.ts","old_path":"src/providers/webclient/webclient.service.ts","score":100},{"status":"A","path":"libs/webclient/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"D","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":true,"structural_event":true}
{"sha":"8aca37bfe9f2b033b4e4bff649b47531b380be7c","date":"2024-12-01T18:38:02+09:00","era":"A","subject":"Revert \"refactor: 모노레포 전환\"","body":"This reverts commit 5d7346d82bce4ceba90d5af5d015d9b2f7f58f54.","body_present":true,"is_merge":false,"file_count":244,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"D","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"D","path":"apps/api/src/kernel.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/api/tsconfig.app.json","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/scheduler.controller.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null},{"status":"D","path":"apps/scheduler/tsconfig.app.json","old_path":null,"score":null},{"status":"A","path":"dockerfile","old_path":null,"score":null},{"status":"R","path":"drizzle.config.ts","old_path":"apps/api/drizzle.config.ts","score":90},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"D","path":"libs/aligo/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/aligo/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/crypto/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/crypto/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/drizzle/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/drizzle/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/pdf/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/pdf/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/s3/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/s3/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/toss/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/toss/tsconfig.lib.json","old_path":null,"score":null},{"status":"D","path":"libs/webclient/src/index.ts","old_path":null,"score":null},{"status":"D","path":"libs/webclient/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"R","path":"src/app.controller.ts","old_path":"apps/api/src/app.controller.ts","score":100},{"status":"R","path":"src/app.module.ts","old_path":"apps/api/src/app.module.ts","score":92},{"status":"R","path":"src/config/configuration.ts","old_path":"apps/api/src/config/configuration.ts","score":100},{"status":"R","path":"src/constants/api.constant.ts","old_path":"apps/api/src/constants/api.constant.ts","score":100},{"status":"R","path":"src/fliters/all-exception.filter.ts","old_path":"apps/api/src/fliters/all-exception.filter.ts","score":93},{"status":"R","path":"src/helpers/format.helper.ts","old_path":"apps/api/src/helpers/format.helper.ts","score":100},{"status":"R","path":"src/helpers/uid.helper.ts","old_path":"apps/api/src/helpers/uid.helper.ts","score":100},{"status":"R","path":"src/interceptors/api-response.interceptor.ts","old_path":"apps/api/src/interceptors/api-response.interceptor.ts","score":100},{"status":"R","path":"src/invoice.seeder.ts","old_path":"apps/api/src/invoice.seeder.ts","score":93},{"status":"R","path":"src/main.ts","old_path":"apps/api/src/main.ts","score":88},{"status":"R","path":"src/modules/_sample/sample.controller.ts","old_path":"apps/api/src/modules/_sample/sample.controller.ts","score":100},{"status":"R","path":"src/modules/_sample/sample.dto.ts","old_path":"apps/api/src/modules/_sample/sample.dto.ts","score":100},{"status":"R","path":"src/modules/_sample/sample.entity.ts","old_path":"apps/api/src/modules/_sample/sample.entity.ts","score":100},{"status":"R","path":"src/modules/_sample/sample.module.ts","old_path":"apps/api/src/modules/_sample/sample.module.ts","score":100},{"status":"R","path":"src/modules/_sample/sample.repository.ts","old_path":"apps/api/src/modules/_sample/sample.repository.ts","score":66},{"status":"R","path":"src/modules/_sample/sample.service.ts","old_path":"apps/api/src/modules/_sample/sample.service.ts","score":100},{"status":"R","path":"src/modules/admin/admin.controller.ts","old_path":"apps/api/src/modules/admin/admin.controller.ts","score":100},{"status":"R","path":"src/modules/admin/admin.dto.ts","old_path":"apps/api/src/modules/admin/admin.dto.ts","score":100},{"status":"R","path":"src/modules/admin/admin.entity.ts","old_path":"apps/api/src/modules/admin/admin.entity.ts","score":96},{"status":"R","path":"src/modules/admin/admin.module.ts","old_path":"apps/api/src/modules/admin/admin.module.ts","score":100},{"status":"R","path":"src/modules/admin/admin.repository.ts","old_path":"apps/api/src/modules/admin/admin.repository.ts","score":98},{"status":"R","path":"src/modules/admin/admin.service.ts","old_path":"apps/api/src/modules/admin/admin.service.ts","score":94},{"status":"R","path":"src/modules/agency/agency.entity.ts","old_path":"apps/api/src/modules/agency/agency.entity.ts","score":94},{"status":"R","path":"src/modules/alarm/alarm.controller.ts","old_path":"apps/api/src/modules/alarm/alarm.controller.ts","score":100},{"status":"R","path":"src/modules/alarm/alarm.dto.ts","old_path":"apps/api/src/modules/alarm/alarm.dto.ts","score":100},{"status":"R","path":"src/modules/alarm/alarm.entity.ts","old_path":"apps/api/src/modules/alarm/alarm.entity.ts","score":95},{"status":"R","path":"src/modules/alarm/alarm.module.ts","old_path":"apps/api/src/modules/alarm/alarm.module.ts","score":84},{"status":"R","path":"src/modules/alarm/alarm.repository.ts","old_path":"apps/api/src/modules/alarm/alarm.repository.ts","score":97},{"status":"R","path":"src/modules/alarm/alarm.service.ts","old_path":"apps/api/src/modules/alarm/alarm.service.ts","score":94},{"status":"R","path":"src/modules/alimtalk/alimtalk.controller.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","score":100},{"status":"R","path":"src/modules/alimtalk/alimtalk.dto.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","score":100},{"status":"R","path":"src/modules/alimtalk/alimtalk.entity.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","score":100},{"status":"R","path":"src/modules/alimtalk/alimtalk.module.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","score":86},{"status":"R","path":"src/modules/alimtalk/alimtalk.repository.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","score":66},{"status":"R","path":"src/modules/alimtalk/alimtalk.service.ts","old_path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","score":96},{"status":"R","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip-admin.controller.ts","score":100},{"status":"R","path":"src/modules/allow-ip/allow-ip.dto.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","score":100},{"status":"R","path":"src/modules/allow-ip/allow-ip.entity.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip.entity.ts","score":100},{"status":"R","path":"src/modules/allow-ip/allow-ip.module.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip.module.ts","score":100},{"status":"R","path":"src/modules/allow-ip/allow-ip.repository.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip.repository.ts","score":97},{"status":"R","path":"src/modules/allow-ip/allow-ip.service.ts","old_path":"apps/api/src/modules/allow-ip/allow-ip.service.ts","score":94},{"status":"R","path":"src/modules/analyze/analysis-admin.controller.ts","old_path":"apps/api/src/modules/analyze/analysis-admin.controller.ts","score":100},{"status":"R","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-basic.entity.ts","score":98},{"status":"R","path":"src/modules/analyze/analysis-detail.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-detail.entity.ts","score":100},{"status":"R","path":"src/modules/analyze/analysis-prescibe.entity.ts","old_path":"apps/api/src/modules/analyze/analysis-prescibe.entity.ts","score":100},{"status":"R","path":"src/modules/analyze/analyze.controller.ts","old_path":"apps/api/src/modules/analyze/analyze.controller.ts","score":100},{"status":"R","path":"src/modules/analyze/analyze.dto copy.ts","old_path":"apps/api/src/modules/analyze/analyze.dto copy.ts","score":99},{"status":"R","path":"src/modules/analyze/analyze.dto.ts","old_path":"apps/api/src/modules/analyze/analyze.dto.ts","score":99},{"status":"R","path":"src/modules/analyze/analyze.module.ts","old_path":"apps/api/src/modules/analyze/analyze.module.ts","score":89},{"status":"R","path":"src/modules/analyze/analyze.repository copy.ts","old_path":"apps/api/src/modules/analyze/analyze.repository copy.ts","score":99},{"status":"R","path":"src/modules/analyze/analyze.repository.ts","old_path":"apps/api/src/modules/analyze/analyze.repository.ts","score":99},{"status":"R","path":"src/modules/analyze/analyze.service.ts","old_path":"apps/api/src/modules/analyze/analyze.service.ts","score":100},{"status":"R","path":"src/modules/auth/auth.controller.ts","old_path":"apps/api/src/modules/auth/auth.controller.ts","score":100},{"status":"R","path":"src/modules/auth/auth.dto.ts","old_path":"apps/api/src/modules/auth/auth.dto.ts","score":100},{"status":"R","path":"src/modules/auth/auth.module.ts","old_path":"apps/api/src/modules/auth/auth.module.ts","score":82},{"status":"R","path":"src/modules/auth/auth.service.ts","old_path":"apps/api/src/modules/auth/auth.service.ts","score":95},{"status":"R","path":"src/modules/auth/jwt.guard.ts","old_path":"apps/api/src/modules/auth/jwt.guard.ts","score":100},{"status":"R","path":"src/modules/authority/authority-adimin.controller.ts","old_path":"apps/api/src/modules/authority/authority-adimin.controller.ts","score":100},{"status":"R","path":"src/modules/authority/authority.dto.ts","old_path":"apps/api/src/modules/authority/authority.dto.ts","score":100},{"status":"R","path":"src/modules/authority/authority.entity.ts","old_path":"apps/api/src/modules/authority/authority.entity.ts","score":100},{"status":"R","path":"src/modules/authority/authority.module.ts","old_path":"apps/api/src/modules/authority/authority.module.ts","score":100},{"status":"R","path":"src/modules/authority/authority.repository.ts","old_path":"apps/api/src/modules/authority/authority.repository.ts","score":67},{"status":"R","path":"src/modules/authority/authority.service.ts","old_path":"apps/api/src/modules/authority/authority.service.ts","score":100},{"status":"R","path":"src/modules/board/board/board-admin.controller.ts","old_path":"apps/api/src/modules/board/board/board-admin.controller.ts","score":100},{"status":"R","path":"src/modules/board/board/board.controller.ts","old_path":"apps/api/src/modules/board/board/board.controller.ts","score":100},{"status":"R","path":"src/modules/board/board/board.dto.ts","old_path":"apps/api/src/modules/board/board/board.dto.ts","score":100},{"status":"R","path":"src/modules/board/board/board.entity.ts","old_path":"apps/api/src/modules/board/board/board.entity.ts","score":96},{"status":"R","path":"src/modules/board/board/board.module.ts","old_path":"apps/api/src/modules/board/board/board.module.ts","score":100},{"status":"R","path":"src/modules/board/board/board.repository.ts","old_path":"apps/api/src/modules/board/board/board.repository.ts","score":99},{"status":"R","path":"src/modules/board/board/board.service.ts","old_path":"apps/api/src/modules/board/board/board.service.ts","score":96},{"status":"R","path":"src/modules/board/category/board-category-admin.controller.ts","old_path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","score":100},{"status":"R","path":"src/modules/board/category/board-category.controller.ts","old_path":"apps/api/src/modules/board/category/board-category.controller.ts","score":100},{"status":"R","path":"src/modules/board/category/board-category.dto.ts","old_path":"apps/api/src/modules/board/category/board-category.dto.ts","score":100},{"status":"R","path":"src/modules/board/category/board-category.entity.ts","old_path":"apps/api/src/modules/board/category/board-category.entity.ts","score":94},{"status":"R","path":"src/modules/board/category/board-category.module.ts","old_path":"apps/api/src/modules/board/category/board-category.module.ts","score":100},{"status":"R","path":"src/modules/board/category/board-category.repository.ts","old_path":"apps/api/src/modules/board/category/board-category.repository.ts","score":98},{"status":"R","path":"src/modules/board/category/board-category.service.ts","old_path":"apps/api/src/modules/board/category/board-category.service.ts","score":96},{"status":"R","path":"src/modules/board/comment/board-comment-admin.controller.ts","old_path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","score":100},{"status":"R","path":"src/modules/board/comment/board-comment.dto.ts","old_path":"apps/api/src/modules/board/comment/board-comment.dto.ts","score":89},{"status":"R","path":"src/modules/board/comment/board-comment.entity.ts","old_path":"apps/api/src/modules/board/comment/board-comment.entity.ts","score":100},{"status":"R","path":"src/modules/board/comment/board-comment.module.ts","old_path":"apps/api/src/modules/board/comment/board-comment.module.ts","score":100},{"status":"R","path":"src/modules/board/comment/board-comment.repository.ts","old_path":"apps/api/src/modules/board/comment/board-comment.repository.ts","score":91},{"status":"R","path":"src/modules/board/comment/board-comment.service.ts","old_path":"apps/api/src/modules/board/comment/board-comment.service.ts","score":92},{"status":"R","path":"src/modules/card/card.controller.ts","old_path":"apps/api/src/modules/card/card.controller.ts","score":100},{"status":"R","path":"src/modules/card/card.dto.ts","old_path":"apps/api/src/modules/card/card.dto.ts","score":100},{"status":"R","path":"src/modules/card/card.entity.ts","old_path":"apps/api/src/modules/card/card.entity.ts","score":95},{"status":"R","path":"src/modules/card/card.module.ts","old_path":"apps/api/src/modules/card/card.module.ts","score":85},{"status":"R","path":"src/modules/card/card.repository.ts","old_path":"apps/api/src/modules/card/card.repository.ts","score":97},{"status":"R","path":"src/modules/card/card.service.ts","old_path":"apps/api/src/modules/card/card.service.ts","score":94},{"status":"R","path":"src/modules/common/common.dto.ts","old_path":"apps/api/src/modules/common/common.dto.ts","score":97},{"status":"R","path":"src/modules/compare/basic/compare-basic.controller.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","score":100},{"status":"R","path":"src/modules/compare/basic/compare-basic.dto.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","score":100},{"status":"R","path":"src/modules/compare/basic/compare-basic.entity.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","score":97},{"status":"R","path":"src/modules/compare/basic/compare-basic.module.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.module.ts","score":100},{"status":"R","path":"src/modules/compare/basic/compare-basic.repository.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","score":98},{"status":"R","path":"src/modules/compare/basic/compare-basic.service.ts","old_path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","score":95},{"status":"R","path":"src/modules/compare/detail/compare-detail.controller.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","score":100},{"status":"R","path":"src/modules/compare/detail/compare-detail.dto.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","score":100},{"status":"R","path":"src/modules/compare/detail/compare-detail.entity.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","score":100},{"status":"R","path":"src/modules/compare/detail/compare-detail.module.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.module.ts","score":100},{"status":"R","path":"src/modules/compare/detail/compare-detail.repository.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","score":98},{"status":"R","path":"src/modules/compare/detail/compare-detail.service.ts","old_path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","score":95},{"status":"R","path":"src/modules/fc/fc-admin.controller.ts","old_path":"apps/api/src/modules/fc/fc-admin.controller.ts","score":100},{"status":"R","path":"src/modules/fc/fc.controller.ts","old_path":"apps/api/src/modules/fc/fc.controller.ts","score":95},{"status":"R","path":"src/modules/fc/fc.dto.ts","old_path":"apps/api/src/modules/fc/fc.dto.ts","score":100},{"status":"R","path":"src/modules/fc/fc.entity.ts","old_path":"apps/api/src/modules/fc/fc.entity.ts","score":95},{"status":"R","path":"src/modules/fc/fc.module.ts","old_path":"apps/api/src/modules/fc/fc.module.ts","score":100},{"status":"R","path":"src/modules/fc/fc.repository.ts","old_path":"apps/api/src/modules/fc/fc.repository.ts","score":98},{"status":"R","path":"src/modules/fc/fc.service.ts","old_path":"apps/api/src/modules/fc/fc.service.ts","score":100},{"status":"R","path":"src/modules/invoice/invoice-storage.service.ts","old_path":"apps/api/src/modules/invoice/invoice-storage.service.ts","score":93},{"status":"R","path":"src/modules/invoice/invoice.builder.ts","old_path":"apps/api/src/modules/invoice/invoice.builder.ts","score":95},{"status":"R","path":"src/modules/invoice/invoice.controller.ts","old_path":"apps/api/src/modules/invoice/invoice.controller.ts","score":100},{"status":"R","path":"src/modules/invoice/invoice.drawer.ts","old_path":"apps/api/src/modules/invoice/invoice.drawer.ts","score":100},{"status":"R","path":"src/modules/invoice/invoice.dto.ts","old_path":"apps/api/src/modules/invoice/invoice.dto.ts","score":100},{"status":"R","path":"src/modules/invoice/invoice.module.ts","old_path":"apps/api/src/modules/invoice/invoice.module.ts","score":84},{"status":"R","path":"src/modules/invoice/invoice.repository.ts","old_path":"apps/api/src/modules/invoice/invoice.repository.ts","score":94},{"status":"R","path":"src/modules/invoice/invoice.service.ts","old_path":"apps/api/src/modules/invoice/invoice.service.ts","score":100},{"status":"R","path":"src/modules/medical/medical.controller.ts","old_path":"apps/api/src/modules/medical/medical.controller.ts","score":100},{"status":"R","path":"src/modules/medical/medical.module.ts","old_path":"apps/api/src/modules/medical/medical.module.ts","score":100},{"status":"R","path":"src/modules/medical/medical.service.ts","old_path":"apps/api/src/modules/medical/medical.service.ts","score":98},{"status":"R","path":"src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","score":100},{"status":"R","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","score":96},{"status":"R","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","score":93},{"status":"R","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","score":97},{"status":"R","path":"src/modules/order/order-detail/order-detail.module.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","score":100},{"status":"R","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","score":97},{"status":"R","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","score":92},{"status":"R","path":"src/modules/order/order/order-admin.controller.ts","old_path":"apps/api/src/modules/order/order/order-admin.controller.ts","score":100},{"status":"R","path":"src/modules/order/order/order.controller.ts","old_path":"apps/api/src/modules/order/order/order.controller.ts","score":95},{"status":"R","path":"src/modules/order/order/order.dto.ts","old_path":"apps/api/src/modules/order/order/order.dto.ts","score":90},{"status":"R","path":"src/modules/order/order/order.entity.ts","old_path":"apps/api/src/modules/order/order/order.entity.ts","score":95},{"status":"R","path":"src/modules/order/order/order.module.ts","old_path":"apps/api/src/modules/order/order/order.module.ts","score":77},{"status":"R","path":"src/modules/order/order/order.repository.ts","old_path":"apps/api/src/modules/order/order/order.repository.ts","score":99},{"status":"R","path":"src/modules/order/order/order.service.ts","old_path":"apps/api/src/modules/order/order/order.service.ts","score":90},{"status":"R","path":"src/modules/payment/payment.dto.ts","old_path":"apps/api/src/modules/payment/payment.dto.ts","score":100},{"status":"R","path":"src/modules/payment/payment.entity.ts","old_path":"apps/api/src/modules/payment/payment.entity.ts","score":97},{"status":"R","path":"src/modules/payment/payment.module.ts","old_path":"apps/api/src/modules/payment/payment.module.ts","score":86},{"status":"R","path":"src/modules/payment/payment.repository.ts","old_path":"apps/api/src/modules/payment/payment.repository.ts","score":90},{"status":"R","path":"src/modules/payment/payment.service.ts","old_path":"apps/api/src/modules/payment/payment.service.ts","score":91},{"status":"R","path":"src/modules/product/product-admin.controller.ts","old_path":"apps/api/src/modules/product/product-admin.controller.ts","score":100},{"status":"R","path":"src/modules/product/product.controller.ts","old_path":"apps/api/src/modules/product/product.controller.ts","score":100},{"status":"R","path":"src/modules/product/product.dto.ts","old_path":"apps/api/src/modules/product/product.dto.ts","score":100},{"status":"R","path":"src/modules/product/product.entity.ts","old_path":"apps/api/src/modules/product/product.entity.ts","score":97},{"status":"R","path":"src/modules/product/product.module.ts","old_path":"apps/api/src/modules/product/product.module.ts","score":100},{"status":"R","path":"src/modules/product/product.repository.ts","old_path":"apps/api/src/modules/product/product.repository.ts","score":97},{"status":"R","path":"src/modules/product/product.service.ts","old_path":"apps/api/src/modules/product/product.service.ts","score":94},{"status":"R","path":"src/modules/refund/refund-admin.controller.ts","old_path":"apps/api/src/modules/refund/refund-admin.controller.ts","score":100},{"status":"R","path":"src/modules/refund/refund.dto.ts","old_path":"apps/api/src/modules/refund/refund.dto.ts","score":100},{"status":"R","path":"src/modules/refund/refund.entity.ts","old_path":"apps/api/src/modules/refund/refund.entity.ts","score":96},{"status":"R","path":"src/modules/refund/refund.module.ts","old_path":"apps/api/src/modules/refund/refund.module.ts","score":100},{"status":"R","path":"src/modules/refund/refund.repository.ts","old_path":"apps/api/src/modules/refund/refund.repository.ts","score":93},{"status":"R","path":"src/modules/refund/refund.service.ts","old_path":"apps/api/src/modules/refund/refund.service.ts","score":91},{"status":"R","path":"src/modules/schedules/order.schedule.ts","old_path":"apps/api/src/modules/schedules/order.schedule.ts","score":96},{"status":"R","path":"src/modules/schedules/schedule.module.ts","old_path":"apps/api/src/modules/schedules/schedule.module.ts","score":100},{"status":"R","path":"src/modules/search/search-admin.controller.ts","old_path":"apps/api/src/modules/search/search-admin.controller.ts","score":100},{"status":"R","path":"src/modules/search/search.controller.ts","old_path":"apps/api/src/modules/search/search.controller.ts","score":100},{"status":"R","path":"src/modules/search/search.dto.ts","old_path":"apps/api/src/modules/search/search.dto.ts","score":100},{"status":"R","path":"src/modules/search/search.entity.ts","old_path":"apps/api/src/modules/search/search.entity.ts","score":100},{"status":"R","path":"src/modules/search/search.module.ts","old_path":"apps/api/src/modules/search/search.module.ts","score":100},{"status":"R","path":"src/modules/search/search.repository.ts","old_path":"apps/api/src/modules/search/search.repository.ts","score":98},{"status":"R","path":"src/modules/search/search.service.ts","old_path":"apps/api/src/modules/search/search.service.ts","score":94},{"status":"R","path":"src/modules/subscribe/subscribe-admin.controller.ts","old_path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","score":100},{"status":"R","path":"src/modules/subscribe/subscribe.controller.ts","old_path":"apps/api/src/modules/subscribe/subscribe.controller.ts","score":100},{"status":"R","path":"src/modules/subscribe/subscribe.dto.ts","old_path":"apps/api/src/modules/subscribe/subscribe.dto.ts","score":100},{"status":"R","path":"src/modules/subscribe/subscribe.entity.ts","old_path":"apps/api/src/modules/subscribe/subscribe.entity.ts","score":100},{"status":"R","path":"src/modules/subscribe/subscribe.module.ts","old_path":"apps/api/src/modules/subscribe/subscribe.module.ts","score":100},{"status":"R","path":"src/modules/subscribe/subscribe.repository.ts","old_path":"apps/api/src/modules/subscribe/subscribe.repository.ts","score":99},{"status":"R","path":"src/modules/subscribe/subscribe.service.ts","old_path":"apps/api/src/modules/subscribe/subscribe.service.ts","score":97},{"status":"R","path":"src/modules/treat/treat.controller.ts","old_path":"apps/api/src/modules/treat/treat.controller.ts","score":100},{"status":"R","path":"src/modules/treat/treat.dto.ts","old_path":"apps/api/src/modules/treat/treat.dto.ts","score":99},{"status":"R","path":"src/modules/treat/treat.event.ts","old_path":"apps/api/src/modules/treat/treat.event.ts","score":75},{"status":"A","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/treat/treat.repository.ts","old_path":"apps/api/src/modules/treat/treat.repository.ts","score":100},{"status":"R","path":"src/modules/treat/treat.service.ts","old_path":"apps/api/src/modules/treat/treat.service.ts","score":98},{"status":"R","path":"src/modules/user/user-admin.controller.ts","old_path":"apps/api/src/modules/user/user-admin.controller.ts","score":100},{"status":"R","path":"src/modules/user/user.dto.ts","old_path":"apps/api/src/modules/user/user.dto.ts","score":100},{"status":"R","path":"src/modules/user/user.entity.ts","old_path":"apps/api/src/modules/user/user.entity.ts","score":93},{"status":"R","path":"src/modules/user/user.module.ts","old_path":"apps/api/src/modules/user/user.module.ts","score":100},{"status":"R","path":"src/modules/user/user.repository.ts","old_path":"apps/api/src/modules/user/user.repository.ts","score":98},{"status":"R","path":"src/modules/user/user.service.ts","old_path":"apps/api/src/modules/user/user.service.ts","score":100},{"status":"R","path":"src/pino.ts","old_path":"apps/api/src/pino.ts","score":76},{"status":"R","path":"src/providers/aligo/aligo.dto.ts","old_path":"libs/aligo/src/aligo.dto.ts","score":100},{"status":"R","path":"src/providers/aligo/aligo.exception.ts","old_path":"libs/aligo/src/aligo.exception.ts","score":100},{"status":"R","path":"src/providers/aligo/aligo.interface.ts","old_path":"libs/aligo/src/aligo.interface.ts","score":100},{"status":"R","path":"src/providers/aligo/aligo.module.ts","old_path":"libs/aligo/src/aligo.module.ts","score":81},{"status":"R","path":"src/providers/aligo/aligo.service.ts","old_path":"libs/aligo/src/aligo.service.ts","score":92},{"status":"R","path":"src/providers/codef/codef-auth.service.ts","old_path":"apps/api/src/modules/codef/codef-auth.service.ts","score":93},{"status":"R","path":"src/providers/codef/codef.dto.ts","old_path":"apps/api/src/modules/codef/codef.dto.ts","score":100},{"status":"R","path":"src/providers/codef/codef.exception.ts","old_path":"apps/api/src/modules/codef/codef.exception.ts","score":100},{"status":"R","path":"src/providers/codef/codef.interface.ts","old_path":"apps/api/src/modules/codef/codef.interface.ts","score":100},{"status":"R","path":"src/providers/codef/codef.module.ts","old_path":"apps/api/src/modules/codef/codef.module.ts","score":65},{"status":"R","path":"src/providers/codef/codef.service.ts","old_path":"apps/api/src/modules/codef/codef.service.ts","score":89},{"status":"R","path":"src/providers/crypto/crypto.module.ts","old_path":"libs/crypto/src/crypto.module.ts","score":100},{"status":"R","path":"src/providers/crypto/crypto.service.ts","old_path":"libs/crypto/src/crypto.service.ts","score":100},{"status":"R","path":"src/providers/drizzle/drizzle.constant.ts","old_path":"libs/drizzle/src/drizzle.constant.ts","score":100},{"status":"R","path":"src/providers/drizzle/drizzle.module.ts","old_path":"libs/drizzle/src/drizzle.module.ts","score":100},{"status":"R","path":"src/providers/drizzle/drizzle.service.ts","old_path":"libs/drizzle/src/drizzle.service.ts","score":99},{"status":"R","path":"src/providers/drizzle/drizzle.utill.ts","old_path":"libs/drizzle/src/drizzle.utill.ts","score":100},{"status":"R","path":"src/providers/drizzle/mysql-error.constant.ts","old_path":"libs/drizzle/src/mysql-error.constant.ts","score":100},{"status":"R","path":"src/providers/drizzle/mysql-error.enum.ts","old_path":"libs/drizzle/src/mysql-error.enum.ts","score":100},{"status":"R","path":"src/providers/pdf/pdf.module.ts","old_path":"libs/pdf/src/pdf.module.ts","score":100},{"status":"R","path":"src/providers/pdf/pdf.service.ts","old_path":"libs/pdf/src/pdf.service.ts","score":100},{"status":"R","path":"src/providers/s3/s3.module.ts","old_path":"libs/s3/src/s3.module.ts","score":100},{"status":"R","path":"src/providers/s3/s3.service.ts","old_path":"libs/s3/src/s3.service.ts","score":97},{"status":"R","path":"src/providers/toss/toss.dto.ts","old_path":"libs/toss/src/toss.dto.ts","score":100},{"status":"R","path":"src/providers/toss/toss.exception.ts","old_path":"libs/toss/src/toss.exception.ts","score":100},{"status":"R","path":"src/providers/toss/toss.interface.ts","old_path":"libs/toss/src/toss.interface.ts","score":100},{"status":"R","path":"src/providers/toss/toss.module.ts","old_path":"libs/toss/src/toss.module.ts","score":80},{"status":"R","path":"src/providers/toss/toss.service.ts","old_path":"libs/toss/src/toss.service.ts","score":95},{"status":"R","path":"src/providers/webclient/webclient.module.ts","old_path":"libs/webclient/src/webclient.module.ts","score":100},{"status":"R","path":"src/providers/webclient/webclient.service.ts","old_path":"libs/webclient/src/webclient.service.ts","score":100},{"status":"R","path":"src/swagger.ts","old_path":"apps/api/src/swagger.ts","score":100},{"status":"R","path":"src/utils/shuffle.ts","old_path":"libs/utils/shuffle.ts","score":100},{"status":"R","path":"src/utils/type-parser.ts","old_path":"libs/utils/type-parser.ts","score":100},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":true,"structural_event":true}
{"sha":"35f28d8c1f09db4a171f6d1663a11f2db871df26","date":"2024-12-01T18:31:37+09:00","era":"A","subject":"refactor: 모노레포 전환","body":"","body_present":false,"is_merge":false,"file_count":244,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/drizzle.config.ts","old_path":"drizzle.config.ts","score":90},{"status":"R","path":"apps/api/src/app.controller.ts","old_path":"src/app.controller.ts","score":100},{"status":"R","path":"apps/api/src/app.module.ts","old_path":"src/app.module.ts","score":92},{"status":"R","path":"apps/api/src/config/configuration.ts","old_path":"src/config/configuration.ts","score":100},{"status":"R","path":"apps/api/src/constants/api.constant.ts","old_path":"src/constants/api.constant.ts","score":100},{"status":"R","path":"apps/api/src/fliters/all-exception.filter.ts","old_path":"src/fliters/all-exception.filter.ts","score":93},{"status":"R","path":"apps/api/src/helpers/format.helper.ts","old_path":"src/helpers/format.helper.ts","score":100},{"status":"R","path":"apps/api/src/helpers/uid.helper.ts","old_path":"src/helpers/uid.helper.ts","score":100},{"status":"R","path":"apps/api/src/interceptors/api-response.interceptor.ts","old_path":"src/interceptors/api-response.interceptor.ts","score":100},{"status":"R","path":"apps/api/src/invoice.seeder.ts","old_path":"src/invoice.seeder.ts","score":93},{"status":"A","path":"apps/api/src/kernel.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/main.ts","old_path":"src/main.ts","score":88},{"status":"R","path":"apps/api/src/modules/_sample/sample.controller.ts","old_path":"src/modules/_sample/sample.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.dto.ts","old_path":"src/modules/_sample/sample.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.entity.ts","old_path":"src/modules/_sample/sample.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.module.ts","old_path":"src/modules/_sample/sample.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.repository.ts","old_path":"src/modules/_sample/sample.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/_sample/sample.service.ts","old_path":"src/modules/_sample/sample.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":"src/modules/admin/admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":"src/modules/admin/admin.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":"src/modules/admin/admin.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/admin/admin.module.ts","old_path":"src/modules/admin/admin.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":"src/modules/admin/admin.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/admin/admin.service.ts","old_path":"src/modules/admin/admin.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":"src/modules/agency/agency.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":"src/modules/alarm/alarm.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":"src/modules/alarm/alarm.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":"src/modules/alarm/alarm.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/alarm/alarm.module.ts","old_path":"src/modules/alarm/alarm.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":"src/modules/alarm/alarm.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":"src/modules/alarm/alarm.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":"src/modules/alimtalk/alimtalk.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":"src/modules/alimtalk/alimtalk.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":"src/modules/alimtalk/alimtalk.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":"src/modules/alimtalk/alimtalk.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":"src/modules/alimtalk/alimtalk.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":"src/modules/alimtalk/alimtalk.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":"src/modules/allow-ip/allow-ip-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","old_path":"src/modules/allow-ip/allow-ip.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.entity.ts","old_path":"src/modules/allow-ip/allow-ip.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.module.ts","old_path":"src/modules/allow-ip/allow-ip.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.repository.ts","old_path":"src/modules/allow-ip/allow-ip.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.service.ts","old_path":"src/modules/allow-ip/allow-ip.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/analyze/analysis-admin.controller.ts","old_path":"src/modules/analyze/analysis-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-basic.entity.ts","old_path":"src/modules/analyze/analysis-basic.entity.ts","score":98},{"status":"R","path":"apps/api/src/modules/analyze/analysis-detail.entity.ts","old_path":"src/modules/analyze/analysis-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-prescibe.entity.ts","old_path":"src/modules/analyze/analysis-prescibe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":"src/modules/analyze/analyze.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto copy.ts","old_path":"src/modules/analyze/analyze.dto copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":"src/modules/analyze/analyze.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":"src/modules/analyze/analyze.module.ts","score":89},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository copy.ts","old_path":"src/modules/analyze/analyze.repository copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":"src/modules/analyze/analyze.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":"src/modules/analyze/analyze.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":"src/modules/auth/auth.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":"src/modules/auth/auth.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.module.ts","old_path":"src/modules/auth/auth.module.ts","score":82},{"status":"R","path":"apps/api/src/modules/auth/auth.service.ts","old_path":"src/modules/auth/auth.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":"src/modules/auth/jwt.guard.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":"src/modules/authority/authority-adimin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":"src/modules/authority/authority.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.entity.ts","old_path":"src/modules/authority/authority.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.module.ts","old_path":"src/modules/authority/authority.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":"src/modules/authority/authority.repository.ts","score":67},{"status":"R","path":"apps/api/src/modules/authority/authority.service.ts","old_path":"src/modules/authority/authority.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":"src/modules/board/board/board-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":"src/modules/board/board/board.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":"src/modules/board/board/board.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":"src/modules/board/board/board.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/board/board.module.ts","old_path":"src/modules/board/board/board.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":"src/modules/board/board/board.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/board/board/board.service.ts","old_path":"src/modules/board/board/board.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":"src/modules/board/category/board-category-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":"src/modules/board/category/board-category.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":"src/modules/board/category/board-category.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.entity.ts","old_path":"src/modules/board/category/board-category.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/board/category/board-category.module.ts","old_path":"src/modules/board/category/board-category.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":"src/modules/board/category/board-category.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":"src/modules/board/category/board-category.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":"src/modules/board/comment/board-comment-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":"src/modules/board/comment/board-comment.dto.ts","score":89},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.entity.ts","old_path":"src/modules/board/comment/board-comment.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.module.ts","old_path":"src/modules/board/comment/board-comment.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":"src/modules/board/comment/board-comment.repository.ts","score":91},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.service.ts","old_path":"src/modules/board/comment/board-comment.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/card/card.controller.ts","old_path":"src/modules/card/card.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.dto.ts","old_path":"src/modules/card/card.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.entity.ts","old_path":"src/modules/card/card.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/card/card.module.ts","old_path":"src/modules/card/card.module.ts","score":85},{"status":"R","path":"apps/api/src/modules/card/card.repository.ts","old_path":"src/modules/card/card.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/card/card.service.ts","old_path":"src/modules/card/card.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/codef/codef-auth.service.ts","old_path":"src/providers/codef/codef-auth.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":"src/providers/codef/codef.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.exception.ts","old_path":"src/providers/codef/codef.exception.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.interface.ts","old_path":"src/providers/codef/codef.interface.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.module.ts","old_path":"src/providers/codef/codef.module.ts","score":65},{"status":"R","path":"apps/api/src/modules/codef/codef.service.ts","old_path":"src/providers/codef/codef.service.ts","score":89},{"status":"R","path":"apps/api/src/modules/common/common.dto.ts","old_path":"src/modules/common/common.dto.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":"src/modules/compare/basic/compare-basic.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":"src/modules/compare/basic/compare-basic.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":"src/modules/compare/basic/compare-basic.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.module.ts","old_path":"src/modules/compare/basic/compare-basic.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":"src/modules/compare/basic/compare-basic.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":"src/modules/compare/basic/compare-basic.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":"src/modules/compare/detail/compare-detail.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":"src/modules/compare/detail/compare-detail.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":"src/modules/compare/detail/compare-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.module.ts","old_path":"src/modules/compare/detail/compare-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":"src/modules/compare/detail/compare-detail.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":"src/modules/compare/detail/compare-detail.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":"src/modules/fc/fc-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":"src/modules/fc/fc.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":"src/modules/fc/fc.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":"src/modules/fc/fc.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.module.ts","old_path":"src/modules/fc/fc.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":"src/modules/fc/fc.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/fc/fc.service.ts","old_path":"src/modules/fc/fc.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":"src/modules/invoice/invoice-storage.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/invoice/invoice.builder.ts","old_path":"src/modules/invoice/invoice.builder.ts","score":95},{"status":"R","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":"src/modules/invoice/invoice.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.drawer.ts","old_path":"src/modules/invoice/invoice.drawer.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":"src/modules/invoice/invoice.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":"src/modules/invoice/invoice.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":"src/modules/invoice/invoice.repository.ts","score":94},{"status":"R","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":"src/modules/invoice/invoice.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.controller.ts","old_path":"src/modules/medical/medical.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.module.ts","old_path":"src/modules/medical/medical.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.service.ts","old_path":"src/modules/medical/medical.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":"src/modules/order/order-detail/order-detail-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":"src/modules/order/order-detail/order-detail.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":"src/modules/order/order-detail/order-detail.dto.ts","score":93},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":"src/modules/order/order-detail/order-detail.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":"src/modules/order/order-detail/order-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":"src/modules/order/order-detail/order-detail.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":"src/modules/order/order-detail/order-detail.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":"src/modules/order/order/order-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":"src/modules/order/order/order.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":"src/modules/order/order/order.dto.ts","score":90},{"status":"R","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":"src/modules/order/order/order.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.module.ts","old_path":"src/modules/order/order/order.module.ts","score":77},{"status":"R","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":"src/modules/order/order/order.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/order/order/order.service.ts","old_path":"src/modules/order/order/order.service.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":"src/modules/payment/payment.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":"src/modules/payment/payment.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/payment/payment.module.ts","old_path":"src/modules/payment/payment.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":"src/modules/payment/payment.repository.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.service.ts","old_path":"src/modules/payment/payment.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":"src/modules/product/product-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.controller.ts","old_path":"src/modules/product/product.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.dto.ts","old_path":"src/modules/product/product.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.entity.ts","old_path":"src/modules/product/product.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.module.ts","old_path":"src/modules/product/product.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.repository.ts","old_path":"src/modules/product/product.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.service.ts","old_path":"src/modules/product/product.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":"src/modules/refund/refund-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.dto.ts","old_path":"src/modules/refund/refund.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.entity.ts","old_path":"src/modules/refund/refund.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/refund/refund.module.ts","old_path":"src/modules/refund/refund.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.repository.ts","old_path":"src/modules/refund/refund.repository.ts","score":93},{"status":"R","path":"apps/api/src/modules/refund/refund.service.ts","old_path":"src/modules/refund/refund.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/schedules/order.schedule.ts","old_path":"src/modules/schedules/order.schedule.ts","score":96},{"status":"R","path":"apps/api/src/modules/schedules/schedule.module.ts","old_path":"src/modules/schedules/schedule.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":"src/modules/search/search-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.controller.ts","old_path":"src/modules/search/search.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.dto.ts","old_path":"src/modules/search/search.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.entity.ts","old_path":"src/modules/search/search.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.module.ts","old_path":"src/modules/search/search.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.repository.ts","old_path":"src/modules/search/search.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/search/search.service.ts","old_path":"src/modules/search/search.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":"src/modules/subscribe/subscribe-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":"src/modules/subscribe/subscribe.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":"src/modules/subscribe/subscribe.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":"src/modules/subscribe/subscribe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":"src/modules/subscribe/subscribe.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":"src/modules/subscribe/subscribe.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":"src/modules/subscribe/subscribe.service.ts","score":97},{"status":"R","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":"src/modules/treat/treat.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":"src/modules/treat/treat.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/treat/treat.event.ts","old_path":"src/modules/treat/treat.event.ts","score":75},{"status":"A","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":"src/modules/treat/treat.repository.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.service.ts","old_path":"src/modules/treat/treat.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":"src/modules/user/user-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.dto.ts","old_path":"src/modules/user/user.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.entity.ts","old_path":"src/modules/user/user.entity.ts","score":93},{"status":"R","path":"apps/api/src/modules/user/user.module.ts","old_path":"src/modules/user/user.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.repository.ts","old_path":"src/modules/user/user.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user.service.ts","old_path":"src/modules/user/user.service.ts","score":100},{"status":"R","path":"apps/api/src/pino.ts","old_path":"src/pino.ts","score":76},{"status":"R","path":"apps/api/src/swagger.ts","old_path":"src/swagger.ts","score":100},{"status":"A","path":"apps/api/tsconfig.app.json","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/tsconfig.app.json","old_path":null,"score":null},{"status":"D","path":"dockerfile","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"R","path":"libs/aligo/src/aligo.dto.ts","old_path":"src/providers/aligo/aligo.dto.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.exception.ts","old_path":"src/providers/aligo/aligo.exception.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.interface.ts","old_path":"src/providers/aligo/aligo.interface.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.module.ts","old_path":"src/providers/aligo/aligo.module.ts","score":81},{"status":"R","path":"libs/aligo/src/aligo.service.ts","old_path":"src/providers/aligo/aligo.service.ts","score":92},{"status":"A","path":"libs/aligo/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/aligo/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/crypto/src/crypto.module.ts","old_path":"src/providers/crypto/crypto.module.ts","score":100},{"status":"R","path":"libs/crypto/src/crypto.service.ts","old_path":"src/providers/crypto/crypto.service.ts","score":100},{"status":"A","path":"libs/crypto/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/crypto/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/drizzle.constant.ts","old_path":"src/providers/drizzle/drizzle.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.module.ts","old_path":"src/providers/drizzle/drizzle.module.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.service.ts","old_path":"src/providers/drizzle/drizzle.service.ts","score":99},{"status":"R","path":"libs/drizzle/src/drizzle.utill.ts","old_path":"src/providers/drizzle/drizzle.utill.ts","score":100},{"status":"A","path":"libs/drizzle/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/mysql-error.constant.ts","old_path":"src/providers/drizzle/mysql-error.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/mysql-error.enum.ts","old_path":"src/providers/drizzle/mysql-error.enum.ts","score":100},{"status":"A","path":"libs/drizzle/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/pdf/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/pdf/src/pdf.module.ts","old_path":"src/providers/pdf/pdf.module.ts","score":100},{"status":"R","path":"libs/pdf/src/pdf.service.ts","old_path":"src/providers/pdf/pdf.service.ts","score":100},{"status":"A","path":"libs/pdf/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/s3/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/s3/src/s3.module.ts","old_path":"src/providers/s3/s3.module.ts","score":100},{"status":"R","path":"libs/s3/src/s3.service.ts","old_path":"src/providers/s3/s3.service.ts","score":97},{"status":"A","path":"libs/s3/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/toss/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/toss/src/toss.dto.ts","old_path":"src/providers/toss/toss.dto.ts","score":100},{"status":"R","path":"libs/toss/src/toss.exception.ts","old_path":"src/providers/toss/toss.exception.ts","score":100},{"status":"R","path":"libs/toss/src/toss.interface.ts","old_path":"src/providers/toss/toss.interface.ts","score":100},{"status":"R","path":"libs/toss/src/toss.module.ts","old_path":"src/providers/toss/toss.module.ts","score":80},{"status":"R","path":"libs/toss/src/toss.service.ts","old_path":"src/providers/toss/toss.service.ts","score":95},{"status":"A","path":"libs/toss/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/utils/shuffle.ts","old_path":"src/utils/shuffle.ts","score":100},{"status":"R","path":"libs/utils/type-parser.ts","old_path":"src/utils/type-parser.ts","score":100},{"status":"A","path":"libs/webclient/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/webclient/src/webclient.module.ts","old_path":"src/providers/webclient/webclient.module.ts","score":100},{"status":"R","path":"libs/webclient/src/webclient.service.ts","old_path":"src/providers/webclient/webclient.service.ts","score":100},{"status":"A","path":"libs/webclient/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"D","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":true,"structural_event":true}
{"sha":"5d7346d82bce4ceba90d5af5d015d9b2f7f58f54","date":"2024-12-01T18:31:37+09:00","era":"A","subject":"refactor: 모노레포 전환","body":"","body_present":false,"is_merge":false,"file_count":244,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":"apps/api/dockerfile","old_path":null,"score":null},{"status":"R","path":"apps/api/drizzle.config.ts","old_path":"drizzle.config.ts","score":90},{"status":"R","path":"apps/api/src/app.controller.ts","old_path":"src/app.controller.ts","score":100},{"status":"R","path":"apps/api/src/app.module.ts","old_path":"src/app.module.ts","score":92},{"status":"R","path":"apps/api/src/config/configuration.ts","old_path":"src/config/configuration.ts","score":100},{"status":"R","path":"apps/api/src/constants/api.constant.ts","old_path":"src/constants/api.constant.ts","score":100},{"status":"R","path":"apps/api/src/fliters/all-exception.filter.ts","old_path":"src/fliters/all-exception.filter.ts","score":93},{"status":"R","path":"apps/api/src/helpers/format.helper.ts","old_path":"src/helpers/format.helper.ts","score":100},{"status":"R","path":"apps/api/src/helpers/uid.helper.ts","old_path":"src/helpers/uid.helper.ts","score":100},{"status":"R","path":"apps/api/src/interceptors/api-response.interceptor.ts","old_path":"src/interceptors/api-response.interceptor.ts","score":100},{"status":"R","path":"apps/api/src/invoice.seeder.ts","old_path":"src/invoice.seeder.ts","score":93},{"status":"A","path":"apps/api/src/kernel.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/main.ts","old_path":"src/main.ts","score":88},{"status":"R","path":"apps/api/src/modules/_sample/sample.controller.ts","old_path":"src/modules/_sample/sample.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.dto.ts","old_path":"src/modules/_sample/sample.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.entity.ts","old_path":"src/modules/_sample/sample.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.module.ts","old_path":"src/modules/_sample/sample.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/_sample/sample.repository.ts","old_path":"src/modules/_sample/sample.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/_sample/sample.service.ts","old_path":"src/modules/_sample/sample.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.controller.ts","old_path":"src/modules/admin/admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.dto.ts","old_path":"src/modules/admin/admin.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.entity.ts","old_path":"src/modules/admin/admin.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/admin/admin.module.ts","old_path":"src/modules/admin/admin.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/admin/admin.repository.ts","old_path":"src/modules/admin/admin.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/admin/admin.service.ts","old_path":"src/modules/admin/admin.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/agency/agency.entity.ts","old_path":"src/modules/agency/agency.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/alarm/alarm.controller.ts","old_path":"src/modules/alarm/alarm.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.dto.ts","old_path":"src/modules/alarm/alarm.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alarm/alarm.entity.ts","old_path":"src/modules/alarm/alarm.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/alarm/alarm.module.ts","old_path":"src/modules/alarm/alarm.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/alarm/alarm.repository.ts","old_path":"src/modules/alarm/alarm.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/alarm/alarm.service.ts","old_path":"src/modules/alarm/alarm.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.controller.ts","old_path":"src/modules/alimtalk/alimtalk.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.dto.ts","old_path":"src/modules/alimtalk/alimtalk.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.entity.ts","old_path":"src/modules/alimtalk/alimtalk.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.module.ts","old_path":"src/modules/alimtalk/alimtalk.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.repository.ts","old_path":"src/modules/alimtalk/alimtalk.repository.ts","score":66},{"status":"R","path":"apps/api/src/modules/alimtalk/alimtalk.service.ts","old_path":"src/modules/alimtalk/alimtalk.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":"src/modules/allow-ip/allow-ip-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.dto.ts","old_path":"src/modules/allow-ip/allow-ip.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.entity.ts","old_path":"src/modules/allow-ip/allow-ip.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.module.ts","old_path":"src/modules/allow-ip/allow-ip.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.repository.ts","old_path":"src/modules/allow-ip/allow-ip.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/allow-ip/allow-ip.service.ts","old_path":"src/modules/allow-ip/allow-ip.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/analyze/analysis-admin.controller.ts","old_path":"src/modules/analyze/analysis-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-basic.entity.ts","old_path":"src/modules/analyze/analysis-basic.entity.ts","score":98},{"status":"R","path":"apps/api/src/modules/analyze/analysis-detail.entity.ts","old_path":"src/modules/analyze/analysis-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analysis-prescibe.entity.ts","old_path":"src/modules/analyze/analysis-prescibe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.controller.ts","old_path":"src/modules/analyze/analyze.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto copy.ts","old_path":"src/modules/analyze/analyze.dto copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.dto.ts","old_path":"src/modules/analyze/analyze.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.module.ts","old_path":"src/modules/analyze/analyze.module.ts","score":89},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository copy.ts","old_path":"src/modules/analyze/analyze.repository copy.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.repository.ts","old_path":"src/modules/analyze/analyze.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/analyze/analyze.service.ts","old_path":"src/modules/analyze/analyze.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.controller.ts","old_path":"src/modules/auth/auth.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.dto.ts","old_path":"src/modules/auth/auth.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/auth/auth.module.ts","old_path":"src/modules/auth/auth.module.ts","score":82},{"status":"R","path":"apps/api/src/modules/auth/auth.service.ts","old_path":"src/modules/auth/auth.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/auth/jwt.guard.ts","old_path":"src/modules/auth/jwt.guard.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority-adimin.controller.ts","old_path":"src/modules/authority/authority-adimin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.dto.ts","old_path":"src/modules/authority/authority.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.entity.ts","old_path":"src/modules/authority/authority.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.module.ts","old_path":"src/modules/authority/authority.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/authority/authority.repository.ts","old_path":"src/modules/authority/authority.repository.ts","score":67},{"status":"R","path":"apps/api/src/modules/authority/authority.service.ts","old_path":"src/modules/authority/authority.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board-admin.controller.ts","old_path":"src/modules/board/board/board-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.controller.ts","old_path":"src/modules/board/board/board.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.dto.ts","old_path":"src/modules/board/board/board.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.entity.ts","old_path":"src/modules/board/board/board.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/board/board.module.ts","old_path":"src/modules/board/board/board.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/board/board.repository.ts","old_path":"src/modules/board/board/board.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/board/board/board.service.ts","old_path":"src/modules/board/board/board.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/category/board-category-admin.controller.ts","old_path":"src/modules/board/category/board-category-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.controller.ts","old_path":"src/modules/board/category/board-category.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.dto.ts","old_path":"src/modules/board/category/board-category.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.entity.ts","old_path":"src/modules/board/category/board-category.entity.ts","score":94},{"status":"R","path":"apps/api/src/modules/board/category/board-category.module.ts","old_path":"src/modules/board/category/board-category.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/category/board-category.repository.ts","old_path":"src/modules/board/category/board-category.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/board/category/board-category.service.ts","old_path":"src/modules/board/category/board-category.service.ts","score":96},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment-admin.controller.ts","old_path":"src/modules/board/comment/board-comment-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.dto.ts","old_path":"src/modules/board/comment/board-comment.dto.ts","score":89},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.entity.ts","old_path":"src/modules/board/comment/board-comment.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.module.ts","old_path":"src/modules/board/comment/board-comment.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.repository.ts","old_path":"src/modules/board/comment/board-comment.repository.ts","score":91},{"status":"R","path":"apps/api/src/modules/board/comment/board-comment.service.ts","old_path":"src/modules/board/comment/board-comment.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/card/card.controller.ts","old_path":"src/modules/card/card.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.dto.ts","old_path":"src/modules/card/card.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/card/card.entity.ts","old_path":"src/modules/card/card.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/card/card.module.ts","old_path":"src/modules/card/card.module.ts","score":85},{"status":"R","path":"apps/api/src/modules/card/card.repository.ts","old_path":"src/modules/card/card.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/card/card.service.ts","old_path":"src/modules/card/card.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/codef/codef-auth.service.ts","old_path":"src/providers/codef/codef-auth.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/codef/codef.dto.ts","old_path":"src/providers/codef/codef.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.exception.ts","old_path":"src/providers/codef/codef.exception.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.interface.ts","old_path":"src/providers/codef/codef.interface.ts","score":100},{"status":"R","path":"apps/api/src/modules/codef/codef.module.ts","old_path":"src/providers/codef/codef.module.ts","score":65},{"status":"R","path":"apps/api/src/modules/codef/codef.service.ts","old_path":"src/providers/codef/codef.service.ts","score":89},{"status":"R","path":"apps/api/src/modules/common/common.dto.ts","old_path":"src/modules/common/common.dto.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.controller.ts","old_path":"src/modules/compare/basic/compare-basic.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.dto.ts","old_path":"src/modules/compare/basic/compare-basic.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.entity.ts","old_path":"src/modules/compare/basic/compare-basic.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.module.ts","old_path":"src/modules/compare/basic/compare-basic.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.repository.ts","old_path":"src/modules/compare/basic/compare-basic.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/basic/compare-basic.service.ts","old_path":"src/modules/compare/basic/compare-basic.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.controller.ts","old_path":"src/modules/compare/detail/compare-detail.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.dto.ts","old_path":"src/modules/compare/detail/compare-detail.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.entity.ts","old_path":"src/modules/compare/detail/compare-detail.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.module.ts","old_path":"src/modules/compare/detail/compare-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.repository.ts","old_path":"src/modules/compare/detail/compare-detail.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/compare/detail/compare-detail.service.ts","old_path":"src/modules/compare/detail/compare-detail.service.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc-admin.controller.ts","old_path":"src/modules/fc/fc-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.controller.ts","old_path":"src/modules/fc/fc.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.dto.ts","old_path":"src/modules/fc/fc.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.entity.ts","old_path":"src/modules/fc/fc.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/fc/fc.module.ts","old_path":"src/modules/fc/fc.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/fc/fc.repository.ts","old_path":"src/modules/fc/fc.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/fc/fc.service.ts","old_path":"src/modules/fc/fc.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice-storage.service.ts","old_path":"src/modules/invoice/invoice-storage.service.ts","score":93},{"status":"R","path":"apps/api/src/modules/invoice/invoice.builder.ts","old_path":"src/modules/invoice/invoice.builder.ts","score":95},{"status":"R","path":"apps/api/src/modules/invoice/invoice.controller.ts","old_path":"src/modules/invoice/invoice.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.drawer.ts","old_path":"src/modules/invoice/invoice.drawer.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.dto.ts","old_path":"src/modules/invoice/invoice.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/invoice/invoice.module.ts","old_path":"src/modules/invoice/invoice.module.ts","score":84},{"status":"R","path":"apps/api/src/modules/invoice/invoice.repository.ts","old_path":"src/modules/invoice/invoice.repository.ts","score":94},{"status":"R","path":"apps/api/src/modules/invoice/invoice.service.ts","old_path":"src/modules/invoice/invoice.service.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.controller.ts","old_path":"src/modules/medical/medical.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.module.ts","old_path":"src/modules/medical/medical.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/medical/medical.service.ts","old_path":"src/modules/medical/medical.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":"src/modules/order/order-detail/order-detail-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.controller.ts","old_path":"src/modules/order/order-detail/order-detail.controller.ts","score":96},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.dto.ts","old_path":"src/modules/order/order-detail/order-detail.dto.ts","score":93},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.entity.ts","old_path":"src/modules/order/order-detail/order-detail.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.module.ts","old_path":"src/modules/order/order-detail/order-detail.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.repository.ts","old_path":"src/modules/order/order-detail/order-detail.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/order/order-detail/order-detail.service.ts","old_path":"src/modules/order/order-detail/order-detail.service.ts","score":92},{"status":"R","path":"apps/api/src/modules/order/order/order-admin.controller.ts","old_path":"src/modules/order/order/order-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/order/order/order.controller.ts","old_path":"src/modules/order/order/order.controller.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.dto.ts","old_path":"src/modules/order/order/order.dto.ts","score":90},{"status":"R","path":"apps/api/src/modules/order/order/order.entity.ts","old_path":"src/modules/order/order/order.entity.ts","score":95},{"status":"R","path":"apps/api/src/modules/order/order/order.module.ts","old_path":"src/modules/order/order/order.module.ts","score":77},{"status":"R","path":"apps/api/src/modules/order/order/order.repository.ts","old_path":"src/modules/order/order/order.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/order/order/order.service.ts","old_path":"src/modules/order/order/order.service.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.dto.ts","old_path":"src/modules/payment/payment.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/payment/payment.entity.ts","old_path":"src/modules/payment/payment.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/payment/payment.module.ts","old_path":"src/modules/payment/payment.module.ts","score":86},{"status":"R","path":"apps/api/src/modules/payment/payment.repository.ts","old_path":"src/modules/payment/payment.repository.ts","score":90},{"status":"R","path":"apps/api/src/modules/payment/payment.service.ts","old_path":"src/modules/payment/payment.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/product/product-admin.controller.ts","old_path":"src/modules/product/product-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.controller.ts","old_path":"src/modules/product/product.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.dto.ts","old_path":"src/modules/product/product.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.entity.ts","old_path":"src/modules/product/product.entity.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.module.ts","old_path":"src/modules/product/product.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/product/product.repository.ts","old_path":"src/modules/product/product.repository.ts","score":97},{"status":"R","path":"apps/api/src/modules/product/product.service.ts","old_path":"src/modules/product/product.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/refund/refund-admin.controller.ts","old_path":"src/modules/refund/refund-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.dto.ts","old_path":"src/modules/refund/refund.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.entity.ts","old_path":"src/modules/refund/refund.entity.ts","score":96},{"status":"R","path":"apps/api/src/modules/refund/refund.module.ts","old_path":"src/modules/refund/refund.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/refund/refund.repository.ts","old_path":"src/modules/refund/refund.repository.ts","score":93},{"status":"R","path":"apps/api/src/modules/refund/refund.service.ts","old_path":"src/modules/refund/refund.service.ts","score":91},{"status":"R","path":"apps/api/src/modules/schedules/order.schedule.ts","old_path":"src/modules/schedules/order.schedule.ts","score":96},{"status":"R","path":"apps/api/src/modules/schedules/schedule.module.ts","old_path":"src/modules/schedules/schedule.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search-admin.controller.ts","old_path":"src/modules/search/search-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.controller.ts","old_path":"src/modules/search/search.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.dto.ts","old_path":"src/modules/search/search.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.entity.ts","old_path":"src/modules/search/search.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.module.ts","old_path":"src/modules/search/search.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/search/search.repository.ts","old_path":"src/modules/search/search.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/search/search.service.ts","old_path":"src/modules/search/search.service.ts","score":94},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe-admin.controller.ts","old_path":"src/modules/subscribe/subscribe-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.controller.ts","old_path":"src/modules/subscribe/subscribe.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.dto.ts","old_path":"src/modules/subscribe/subscribe.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.entity.ts","old_path":"src/modules/subscribe/subscribe.entity.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.module.ts","old_path":"src/modules/subscribe/subscribe.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.repository.ts","old_path":"src/modules/subscribe/subscribe.repository.ts","score":99},{"status":"R","path":"apps/api/src/modules/subscribe/subscribe.service.ts","old_path":"src/modules/subscribe/subscribe.service.ts","score":97},{"status":"R","path":"apps/api/src/modules/treat/treat.controller.ts","old_path":"src/modules/treat/treat.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.dto.ts","old_path":"src/modules/treat/treat.dto.ts","score":99},{"status":"R","path":"apps/api/src/modules/treat/treat.event.ts","old_path":"src/modules/treat/treat.event.ts","score":75},{"status":"A","path":"apps/api/src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"R","path":"apps/api/src/modules/treat/treat.repository.ts","old_path":"src/modules/treat/treat.repository.ts","score":100},{"status":"R","path":"apps/api/src/modules/treat/treat.service.ts","old_path":"src/modules/treat/treat.service.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user-admin.controller.ts","old_path":"src/modules/user/user-admin.controller.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.dto.ts","old_path":"src/modules/user/user.dto.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.entity.ts","old_path":"src/modules/user/user.entity.ts","score":93},{"status":"R","path":"apps/api/src/modules/user/user.module.ts","old_path":"src/modules/user/user.module.ts","score":100},{"status":"R","path":"apps/api/src/modules/user/user.repository.ts","old_path":"src/modules/user/user.repository.ts","score":98},{"status":"R","path":"apps/api/src/modules/user/user.service.ts","old_path":"src/modules/user/user.service.ts","score":100},{"status":"R","path":"apps/api/src/pino.ts","old_path":"src/pino.ts","score":76},{"status":"R","path":"apps/api/src/swagger.ts","old_path":"src/swagger.ts","score":100},{"status":"A","path":"apps/api/tsconfig.app.json","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/main.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.controller.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.module.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/src/scheduler.service.ts","old_path":null,"score":null},{"status":"A","path":"apps/scheduler/tsconfig.app.json","old_path":null,"score":null},{"status":"D","path":"dockerfile","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"R","path":"libs/aligo/src/aligo.dto.ts","old_path":"src/providers/aligo/aligo.dto.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.exception.ts","old_path":"src/providers/aligo/aligo.exception.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.interface.ts","old_path":"src/providers/aligo/aligo.interface.ts","score":100},{"status":"R","path":"libs/aligo/src/aligo.module.ts","old_path":"src/providers/aligo/aligo.module.ts","score":81},{"status":"R","path":"libs/aligo/src/aligo.service.ts","old_path":"src/providers/aligo/aligo.service.ts","score":92},{"status":"A","path":"libs/aligo/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/aligo/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/crypto/src/crypto.module.ts","old_path":"src/providers/crypto/crypto.module.ts","score":100},{"status":"R","path":"libs/crypto/src/crypto.service.ts","old_path":"src/providers/crypto/crypto.service.ts","score":100},{"status":"A","path":"libs/crypto/src/index.ts","old_path":null,"score":null},{"status":"A","path":"libs/crypto/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/drizzle.constant.ts","old_path":"src/providers/drizzle/drizzle.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.module.ts","old_path":"src/providers/drizzle/drizzle.module.ts","score":100},{"status":"R","path":"libs/drizzle/src/drizzle.service.ts","old_path":"src/providers/drizzle/drizzle.service.ts","score":99},{"status":"R","path":"libs/drizzle/src/drizzle.utill.ts","old_path":"src/providers/drizzle/drizzle.utill.ts","score":100},{"status":"A","path":"libs/drizzle/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/drizzle/src/mysql-error.constant.ts","old_path":"src/providers/drizzle/mysql-error.constant.ts","score":100},{"status":"R","path":"libs/drizzle/src/mysql-error.enum.ts","old_path":"src/providers/drizzle/mysql-error.enum.ts","score":100},{"status":"A","path":"libs/drizzle/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/pdf/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/pdf/src/pdf.module.ts","old_path":"src/providers/pdf/pdf.module.ts","score":100},{"status":"R","path":"libs/pdf/src/pdf.service.ts","old_path":"src/providers/pdf/pdf.service.ts","score":100},{"status":"A","path":"libs/pdf/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/s3/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/s3/src/s3.module.ts","old_path":"src/providers/s3/s3.module.ts","score":100},{"status":"R","path":"libs/s3/src/s3.service.ts","old_path":"src/providers/s3/s3.service.ts","score":97},{"status":"A","path":"libs/s3/tsconfig.lib.json","old_path":null,"score":null},{"status":"A","path":"libs/toss/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/toss/src/toss.dto.ts","old_path":"src/providers/toss/toss.dto.ts","score":100},{"status":"R","path":"libs/toss/src/toss.exception.ts","old_path":"src/providers/toss/toss.exception.ts","score":100},{"status":"R","path":"libs/toss/src/toss.interface.ts","old_path":"src/providers/toss/toss.interface.ts","score":100},{"status":"R","path":"libs/toss/src/toss.module.ts","old_path":"src/providers/toss/toss.module.ts","score":80},{"status":"R","path":"libs/toss/src/toss.service.ts","old_path":"src/providers/toss/toss.service.ts","score":95},{"status":"A","path":"libs/toss/tsconfig.lib.json","old_path":null,"score":null},{"status":"R","path":"libs/utils/shuffle.ts","old_path":"src/utils/shuffle.ts","score":100},{"status":"R","path":"libs/utils/type-parser.ts","old_path":"src/utils/type-parser.ts","score":100},{"status":"A","path":"libs/webclient/src/index.ts","old_path":null,"score":null},{"status":"R","path":"libs/webclient/src/webclient.module.ts","old_path":"src/providers/webclient/webclient.module.ts","score":100},{"status":"R","path":"libs/webclient/src/webclient.service.ts","old_path":"src/providers/webclient/webclient.service.ts","score":100},{"status":"A","path":"libs/webclient/tsconfig.lib.json","old_path":null,"score":null},{"status":"M","path":"nest-cli.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"D","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":true,"structural_event":true}
{"sha":"c337a9a6e6b95833995f2006b6e7cf881bd413f3","date":"2024-11-29T19:01:29+09:00","era":"A","subject":"chore: Add not null constraints","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"scripts/download-all-invoice.js","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"71ae23e2a6625fb31cb96913733360d5c06566cb","date":"2024-11-29T18:53:15+09:00","era":"A","subject":"fix: Add validation on signature","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55bc97d01f2f2fd864846a062d1ce3acbf33faa8","date":"2024-11-29T18:46:25+09:00","era":"A","subject":"feat: 서명이미지 드로우 구현","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd57c3dcda9a2754f3a209a657955f2169d57186","date":"2024-11-29T17:47:12+09:00","era":"A","subject":"fix: 청구서발급내역 생성 쿼리 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/invoice/invoice.builder.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a8815872d41d08fc6c3f55d5ae8ba742d60bb19","date":"2024-11-29T17:23:27+09:00","era":"A","subject":"remove: Remove unused dependency","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6287d1a49d28337505a7c558bb37d5eb12287eaa","date":"2024-11-29T17:18:50+09:00","era":"A","subject":"feat: 청구서발급내역 ResponseDto 생성","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06c1db4477ab0a3b8d59a4e2efcc22232ad855b7","date":"2024-11-29T17:14:45+09:00","era":"A","subject":"refactor: Remove db round trip","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"982b818e324085aa923796542769723d3ce442ef","date":"2024-11-29T17:05:33+09:00","era":"A","subject":"fix: 중복데이터 저장 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"88230f790e4e1e8c1a4ef53e677608a61bca9bf0","date":"2024-11-29T16:51:36+09:00","era":"A","subject":"feat: 청구서발급내역상세 API 구현","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e709ce50f24ea1a88d639744ebee5c59bb7c7e3","date":"2024-11-29T16:49:20+09:00","era":"A","subject":"fix: 발급내역 목록 조회 시 pk 반환","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"09e700fc67e8814996fddb844707cc32cbb5f151","date":"2024-11-29T16:48:48+09:00","era":"A","subject":"fix: 한달내의 발급내역목만 조회","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b5cc0ac15da360dbd8fcb33453b31a188bd03c6f","date":"2024-11-29T16:45:04+09:00","era":"A","subject":"refactor: 청구서발급내역 보험사명 어레이로 저장","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ab04a229ae41dbd528046b99d8fff04edad6c921","date":"2024-11-29T16:24:34+09:00","era":"A","subject":"feat: 청구서 발급내역 조회 구현","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6c7919fe90db7de52ba53381e76ba6084fc0cde","date":"2024-11-29T15:45:28+09:00","era":"A","subject":"fix: 라우트 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a2911a6b3c8f9b0bbf929951d5f7c380e4457de","date":"2024-11-29T15:44:53+09:00","era":"A","subject":"refactor: 청구서 발급내역 생성 API 트랜잭션 개선","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd1373b5f3f07ecd41a7a90cf8010b896ac25866","date":"2024-11-29T15:36:08+09:00","era":"A","subject":"feat: 청구서발급내역생성 API 구현:","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ae3c3d3a8dd9e222dd2e665262784a057c89d56b","date":"2024-11-29T15:35:40+09:00","era":"A","subject":"fix: 알람 테이블 컴파일 오류 수정","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2c3f64424a92b2d4b8f0c7b692bfbc72be134fbe","date":"2024-11-29T11:04:53+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b65a4213c587540a503dfaa5d790de19c5ce1647","date":"2024-11-29T11:04:38+09:00","era":"A","subject":"feat(): payment,subscribe type수정","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/analyze/analyze.dto copy.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/analyze/analyze.repository copy.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/aligo/aligo.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/aligo/aligo.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdc3b7121f0556750bc7898260aef8711c9e5515","date":"2024-11-29T10:30:51+09:00","era":"A","subject":"refactor: 청구서모듈에  레포지토리 패턴 적용","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e0cd193e39a39b883cfc9f472390b7c1101b756","date":"2024-11-28T17:40:15+09:00","era":"A","subject":"chore: Remove origins from exposedHeaders","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dc41c62dfb57ab3de81c74e29579018c975f04d7","date":"2024-11-28T17:10:48+09:00","era":"A","subject":"merging","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50c6f33e4e112aac840b04178dc98656acd9540b","date":"2024-11-28T16:56:56+09:00","era":"A","subject":"chore: Merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e79971e0b6028a1b394c85cc06cbf0ae34f0ea7","date":"2024-11-28T16:56:13+09:00","era":"A","subject":"refactor: Using regexp on CORS setup","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"217c69f1c69949c187e6bf99285dc94f3f320fbd","date":"2024-11-28T16:34:29+09:00","era":"A","subject":"feat(): 알리고 알림톡 1차","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/aligo/aligo.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/aligo/aligo.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"93743da31bb175f8b7750824f2b6b7bcb98458bf","date":"2024-11-28T12:33:41+09:00","era":"A","subject":"chore(): workflows 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":".github/workflows/prod.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"28b1b9634cbf30cea78ee6208b9978cdb1927adb","date":"2024-11-28T11:41:27+09:00","era":"A","subject":"chore(): 다음결제일 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3bea5637f17a1481551097e6f87560b3dc380e06","date":"2024-11-28T11:27:20+09:00","era":"A","subject":"chore() alimtalk folder 추가","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"A","path":"src/modules/alimtalk/alimtalk.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alimtalk/alimtalk.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alimtalk/alimtalk.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alimtalk/alimtalk.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alimtalk/alimtalk.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alimtalk/alimtalk.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"277b497885c82e05d6879386ded700b7c329af5c","date":"2024-11-28T11:21:35+09:00","era":"A","subject":"chore(): 즉시 결제 유효성검사 제거","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56190292151036bb016f6795cc7939b02f1b03d8","date":"2024-11-28T10:41:30+09:00","era":"A","subject":"chore():","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2d1b29dc1987ffe390f3fce624570e793efc1109","date":"2024-11-28T10:24:02+09:00","era":"A","subject":"feat():최초구독시 중복구독불가 유효성 검사 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"781b7760ed7d31cede65f9224160b63be4409f55","date":"2024-11-28T09:43:06+09:00","era":"A","subject":"feat(): aligo service 추가 1차","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/aligo/aligo.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/aligo/aligo.exception.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/aligo/aligo.interface.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/aligo/aligo.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/aligo/aligo.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f3f78afcce9b4e399d3ed6fbc60a02ee97ab998e","date":"2024-11-26T17:39:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1cba337c52b9a3a4e5e3456c211233f81d3bb8c","date":"2024-11-26T17:11:03+09:00","era":"A","subject":"feat(): 정기 구독 스케줄러 테스트 후 수정","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/schedules/schedule.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"acd48f17448b8e6e01f1baf1d8eed68578759224","date":"2024-11-26T14:43:02+09:00","era":"A","subject":"feat(): 정기결제 1차","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/schedules/order.schedule.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/schedules/schedule.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"99446972e87ab11b35883877aebe6624963311cc","date":"2024-11-25T14:25:18+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dcb23b27dab54d44fddc2e386038fae9197eb82a","date":"2024-11-25T12:42:45+09:00","era":"A","subject":"chore() 분석결과 항목추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6aa675781148cb51045e84dcc2e27949a6b33b15","date":"2024-11-25T12:01:51+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea09cb6400b981e77f666d1b03aa004bc4a89827","date":"2024-11-25T12:01:03+09:00","era":"A","subject":"chore(): 유저 구독정보 조건추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1bc21e793eacfa9e84c0be7107eeb68bf16f08ad","date":"2024-11-25T11:09:51+09:00","era":"A","subject":"feat(): 토스 결제취소","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df0bb4ea74e6e9ff90681e537d05d84eadd7b108","date":"2024-11-25T10:23:25+09:00","era":"A","subject":"feat(): 토스 결제취소 api 연동","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c66e6d70b8140c727b8a0c330542e04714df35be","date":"2024-11-22T17:16:26+09:00","era":"A","subject":"chore(): 상품 검색 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7a719165ad8b65df42aec4090e3b239705bd0c9","date":"2024-11-22T16:15:46+09:00","era":"A","subject":"feat(): toss 결제하기","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc3d85b3c48757012caeb4a65826a62cc97144d7","date":"2024-11-22T14:33:43+09:00","era":"A","subject":"chore():대표카드변경","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/mysql-error.enum.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/webclient/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"267d80cd0579607c8dd6b32d7d1cd310531feedb","date":"2024-11-22T10:17:32+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"897dd95391ef5c98c56efa9f819f188ae456b051","date":"2024-11-22T09:59:08+09:00","era":"A","subject":"chore(): 분석목록 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7150b52e5aeff52fe93b7700517a1990df07f9e3","date":"2024-11-21T17:49:13+09:00","era":"A","subject":"feat(): 분석상세 리턴타입변경","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analysis-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.dto copy.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.repository copy.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b68aca15d2dec8119209cd76b66414b38e9d65c","date":"2024-11-21T15:44:22+09:00","era":"A","subject":"chore(): 구독상품만 보이게 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/product/product.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"444af7a959f51705a36f05a523a1330c88dfd256","date":"2024-11-21T15:42:05+09:00","era":"A","subject":"feat(): 구독해지/해지취소","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"352f9c0e7110d9c2837222a256cb1be2fc9a70c0","date":"2024-11-21T14:54:02+09:00","era":"A","subject":"feat(): 분석목록","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9cc874797ceceb5f67c620d94c0e15366caf3093","date":"2024-11-21T11:04:32+09:00","era":"A","subject":"chore(): oddStatus -> oddState 변경","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order-detail/order-detail-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c27eb7f4f4c26374307c7a2d9b77077790cbf224","date":"2024-11-20T18:01:28+09:00","era":"A","subject":"feat(): 관리자 환불처리","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8ef450b50157a8d231bdb55a9f3619d6f563dcd","date":"2024-11-20T16:52:27+09:00","era":"A","subject":"feat(): 관리자 주문상세 및 주문취소","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c168dd4bffbd4565e71a971b451c4e525434178b","date":"2024-11-20T16:23:50+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/board/comment/board-comment.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d271544e2e41ee64513eab7fc820850da9bffc6e","date":"2024-11-20T16:01:11+09:00","era":"A","subject":"fix(): 구독현황 에러","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/refund/refund.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e3883f6081f031fc13e67bf3de8269799bb5d30","date":"2024-11-20T15:04:04+09:00","era":"A","subject":"feat():관리자 주문목록","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/refund/refund.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1dd28122e7e8202b3e879cad32a35cb2fde34210","date":"2024-11-20T10:00:46+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/webclient/webclient.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a3cbe12b92b45299fdde7a826eed93c140d71419","date":"2024-11-20T09:29:56+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6baf33c075faed5b15671a4857847ec4a180323d","date":"2024-11-19T16:56:08+09:00","era":"A","subject":"feat(): 관리자 구독 목록 및  상세","body":"","body_present":false,"is_merge":false,"file_count":32,"files":[{"status":"M","path":"src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscribe/subscribe-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4f6f51b8775f2caaf5da5d1645472996f8ad00a7","date":"2024-11-15T16:56:38+09:00","era":"A","subject":"feat(): 고객목록, 분석목록 리턴타입 변경","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f9e40e5fec5b873096bd14706e93d841eba425a","date":"2024-11-15T15:52:49+09:00","era":"A","subject":"feat(): 관리자 고객 목록","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"29cd9fd74e69163e4ca4a5981ec6b03e2cad995d","date":"2024-11-15T14:30:37+09:00","era":"A","subject":"feat():관리자 FC 목록/상세","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"911cd24f621fbb0ff9d5a0ee1e41b5dffbb72140","date":"2024-11-14T17:45:22+09:00","era":"A","subject":"feat(): agency entity","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/agency/agency.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3bf63c2c83c4650924017dcd89c3f553bcb7bd29","date":"2024-11-14T14:53:32+09:00","era":"A","subject":"feat(): 유저 게시판 CRUD","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/category/board-category.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/comment/board-comment-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/comment/board-comment.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/comment/board-comment.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/comment/board-comment.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/comment/board-comment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"200a8556b3fe476254a404a3d65a138a98091dbc","date":"2024-11-14T11:24:36+09:00","era":"A","subject":"feat():관리자  게시물/게시카테고리 CRUD","body":"","body_present":false,"is_merge":false,"file_count":20,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/board/board/board-admin.controller.ts","old_path":"src/modules/board/board-admin.controller.ts","score":89},{"status":"R","path":"src/modules/board/board/board.controller.ts","old_path":"src/modules/board/board.controller.ts","score":100},{"status":"R","path":"src/modules/board/board/board.dto.ts","old_path":"src/modules/board/board.dto.ts","score":78},{"status":"R","path":"src/modules/board/board/board.entity.ts","old_path":"src/modules/board/board.entity.ts","score":97},{"status":"R","path":"src/modules/board/board/board.module.ts","old_path":"src/modules/board/board.module.ts","score":100},{"status":"A","path":"src/modules/board/board/board.repository.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/board/board/board.service.ts","old_path":"src/modules/board/board.service.ts","score":97},{"status":"A","path":"src/modules/board/category/board-category-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/category/board-category.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/category/board-category.dto.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/board/category/board-category.entity.ts","old_path":"src/modules/board/board-category.entity.ts","score":67},{"status":"A","path":"src/modules/board/category/board-category.module.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/board/category/board-category.repository.ts","old_path":"src/modules/board/board.repository.ts","score":51},{"status":"A","path":"src/modules/board/category/board-category.service.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/board/comment/board-comment.entity.ts","old_path":"src/modules/board/board-comment.entity.ts","score":100},{"status":"M","path":"src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48d3e5ffe1e378a168625f202a52808a0a8d8216","date":"2024-11-13T17:34:16+09:00","era":"A","subject":"feat(): board crud 1차","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board-category.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board-comment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d992254dc8a84c973914e440d881d9bc0f441601","date":"2024-11-13T12:43:30+09:00","era":"A","subject":"feat(): 관리자 리턴값 DTO변경","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority-adimin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/authority/authority.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/board/board.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b3bb721eedd1b84a30d991dfa6eb90a59c10fb99","date":"2024-11-13T11:45:23+09:00","era":"A","subject":"feat(): 대조데이터 기본,상세","body":"","body_present":false,"is_merge":false,"file_count":19,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/_sample/sample.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/basic/compare-basic.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/detail/compare-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a380d20e6bb04dc606e696a3769204b6c8f3bd8e","date":"2024-11-12T17:19:24+09:00","era":"A","subject":"chore(): dto 수정","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c7b37c9a1a50675df0992e0208ca01c726de0494","date":"2024-11-12T17:09:32+09:00","era":"A","subject":"feat(): 관리자 crud","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/admin/admin.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"61ee27f1af898c175b80eaa6b3b61c24e4614ccd","date":"2024-11-12T12:46:10+09:00","era":"A","subject":"chore(): admin folder 생성","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/admin/admin.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a270332820c38f356d0e5e019df7cc62853ec467","date":"2024-11-12T12:20:40+09:00","era":"A","subject":"chore(): product description 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3115f0debf4d7439f6becac64f65b0ed1dc98a6f","date":"2024-11-12T12:08:15+09:00","era":"A","subject":"chore(): totalCount -> count 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a01b8231a34ac56a00b8e2617da322a15f2fa634","date":"2024-11-12T12:04:41+09:00","era":"A","subject":"feat(): product delete 에러추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.utill.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/mysql-error.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/mysql-error.enum.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"930e40466f01a4b5d3185be98700dc2c2a8de56a","date":"2024-11-12T11:59:14+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bf60c8fa5d7f7a3d94b53ab144fd39fb6cd7e5b","date":"2024-11-12T11:58:48+09:00","era":"A","subject":"feat(): 상품CRUD","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.utill.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/mysql-error.enum.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2531e0ebc742bd21b84e4685a0533db0a45ba6a","date":"2024-11-12T11:54:10+09:00","era":"A","subject":"chore: seed파일 취합","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"D","path":"life.json","old_path":null,"score":null},{"status":"D","path":"property.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"34ea30f3838bb26999a14cd1935998cd11969bc6","date":"2024-11-11T17:56:10+09:00","era":"A","subject":"chore(): 수정일시, 생성일시 변경","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/allow-ip/allow-ip.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d64d7613c8185661ea31f390af5bedff673700c3","date":"2024-11-11T17:45:56+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/allow-ip/allow-ip.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7bcd887f3f08d74baf53ef57fda8c120703752ac","date":"2024-11-11T17:37:45+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd1954cde82b244659d814efae5eceafda713889","date":"2024-11-11T17:37:31+09:00","era":"A","subject":"feat(): allow ip CRUD","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip-admin.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/allow-ip/allow-ip.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"794d7a3d854dae1af37188dc956b6c4ad924df16","date":"2024-11-11T15:37:27+09:00","era":"A","subject":"fix: Install mysql types package","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e6f6b554db00d7f2ea477115e21eecdac6eda22","date":"2024-11-11T14:51:11+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1b73c359a458baeb313b8e094d0a152904dd0f2b","date":"2024-11-11T14:50:48+09:00","era":"A","subject":"feat(): 질병코드검색 admin crud","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search-admin.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/drizzle.utill.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/mysql-error.constant.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/mysql-error.enum.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"867755aa3ae1a44f2266f6ead36cc7e09a9cc4b0","date":"2024-11-11T14:17:59+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8ddfb51e1aa72e0c42ca75dcef41b23148a3af2d","date":"2024-11-11T14:17:48+09:00","era":"A","subject":"refactor: s3key 변수명으로 관리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"607b618918a24db544d1e4fea590455833f8cbc3","date":"2024-11-11T10:11:33+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cb93a24c9d21fa39f9aeb206f793929c1294450f","date":"2024-11-08T18:12:25+09:00","era":"A","subject":"chore(): toISOstring() -> format 변경","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fa8b27a472fa34096abfc241a9ae5575c6a406b","date":"2024-11-08T14:58:31+09:00","era":"A","subject":"rename: Rename arg, insurerName -> insurerCode","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92fae33956e3ae7b3e336967e97a3225c6dee88b","date":"2024-11-08T14:56:41+09:00","era":"A","subject":"fix():상세 리스트 에러","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68c33f065a3500fb76d02f001d3eccdd87417fb9","date":"2024-11-08T14:40:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"057adf3fe2bdfb0cbccaae3ebf6988110263da6e","date":"2024-11-08T10:49:11+09:00","era":"A","subject":"fix: Fix ENV_S3_ARN","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6f69296f49e1f03aa6179c96289801e455d338e","date":"2024-11-08T09:49:08+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0f70e36c04efb8d4dc48bc3c72fd6829441f06b7","date":"2024-11-08T09:44:40+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"132a6c3eb939c05dda3318ba5546dc6734b142e8","date":"2024-11-08T09:39:00+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"764133b3e0ced9bc2b921b3cad19891249de2484","date":"2024-11-08T09:29:20+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"42007ca4c3daaee5297720800e2f4ae42c416d1f","date":"2024-11-08T09:29:04+09:00","era":"A","subject":"fix: 베타 분석 수정사항","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48994c69969d8acf29b4f834fa08354c0742cac1","date":"2024-11-07T18:52:43+09:00","era":"A","subject":"feat: Implement getAllInsurer API","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4c450816d3426567310f9377ca98c9db30d625a","date":"2024-11-07T18:30:11+09:00","era":"A","subject":"refactor: Add if clause for preventing page is null","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"scripts/download-all-invoice.js","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c83305e5032d1f38914b5e2899047e0fd8aa3d5","date":"2024-11-07T12:56:22+09:00","era":"A","subject":"feat: Update content disposition attachment to inline","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"65aa8b0752c8bbebac360a9f818653a5cfb3a9df","date":"2024-11-07T12:43:09+09:00","era":"A","subject":"refactor: build에 private method 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.builder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0bedc75bb18ab1dfc6a002450816f0884a10da41","date":"2024-11-05T16:08:14+09:00","era":"A","subject":"feat(): 분석기본 진단과 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4057740fce9010bece30d5f32748f4486454aaa3","date":"2024-11-05T11:20:34+09:00","era":"A","subject":"feat(): fc encrypt","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea1a808c71f03fd76e185b43c947678a7e0b3260","date":"2024-11-04T18:11:31+09:00","era":"A","subject":"refactor: Refactor insure invoice select","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9e366f54e70e73d4dacc56b163482b72ae1bd958","date":"2024-11-04T17:20:18+09:00","era":"A","subject":"feat: 청구서 파일명 적용","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9e56da2d781bce65fb10ad033ffbfcae430ca02e","date":"2024-11-04T16:02:07+09:00","era":"A","subject":"feat: Implement invoice generation without drawing signature","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"42cf7b912211ca224a4fdd7f6855ca8d7505bd4e","date":"2024-11-04T10:03:51+09:00","era":"A","subject":"chore: Modify .env injecting process","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3884e48d674ef4ee4a913e655b6cc69522d8785c","date":"2024-10-31T17:44:35+09:00","era":"A","subject":"feat(): 구독현황 결제정보 제외","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"621b36de5f98264a2b1086e61f7f401003c60782","date":"2024-10-31T16:36:41+09:00","era":"A","subject":"feat(): 구독현황","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9ebc425af01d29cb3d64bf06d63db7f32a387b85","date":"2024-10-31T15:48:17+09:00","era":"A","subject":"chore(): 베타 수정사항","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec46762cc2097e8502c5ccf190fb3a0fa03717ae","date":"2024-10-31T12:33:46+09:00","era":"A","subject":"feat(): 구독예약변경, 구독즉시변경","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"52bf13469f370e29e08fe3ae4c4e91d4eb442f5b","date":"2024-10-30T19:02:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"774a131300f59a741e9b73f8c68d1b2842c442c4","date":"2024-10-30T19:02:01+09:00","era":"A","subject":"feat: 주민번호 간격 삽입","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.builder.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.drawer.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"caed106f4bcd43f37bbe4c712150d76dd40e99e8","date":"2024-10-30T17:50:29+09:00","era":"A","subject":"두독해지/구독해지취소","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"714a3c69c5605c7e9058ce81100be1846dda8a8a","date":"2024-10-30T15:29:33+09:00","era":"A","subject":"feat(): totalcount commonDto로 변경","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analysis-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analysis-prescibe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9355fe3cd7da18682b1c87da2c6cdbec2df51382","date":"2024-10-30T14:59:09+09:00","era":"A","subject":"feat(): alarm service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"72fdd873cf1ea39e7678a3aced1ba7388073670e","date":"2024-10-30T11:40:41+09:00","era":"A","subject":"feat(): analyze service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7872dbb6cfe0d215f0b16d9464fa66adac8c70a6","date":"2024-10-30T10:44:17+09:00","era":"A","subject":"feat: Implement basic format invoice data binding","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.builder.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"51b49a6b14a6ba42223f986a7e79da7fe5851d4b","date":"2024-10-30T10:23:58+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9c7805ac9e1aac62520e396c10969078611117d2","date":"2024-10-30T09:58:22+09:00","era":"A","subject":"feat(): fc service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"894f626c64c6cde5af98cba74b1ff470ac7b2ebe","date":"2024-10-30T09:16:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7786c27c591c921e19fdf3c04743014a0f389a8a","date":"2024-10-29T18:02:13+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8271c01c701dc2a0e9f80f71f581e376aeeb4e43","date":"2024-10-29T18:00:56+09:00","era":"A","subject":"feat(): order detail service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b2c8761ba1e8c4583c05c65940703357d5c2e78","date":"2024-10-29T16:17:15+09:00","era":"A","subject":"chore(): subsription -> Subscribe","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscribe/subscribe.controller.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/subscribe/subscribe.dto.ts","old_path":"src/modules/subscription/subscription.dto.ts","score":81},{"status":"R","path":"src/modules/subscribe/subscribe.entity.ts","old_path":"src/modules/subscription/subscribe.entity.ts","score":100},{"status":"A","path":"src/modules/subscribe/subscribe.module.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/subscribe/subscribe.repository.ts","old_path":"src/modules/subscription/subscribe.repository.ts","score":78},{"status":"R","path":"src/modules/subscribe/subscribe.service.ts","old_path":"src/modules/subscription/subscription.service.ts","score":71},{"status":"D","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/subscription/subscription.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e1e3e3074a8c449da4eaa134183512477266c20","date":"2024-10-29T16:11:56+09:00","era":"A","subject":"feat(): subscription service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscribe.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ee10adbb0bdb99257ccd470937949955a73f885b","date":"2024-10-29T15:49:13+09:00","era":"A","subject":"feat(): product service, repository 분리;","body":"","body_present":false,"is_merge":false,"file_count":13,"files":[{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5c3ad00f1018a1cf8cbcf725090e68044076536","date":"2024-10-29T12:38:40+09:00","era":"A","subject":"feat(): search service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d5fad140a08077896a5e1b7c684838a662f9b5e7","date":"2024-10-29T12:26:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b469ff675c6fbae8bebb0a53eb27021e3733e035","date":"2024-10-29T12:26:19+09:00","era":"A","subject":"refactor: Apply bulk insert","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"A","path":"life.json","old_path":null,"score":null},{"status":"A","path":"property.json","old_path":null,"score":null},{"status":"M","path":"src/invoice.seeder.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"27726bb2fb858dff2b1e02187db4910f51e17f35","date":"2024-10-29T10:25:23+09:00","era":"A","subject":"feat(): card service, repository 분리","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/common/common.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6b74ba67fc106c2b31777f13e158e3d593e4fcec","date":"2024-10-28T17:25:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"A","path":"src/modules/alarm/alarm.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order-detail/order-detail.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscribe.repository.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.repository.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3b5e177c956f8fe3d55229baddb34d5576adfb34","date":"2024-10-28T17:22:39+09:00","era":"A","subject":"chore(): order repository 분리","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0bc6ffaf2b91881b54fb77a04cb74f13c2776791","date":"2024-10-28T16:43:23+09:00","era":"A","subject":"feat(): 결제취소 기본작업","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5dab60c575db0a8d18b9cf7b349a7ced3d80f930","date":"2024-10-28T16:07:15+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4d0dd7533f3e19716ffe1adb007d5ae00a29a0d6","date":"2024-10-28T16:07:01+09:00","era":"A","subject":"feat(): 베타서비스 수정사항 배포","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/payment/payment.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f52e5ef05ab0708ff60bcea86bc37c43290ff8f","date":"2024-10-28T15:31:32+09:00","era":"A","subject":"chore: Bump up aws-action/amzon-ecr-login to v2","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ea2f9c3eaedbc0783e5a25ecfef9cf7604592cbe","date":"2024-10-28T15:29:58+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c39b529e9704cc1dbe46bcf5aa549078c7758c30","date":"2024-10-28T15:29:49+09:00","era":"A","subject":"remove: 불필요한 파일 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"D","path":"life.json","old_path":null,"score":null},{"status":"D","path":"property.json","old_path":null,"score":null},{"status":"D","path":"task-definition.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b1eda58639b490cf0800c47f8024a2031da2008d","date":"2024-10-28T12:42:50+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b29760a4869581c026192bcb43b43cf4fb10b733","date":"2024-10-28T12:42:10+09:00","era":"A","subject":"feat(): 결제취소 api","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bad5d0f8f9792a33d7ca41566d404fc06dc85d17","date":"2024-10-28T12:36:55+09:00","era":"A","subject":"chore: remove introspect from pipeline","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36e7c95f6061acc4e9ffb803374e1d424f5b1c45","date":"2024-10-28T12:29:34+09:00","era":"A","subject":"chore: Bump up actions/ on deploy stage","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d22c67313a759eb98e96280d703db1412682a689","date":"2024-10-28T12:26:34+09:00","era":"A","subject":"chore: Bump up actions/","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"efd65acee932dd88f6307dc1e077f0fdaef3fb39","date":"2024-10-28T12:22:48+09:00","era":"A","subject":"chore: Bump up actions/cache","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8ce3b77749577f7bb4be05f9615330177bbcb672","date":"2024-10-28T12:20:38+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e5d5bc01d369328ef06b5a9dcf628d78a0ba838","date":"2024-10-28T12:17:26+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8201c4967eb5f9394f85b29691f7081a57c1526","date":"2024-10-25T19:02:25+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d661617bce3e1d331eea6b97869a639ad69f701b","date":"2024-10-25T18:57:46+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b356565a199611b18a28ef13933b6fb53c30c188","date":"2024-10-25T18:56:34+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"75c2ed59050342ebef4a18f2d474ff5a05ab6881","date":"2024-10-25T18:45:30+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6858065bf884674d5b32050a24dbccb09646f92","date":"2024-10-25T18:43:42+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad7009ee57407804a91d7b18a6c4f7f5bee7a294","date":"2024-10-25T18:41:33+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c9f26143a3350a3fd59e6ffd5a8fe8244f8c6b7f","date":"2024-10-25T18:40:29+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"21776d7201e8833c05335c6dcfdb24cd3acbbed8","date":"2024-10-25T18:19:55+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/invoice.seeder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ad273786158c419f1886022b824a28bfafa81202","date":"2024-10-25T18:19:31+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8fda9acb8d800e6875203dcaff4e82b7e8a388c3","date":"2024-10-25T18:15:33+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"718796b6c1545d00b7a2e8e671909af80d08d9cf","date":"2024-10-25T18:15:25+09:00","era":"A","subject":"feat: 청구서 다운로드 구현","body":"","body_present":false,"is_merge":false,"file_count":16,"files":[{"status":"M","path":"life.json","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/fliters/all-exception.filter.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice-storage.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null},{"status":"M","path":"src/pino.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/pdf/pdf.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/pdf/pdf.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/s3/s3.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/s3/s3.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b681443f9ad0eb2b01cff81b5a3cbaa08c6cf046","date":"2024-10-25T17:59:21+09:00","era":"A","subject":"chore(): order repository 분리","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order.repository.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c626e8d59ae7f02943d029a5a771fddf2ea1fa97","date":"2024-10-25T15:17:55+09:00","era":"A","subject":"chore(): entity 분리 2차","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analysis-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5fb9498840c27dff947d128e0babd49e5c06001a","date":"2024-10-25T12:30:57+09:00","era":"A","subject":"chore(): entity 분리 1차","body":"","body_present":false,"is_merge":false,"file_count":25,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alarm/alarm.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analysis-basic.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analysis-detail.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analysis-prescibe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order-detail/order-detail.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/payment/payment.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.entity.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscribe.entity.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.entity.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"30227c7b5ad7ee51a9cbcb14ba5150dac8e7a5c0","date":"2024-10-24T18:47:19+09:00","era":"A","subject":"chore: ci/cd test","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0a699c756444f269bd48948d835dadf3a7541da2","date":"2024-10-24T18:42:54+09:00","era":"A","subject":"chore: introspect schema","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4f56709a136cea122d7b6f192aeb2c076bf2d7f","date":"2024-10-24T18:39:45+09:00","era":"A","subject":"Merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c0e9c5b2eda096ec48497d2a36a74eb867fd34f2","date":"2024-10-24T18:38:52+09:00","era":"A","subject":"feat: 청구서 모듈 보일러 생성","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/invoice/invoice.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6344ca9e962b9dfd7e3d57cec33d97bc7a9e2f2","date":"2024-10-24T18:38:09+09:00","era":"A","subject":"chore: 청구서 관련 엔티티 생성","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a720cd3d83ce4b3ec30b2d115159a1390c868fa8","date":"2024-10-24T18:37:41+09:00","era":"A","subject":"feat: 청구서 좌표 seeder 구현","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":"life.json","old_path":null,"score":null},{"status":"A","path":"property.json","old_path":null,"score":null},{"status":"A","path":"src/invoice.seeder.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e6951b8cf0268155f246a38a4819653fb44fc36","date":"2024-10-24T18:36:39+09:00","era":"A","subject":"fix: build 에러 원인 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b90789219e2f07945da0c6f5e1954c5fddf26a8","date":"2024-10-24T17:51:26+09:00","era":"A","subject":"chore(): dto 정리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d47dc7e20319b9bacc82741a81bb0e4b97a5f5aa","date":"2024-10-24T16:42:49+09:00","era":"A","subject":"feat: 주문/결제목록","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7b209760935070e88e6a4b75e9880288071f7ff0","date":"2024-10-23T16:22:46+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97ce97d9154624049ea75bb2ad2698337ef4a7d6","date":"2024-10-23T15:50:45+09:00","era":"A","subject":"feat(): 최초구독 및 결제 기초작업","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"07b4193e6f33993a816d90059dad1f28c23adcc3","date":"2024-10-22T17:54:01+09:00","era":"A","subject":"chore() order folder 생성","body":"","body_present":false,"is_merge":false,"file_count":21,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/helpers/uid.helper.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/order/order-detail/order-detail.controller.ts","old_path":"src/modules/order/order-detail.controller.ts","score":95},{"status":"R","path":"src/modules/order/order-detail/order-detail.dto.ts","old_path":"src/modules/order/order-detail.dto.ts","score":97},{"status":"R","path":"src/modules/order/order-detail/order-detail.module.ts","old_path":"src/modules/order/order-detail.module.ts","score":100},{"status":"R","path":"src/modules/order/order-detail/order-detail.service.ts","old_path":"src/modules/order/order-detail.service.ts","score":100},{"status":"A","path":"src/modules/order/order/order.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"56e9d7c1f0a5055eef9b89f01e6fd6c2e2af4415","date":"2024-10-22T16:11:29+09:00","era":"A","subject":"chore(): 치아고지 틀니 조건 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"764b33898e47535c176d922aca42b4077735879a","date":"2024-10-22T11:55:33+09:00","era":"A","subject":"db schema change","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7f9451fde0bcfbf68138cacac038f54b1a567fe9","date":"2024-10-18T17:28:12+09:00","era":"A","subject":"feat(): 결제 도중..","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/payment/payment.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/payment/payment.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/payment/payment.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5e0b416e95f253ba9f2bf11cba91e684ea2cc1ad","date":"2024-10-18T16:12:31+09:00","era":"A","subject":"feat(): subscription 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscription.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscription.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscription.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/subscription/subscription.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4894871a5e7dfb083e6c77ca7799e5ef471b5ac1","date":"2024-10-18T09:41:57+09:00","era":"A","subject":"chore","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"96bdca6a3fb635bf249a22812f926d4765210354","date":"2024-10-17T17:43:02+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"246df3b1745f1523776532c34962010f9944f8c4","date":"2024-10-17T17:42:52+09:00","era":"A","subject":"fix: 환경변수 ARN 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e3f71a5b206f64a7a8cd04f6ddde0969840b2ce","date":"2024-10-17T17:24:25+09:00","era":"A","subject":"chore():분석목록 count 조건","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cf2684088fa11b4e5155edd9c283e0723d24302d","date":"2024-10-17T17:21:21+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"de25cc591b7d86fcde4eccc9ecd9207fb802e4f0","date":"2024-10-17T16:45:25+09:00","era":"A","subject":"chore(): 분석결과 조건 기존대로 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5d5988c913df26f12df3ee8e4d11033e3e5984bb","date":"2024-10-17T16:15:24+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2552a7d05463178b58fb33df806194c26f188402","date":"2024-10-17T16:15:04+09:00","era":"A","subject":"feat(): 분석목록 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"124f9836171dffbf7c93b3cfaaf46ffaf77b93a4","date":"2024-10-17T15:42:12+09:00","era":"A","subject":"chore: add credential setting to build stage","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3bcd16fb3f05573c1b247eb4527920f8b3b6ab09","date":"2024-10-17T15:41:02+09:00","era":"A","subject":"Merge branch 'stg' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aa32ebb05e22187920fefba9c5fd160d0650cfed","date":"2024-10-17T15:31:49+09:00","era":"A","subject":"chore: ECR login 시 password 마스킹","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e09d7e54731664fa9f3cdfa105310cb8f3972fc6","date":"2024-10-17T15:28:26+09:00","era":"A","subject":"chore: CI/CD test5","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"826764449e3116466b5e36637b90a5ce685c1e5b","date":"2024-10-17T15:27:18+09:00","era":"A","subject":"chore: CI/CD test4","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ce45911fc87d5324d67fc3cf8bbdad3581bab623","date":"2024-10-17T15:21:54+09:00","era":"A","subject":"chore: CI/CD test3","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2225a977cd1cfd5cad92814a1586a1faffa5dc43","date":"2024-10-17T15:19:15+09:00","era":"A","subject":"chore: CI/CD test2","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a019bc66c437dfe4966245988b59ad75a4f29d9","date":"2024-10-17T15:16:47+09:00","era":"A","subject":"chore: CI/CD test","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67b3da3af7a67491d906e3c460f931dc160b7f77","date":"2024-10-17T14:28:26+09:00","era":"A","subject":"chore: docker build 시 db pull 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05c1363e382db4a35587b8b977411702cac61c7a","date":"2024-10-17T12:06:44+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ff342eb215e607053e243db6f361bf20ddc6dd72","date":"2024-10-17T11:05:07+09:00","era":"A","subject":"feat(): 처방조제정보 기본정보 리스트 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a6ba94baa9329c279940048e29b15f6ef07243d5","date":"2024-10-16T15:01:40+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"19a1ed8873b55f79a596ec07fe82d634fc03454e","date":"2024-10-16T12:32:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"733b77087b314db1d1aa36a21e00280cb5482509","date":"2024-10-16T12:31:08+09:00","era":"A","subject":"feat(): 결과화면 5년내 상세 count추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fec8242f4dbea8be7909f7b4b021415b04def0da","date":"2024-10-16T12:20:36+09:00","era":"A","subject":"chore():결과화면 기본 page dynamic","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aba2d59c3433111f3a44335fbc165c71a6a4e93a","date":"2024-10-16T09:22:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d67fc61e83d9789c223c40ed55f0d7f7c2d62b7c","date":"2024-10-15T16:44:35+09:00","era":"A","subject":"feat(): 숨은보험 진단 계산노출로 변경","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f9fd2ef734a28e633cb85da2a5564551a33bf63","date":"2024-10-15T14:38:09+09:00","era":"A","subject":"feat(): 7일이상치료, 30일이상투약 외래만 조건추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c92bff4eff2564bdca0523f3d0cad9dd10472576","date":"2024-10-15T12:41:20+09:00","era":"A","subject":"feat(): 3개월 약국 포함","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6a26a89a01b72f297f8743689bea691a20f1836a","date":"2024-10-15T12:34:11+09:00","era":"A","subject":"chore(): 3개월내 기간 3년으로 수정(테스트용도)","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4870a090f548ba4a9ad07246a9e19c3ce6bbeaf","date":"2024-10-15T09:20:45+09:00","era":"A","subject":"feat: search 유사 검색 주석처리","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"55cbadf7d75f1d98ba7dc8f0fcd15b5f7557104b","date":"2024-10-11T17:37:50+09:00","era":"A","subject":"feat(): 수정사항1차","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b5ef1b63f17463624f5468886032ac6e4bff42d4","date":"2024-10-10T14:42:52+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4c1e6731c99c231344c571081e30f3e7321285fe","date":"2024-10-10T14:36:55+09:00","era":"A","subject":"feat(): 분석결과 returnType 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bc595509c7e3c1c214ab74603662f386bf956c86","date":"2024-10-10T10:37:35+09:00","era":"A","subject":"feat(): alarm list returnType 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ad2e3690be0f505636031baeb7a1cf66efff1f5","date":"2024-10-10T09:48:53+09:00","era":"A","subject":"feat():card, fnUser list returnType 추가","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c036e13a68d7fd21e7b7305950ca7035ccf3b788","date":"2024-10-08T16:40:40+09:00","era":"A","subject":"feat(): orderdetail, search, product ResponseDto 추가","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"63dc6e20ebc22fa5d07106f55fc8a3754af8eabe","date":"2024-10-07T18:37:54+09:00","era":"A","subject":"feat(): card","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c8cb1aebfa65a5a190da3e2df89bfd7193e9bf6b","date":"2024-10-07T17:55:39+09:00","era":"A","subject":"chore: 개발 환경일시에만 pino-pretty 적용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/pino.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7601428163472f133e90864817c630195dba53cd","date":"2024-10-07T16:29:08+09:00","era":"A","subject":"chore: add origin to cors","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dea6f7491f62cb18c66d6b458297282fdbf8f31c","date":"2024-10-07T12:11:27+09:00","era":"A","subject":"update: 엑셀다운로드 시 숫자 단위 표시","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/medical/medical.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"458e87b8a8434c28046360bc967dc4fc652e1408","date":"2024-10-07T11:52:20+09:00","era":"A","subject":"update: 스키마 업데이트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a4fc116e67fb929afbb2edfeaa1251da2587aed","date":"2024-10-07T11:40:45+09:00","era":"A","subject":"fix: 필드명 오타 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9604f233fa79c4e6a59afc9b387e69ed52ef0e80","date":"2024-10-07T11:39:59+09:00","era":"A","subject":"add: Fc agency 임시 필드 추가","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e2409a8473de9bfa59d12909580787360532830b","date":"2024-10-04T17:37:49+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0ff8dfb58073fee64f240121fa1408338a8e30b5","date":"2024-10-04T17:37:35+09:00","era":"A","subject":"feat(): 분석완료,실패일시 추가","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"37dd2ea823b805ff1ef982f110375a07ed2f56e4","date":"2024-10-04T17:02:09+09:00","era":"A","subject":"fix: 유저명 복호화","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/medical/medical.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fe4e3a6ee657c14ed503f04ea061bc58d50712da","date":"2024-10-04T16:56:53+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"83abf82d9910a9c5a0fa965077a5d07dbce319f9","date":"2024-10-04T16:44:30+09:00","era":"A","subject":"enhance: 엑셀 다운로드 시 유저명 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/medical/medical.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/medical/medical.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f4dcc7e608b8b032e8a21b1183dbb323192cba2e","date":"2024-10-04T15:00:00+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a75fbe66935a993e642ebdc9425b73e270ab7b2e","date":"2024-10-04T14:59:38+09:00","era":"A","subject":"feat(): toss billing key issue api 1차","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/toss/toss.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/toss/toss.exception.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/toss/toss.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2b2ce6c98cd4b5e4f1a8cbed05fef9965a398f6","date":"2024-10-04T13:28:09+09:00","era":"A","subject":"fix: Contetn disposition 헤더 cors에 노출","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/medical/medical.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb304742349543cb30b7ced098c9db08c9575861","date":"2024-10-04T13:16:36+09:00","era":"A","subject":"remove: disposition 헤더에 세미콜론 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/medical/medical.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f04cfa45b374e350733f40e8816c766e750c6d8e","date":"2024-10-04T12:37:09+09:00","era":"A","subject":"chore(): card contoller 추가","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/card/card.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/toss/toss.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/toss/toss.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bde1d27f3a6b703b728392b6ffff4caf732c1693","date":"2024-10-02T17:55:00+09:00","era":"A","subject":"feat: 베타서비스용 원본데이터 엑셀다운로드","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/medical/medical.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/medical/medical.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/medical/medical.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9bf032250c0ce336d9cda33cdd247170b1620d6c","date":"2024-10-02T15:35:04+09:00","era":"A","subject":"chore(): 분석목록, 처방조제 page 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c32ecc2aeb2b774167f94325c1df4cfb9bf0b5a","date":"2024-10-02T14:00:12+09:00","era":"A","subject":"chore(): 분석상세 타입에 따른 where 조건 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"78223e463d8da7ab4570490ecc0be0ef529c970a","date":"2024-10-02T12:48:36+09:00","era":"A","subject":"chore() : 분석목록 anstype 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2ab9549a161ec9e97b0d998a19ed12077766beb1","date":"2024-10-02T11:55:15+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2fafc7c0a131a057a9c312e3e3f85ce36829d23e","date":"2024-10-02T11:54:57+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2cd573b6f4ebbacfad99bf9094d52594d1c89c53","date":"2024-10-02T11:42:57+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4a815c20e36640278ea0f919d0a82fa1212c7110","date":"2024-10-02T11:42:46+09:00","era":"A","subject":"add: 로그인 쿠키 세팅 시 path 옵션 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c50488c01419d8d8c9eeb5e5683103cc40700aa0","date":"2024-10-02T11:40:49+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"289663584352f45dad26a0d0137deb3031785439","date":"2024-10-02T10:58:53+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5f73f25f08e8fba599577bf0383f1c3341b4eed1","date":"2024-10-02T10:30:02+09:00","era":"A","subject":"feat(): groupby count 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"017637aa5aa85857d61fd5cf7aa10881b5e3868d","date":"2024-10-02T10:07:28+09:00","era":"A","subject":"remove: jwt 가드 비활성화","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/jwt.guard.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7be52e3fd9f6e9b20806ad4e8eba4e43c7b339fd","date":"2024-09-30T19:02:23+09:00","era":"A","subject":"feat: Swagger에 프로젝트 정보입력","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/swagger.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"67babcd8b9ed9d28f9690818a58188c3785c0260","date":"2024-09-30T18:53:58+09:00","era":"A","subject":"add: jwt guard 부착","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"68346ef5bed1864d5cb5182a4c8e54a920d357e9","date":"2024-09-30T18:53:44+09:00","era":"A","subject":"add: jwt guard 부착","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/product/product.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"36f449e2c39c1ee5fcb10ff0b0b2e5ae4b315558","date":"2024-09-30T18:53:34+09:00","era":"A","subject":"add: jwt guard 부착","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c4cafc04d661a59576256086b9fb9a377941a1c4","date":"2024-09-30T18:52:12+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/insuniverse-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c4706233b86c9b7819230e80b871953101da351","date":"2024-09-30T18:52:07+09:00","era":"A","subject":"feat: jwt guaurd 구현","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/auth/auth.guard.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/jwt.guard.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"751b10fc973a987220740c6d527c917defd4d1c9","date":"2024-09-30T16:52:20+09:00","era":"A","subject":"chore():","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d2c5ab62409356fc48d37fd13984483a63e2da14","date":"2024-09-30T16:38:07+09:00","era":"A","subject":"chore(): 분석목록 숨은보험수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0b0d52841e27e4d7987e4148e66e2733faa82e9b","date":"2024-09-30T15:26:58+09:00","era":"A","subject":"chore(): 분석결과 swagger 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32a65992580cec04fc08508530ba7608ed6ef812","date":"2024-09-30T14:56:29+09:00","era":"A","subject":"feat(): 분석결과 5년치 기본 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b10d0ad74b6f4cefd37df2cf9b1199396f517af6","date":"2024-09-30T12:48:37+09:00","era":"A","subject":"feat(): product list","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/product/product.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cd73cf8cc39dcdd678fa823273f2fdca2ad77416","date":"2024-09-30T12:11:43+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ef083f0de51c95db587eab1f62b49f6a540a8fd4","date":"2024-09-30T11:22:41+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"233e02af3fc524786f18656efc0c47c292a61a90","date":"2024-09-30T11:22:26+09:00","era":"A","subject":"chore(): 유저목록 카운트 수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"61b74cfb004b573958cb503d6e44f93cc7814493","date":"2024-09-30T11:11:16+09:00","era":"A","subject":"chore: 프로젝트명 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c2897e174f2ae32694dd2ff8f3a45aa489b29ba6","date":"2024-09-30T10:51:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9b844a44ef07a81cb3df9a1ea50c827f16a5e138","date":"2024-09-30T10:50:58+09:00","era":"A","subject":"feat: 로그아웃 API 구현","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e7082596b384b29ad6eaf38a4602a0fe88e81d4","date":"2024-09-30T10:19:26+09:00","era":"A","subject":"feat(): schema change","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1c2fece4d501fdebecb6dc463b522f256b82c000","date":"2024-09-30T09:27:24+09:00","era":"A","subject":"feat()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8acf4d06b535fb33782ecb28ae772f8c36c04a4d","date":"2024-09-28T07:03:41+09:00","era":"A","subject":"add: origin 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1f9b5320beb30405f4164bec1d4f9a264c0586f4","date":"2024-09-27T18:58:44+09:00","era":"A","subject":"test: 쿠키옵션 수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a2d5c4fa3dd3cf9a8286dd39040292ad549795f1","date":"2024-09-27T18:53:27+09:00","era":"A","subject":"test:","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eb2c160a93e7c0750a56bd743782238fcdfa2d14","date":"2024-09-27T18:44:48+09:00","era":"A","subject":"fix: env file 경로수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"301a0a49f7d36c1efb4b9ed0c5a53cdc2cd2da8a","date":"2024-09-27T18:38:08+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"25326a917b2fc0ae4a67d0da7481cbfea354f5b4","date":"2024-09-27T18:37:56+09:00","era":"A","subject":"test: guard","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/auth.guard.ts","old_path":null,"score":null},{"status":"A","path":"task-definition.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5c45f1a4abb032c3c89c9edfbafef9af25f41777","date":"2024-09-27T17:31:20+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccb6a43cb7a4cc4c566da654e74df73896d950a2","date":"2024-09-27T17:29:50+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"af2da4536a5a63771492813f1f2626a94d6b0746","date":"2024-09-27T17:29:35+09:00","era":"A","subject":"chore() count edit","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8db0423ea51b1b70744952ea712f57f9cdc5ed57","date":"2024-09-27T17:26:20+09:00","era":"A","subject":"fix:  오타 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"26b2f4653000298b44c0216e52d50dda8727eb80","date":"2024-09-27T17:24:03+09:00","era":"A","subject":"fix: 오타수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a5488ce4e34600283fe2c38d8f1e87fd14dab168","date":"2024-09-27T17:20:49+09:00","era":"A","subject":"fix: 오타 수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fdf4daff8876eca3cbdda06d16a23ae17b25b162","date":"2024-09-27T17:17:54+09:00","era":"A","subject":"fix: cors 특정 origin 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"45a28d0255ce1face8fafefe33b82b211b570c10","date":"2024-09-27T17:14:27+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d7dd7e6cd5af042f04c02e210bc73fc74ae20e7b","date":"2024-09-27T17:14:19+09:00","era":"A","subject":"add: unauthorized constant 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4446971d82a020dfb633930288e457e5fa7a91d2","date":"2024-09-27T17:03:48+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1033c0b79976474ff2d743eddb8e7fb4f4330524","date":"2024-09-27T17:03:33+09:00","era":"A","subject":"chore():","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/providers/codef/codef-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ff6e022589bb00e01ed7c93729be449853df5c4","date":"2024-09-27T16:32:50+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0d62a4078029b365ea535a84db2f09b3a0acf804","date":"2024-09-27T16:32:39+09:00","era":"A","subject":"feat: 스테이징 CI/CD생성","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"A","path":".github/workflows/stg.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"50f2393de3eb7ad580a80eca1669a2507b70bac5","date":"2024-09-27T16:07:21+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"74187739bbab748420d876fff2a9278755d773c9","date":"2024-09-27T16:00:31+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8238a662fca0c53be264b7bbdc09282297b1a019","date":"2024-09-27T15:53:51+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e6bd5e25fd1ce12e7ebc68584f1d095426dcd9f3","date":"2024-09-27T15:53:42+09:00","era":"A","subject":"fix: cors origin true 처리","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"706311b621d9afc8565368bd815b79621c3e9dff","date":"2024-09-27T15:53:04+09:00","era":"A","subject":"add: cookie-parser 설치","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd7dcbd7267311e846b87c8c6b87803c3ff76f3c","date":"2024-09-27T15:49:18+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05187ea954539e1f469ae6a218b93933032c1596","date":"2024-09-27T15:43:42+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c6495e81d2a0acfb1853c0d0bc01f711f9dcd266","date":"2024-09-27T15:43:11+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05f9327c33a851b7a84633a4cf5a82d14bb7b92a","date":"2024-09-27T15:42:40+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e76d6f34b5e4b74d4580776834c54dae016f938b","date":"2024-09-27T15:42:30+09:00","era":"A","subject":"fix: cors 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"eb13de42e3ebae8790c98e7c045b4b9237e374ca","date":"2024-09-27T15:41:40+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"05d6553c1062acc4f5fb3221e50d7e13a4e44ecd","date":"2024-09-27T15:41:17+09:00","era":"A","subject":"chore(): analze post -> get","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"06a07d994143820c0ba0f90f304e1fe2c2187119","date":"2024-09-27T15:27:49+09:00","era":"A","subject":"change: 컨벤션 통일 users -> userList","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"586b58ea6632e4ea8c0f08ee0e3f8713bf89195e","date":"2024-09-27T15:27:03+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"65bf98e90a608c24d33c2d6757904a992b31af94","date":"2024-09-27T15:26:51+09:00","era":"A","subject":"chang: 로그인 시 액세스토큰 쿠키 설정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"806e00233c349c544799515d0bee2a268e4367f6","date":"2024-09-27T14:15:33+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"15ff33694f26b4fb18123bc8e1a4eb508f52a7be","date":"2024-09-27T14:15:14+09:00","era":"A","subject":"chore(): post -> get","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.dto.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5027110931a8532867a15a149bafef7260bbf347","date":"2024-09-27T12:02:02+09:00","era":"A","subject":"chore: origin wildcard 사용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1cfa65a52c9ebfa8b696e9fd32bd9ac03a91d3dc","date":"2024-09-27T11:56:54+09:00","era":"A","subject":"chore: node20 alpine 사용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"825f44b53f56f28f7b177d812e2c18b1811d830b","date":"2024-09-27T11:54:27+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8d650f2e99fe1fc652d9c63b636c27453996b216","date":"2024-09-27T11:54:22+09:00","era":"A","subject":"chore: Docker 빌드 시 env file 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"92e17b54e89452726303b38619385696f8b3ab1c","date":"2024-09-27T11:53:21+09:00","era":"A","subject":"chore: CI/CD 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb1fe220f7b25d171458ad8723c69f0701782699","date":"2024-09-27T11:51:22+09:00","era":"A","subject":"chore(): orderdetail list post -> get","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b51f97c0583927684b146ed59e4613a7ea055077","date":"2024-09-27T11:48:37+09:00","era":"A","subject":"chore: cors 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a43a92b2e743bc60bb2142c730788b4a0c61871b","date":"2024-09-27T11:37:42+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cf9f228feab9aaa9e9b2e792a34a4aa91f3686c4","date":"2024-09-27T11:37:19+09:00","era":"A","subject":"chore: CORS 오리진 하드코딩","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"155c487cf1729c00886124d57f11648aabf8f69f","date":"2024-09-27T11:34:45+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f756a121a5043c9d26968c0a3a9349e0173bdcc1","date":"2024-09-27T11:33:44+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6566f3d12fe6773f0c70c58f3b08ce888ae35f92","date":"2024-09-27T11:33:17+09:00","era":"A","subject":"fix: 오타수정","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e8e7656be3b48e9501f12c6f12944429ecbbb745","date":"2024-09-27T11:31:06+09:00","era":"A","subject":"fix: 오타수정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5a7222efcb4fc3f2d7069f5d1e4f4e252136ea79","date":"2024-09-27T11:26:51+09:00","era":"A","subject":"chore(): user 폴더 삭제","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0e55a926b409b62ebb170a8d04ff6e897582be49","date":"2024-09-27T11:23:36+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"48ffebb8129c3d493faef114cc815a3c4791653a","date":"2024-09-27T11:23:26+09:00","era":"A","subject":"feat: 로그인 시 fc 정보 반환","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle.config.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"abbd03a1b404eb51c9b13dd621c8987fccbef20f","date":"2024-09-27T11:20:35+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ab2ef5f5542e91b171249c50989498f92da2b4eb","date":"2024-09-27T11:20:23+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b7f2cb103e3b41bf528df7b1178ba46938d3a18e","date":"2024-09-27T11:13:04+09:00","era":"A","subject":"fix: CORS 설정","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/main.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a7fb54f41f002b7a1dc13fc309187907c0b13011","date":"2024-09-27T10:42:03+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e2dd4807dfcbc8f8cc645bf0630f9f8aaec2c53f","date":"2024-09-27T10:19:05+09:00","era":"A","subject":"feat(): 암호화변경","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f8165d02fa82916c2963c472b6cdda78b8e3322","date":"2024-09-27T02:05:56+09:00","era":"A","subject":"refactor: 고객 API는 FC 하위에 속하므로 FC API로 이동","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/fc/fc.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/user/user.service.ts","old_path":null,"score":null},{"status":"M","path":"src/pino.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"12ed8a680449dc03845da34fed81da745be1b63d","date":"2024-09-27T00:41:55+09:00","era":"A","subject":"add: build job 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fde30ca629d6bf6cc4c0e6e882f2dcb77f3b2eb4","date":"2024-09-27T00:38:40+09:00","era":"A","subject":"chore: job name 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"422ccaba4e0c2ec4c40b088403443226364cf86c","date":"2024-09-27T00:38:13+09:00","era":"A","subject":"remove: docker compose 삭제","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"D","path":"docker-compose.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"423ee5004499fa688494add1d9c8bda70fdaa0c3","date":"2024-09-27T00:34:54+09:00","era":"A","subject":"fix: arn 입력","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1e8088fe5e35c8e369e610f04659ef89e261b2d9","date":"2024-09-27T00:31:54+09:00","era":"A","subject":"chore: env-files arn 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bdf468411273eb018a2dca25f853f08b35294eef","date":"2024-09-27T00:22:05+09:00","era":"A","subject":"test: console.log 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7542511c4b70072345063ffebf0852a8908e4e5e","date":"2024-09-27T00:19:50+09:00","era":"A","subject":"test: console.log 부활","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1a7ea380fa278eb33643dbbc618cc2df4022e9f3","date":"2024-09-27T00:13:23+09:00","era":"A","subject":"test: console.log 제거","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"610d1c61838e369cc2a6d39facab2fd962f89e3d","date":"2024-09-26T23:55:53+09:00","era":"A","subject":"test: pino pretty 끔","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/pino.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4e7c28cfba7b06f1893f4b78707af072ff55d164","date":"2024-09-26T23:43:48+09:00","era":"A","subject":"test: 환경변수","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"src/pino.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"816b2cdc8ce40138be895e61e0df443ee71a8b96","date":"2024-09-26T23:39:46+09:00","era":"A","subject":"chore: ecs task에 환경변수 주입 테스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"db11ddb8fe01c234fcbd8eff6919f6923a544c03","date":"2024-09-26T23:36:27+09:00","era":"A","subject":"chore: ecs task에 환경변수 주입","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ce9859b6abdef4b01558a0f8b011289d113c320e","date":"2024-09-26T23:30:18+09:00","era":"A","subject":"chore: 이미지 태그 sha 사용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"73b0234a9aff14a60ed18f8d221d2355d33dddc8","date":"2024-09-26T23:23:14+09:00","era":"A","subject":"chore: 환경변수 테스트","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd25dde2250ee5b236b6afc228282dc710c9a3bc","date":"2024-09-26T21:53:02+09:00","era":"A","subject":"chore: src경로 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d5a306352e02a246d52b20c35ae1c218d4fe9828","date":"2024-09-26T21:46:29+09:00","era":"A","subject":"chore: main.js 실행하도록 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"60d5d3be8616e7d7746b6085f285689d3e9a52ec","date":"2024-09-26T21:45:40+09:00","era":"A","subject":"fix: workspace 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6b29d8060580ba0fc274a60aa0dcb00f7a4f2bbb","date":"2024-09-26T21:41:07+09:00","era":"A","subject":"fix: 쌍따옴표 사용","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bab0fc9002bf8346fd376495c10c4afd4c7fab03","date":"2024-09-26T21:38:57+09:00","era":"A","subject":"fix: start:prod 태그 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"145b282ef600163d5f723e1af37441f494406ddf","date":"2024-09-26T21:35:40+09:00","era":"A","subject":"fix: build 명령 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"af958a8dfc264089c5596c534bd5fbb8336a0022","date":"2024-09-26T21:31:17+09:00","era":"A","subject":"fix: 7200 포트 오픈","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a666e346f49cc39b9431cd93bf765a6972f32474","date":"2024-09-26T21:30:45+09:00","era":"A","subject":"feat: 헬스체크 라우터 추가","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"340b9b38af36f447936c0e9c9a38def6d88b441d","date":"2024-09-26T21:22:37+09:00","era":"A","subject":"chore: CI/CD 테스트 29","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7932e16a604c40baed03a2ca8d562b3753555d4a","date":"2024-09-26T21:21:00+09:00","era":"A","subject":"chore: CI/CD 테스트 28","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":".dockerignore","old_path":null,"score":null},{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null},{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6de3955c1e149f112cde42f91be3777227c1ab57","date":"2024-09-26T21:12:41+09:00","era":"A","subject":"chore: CI/CD 테스트 27","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8a1de06bf053a61d57edbbe558abbcd57e709934","date":"2024-09-26T21:09:41+09:00","era":"A","subject":"chore: CI/CD 테스트 26","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ec7facc2d6e7937963348211df7d9d57d5956c61","date":"2024-09-26T21:06:04+09:00","era":"A","subject":"chore: CI/CD 테스트 25","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ed9fd12723f6bce4a33f908eb9be591b6fd3dfbf","date":"2024-09-26T21:03:33+09:00","era":"A","subject":"chore: CI/CD 테스트 24","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"77ed01d394473b30ce3741b5b495f8737cc96a08","date":"2024-09-26T20:59:56+09:00","era":"A","subject":"chore: CI/CD 테스트 23","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"280e37f7fb939d3f9da91a2d00ebc37eac8b3b6a","date":"2024-09-26T20:57:35+09:00","era":"A","subject":"chore: CI/CD 테스트 22","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e103bc173338693811c7d9db1129c35fb96c8c0c","date":"2024-09-26T20:54:58+09:00","era":"A","subject":"chore: CI/CD 테스트 21","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"32b61b424f9d73880cd062dc11aa8eb647c6b5b6","date":"2024-09-26T20:53:19+09:00","era":"A","subject":"chore: CI/CD 테스트 20","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"49231bb55b88dc5ad0dd6c53cafcbbaaa95cf22a","date":"2024-09-26T20:50:43+09:00","era":"A","subject":"chore: CI/CD 테스트 19","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/dev.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"aaf9b42a574e30368dd8f17c085b28b040b9d1d5","date":"2024-09-26T20:49:48+09:00","era":"A","subject":"chore: CI/CD 테스트 18","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"R","path":".github/workflows/dev.yml","old_path":".github/workflows/deploy.yml","score":51}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b4d8472e665074df6f4e7922e55e9745517e0a01","date":"2024-09-26T20:29:09+09:00","era":"A","subject":"chore: CI/CD 테스트 17","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"331df7efc9876281c9fe0dddfbfad227f17d4993","date":"2024-09-26T20:24:21+09:00","era":"A","subject":"chore: CI/CD 테스트 16","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"A","path":"src/app.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e344364c3b66721ac75218933d47faa80118f88c","date":"2024-09-26T20:16:00+09:00","era":"A","subject":"chore: CI/CD 테스트 15","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2e8138a622e79006e0df943c3dd39a44eac18c26","date":"2024-09-26T20:11:46+09:00","era":"A","subject":"chore: CI/CD 테스트 14","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ccc745f071b71936137b634befbdee7dfd33a81e","date":"2024-09-26T20:07:39+09:00","era":"A","subject":"chore: CI/CD 테스트 13","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b5066cd3673cf1e47cf5b74f95229a38b61bf8ec","date":"2024-09-26T19:21:10+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e404e5fc4f56a8e957005664310782bf58842efb","date":"2024-09-26T19:16:01+09:00","era":"A","subject":"chore: CI/CD 테스트 12","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4484ddd63b07f8528eecdd0c615af6ec7f132c2c","date":"2024-09-26T19:16:01+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fb49878ec031577526267d22929f8b600cf013f0","date":"2024-09-26T19:11:52+09:00","era":"A","subject":"chore: CI/CD 테스트 11","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bded77d5b72e769e148b7e8e51bdb82cec31ee47","date":"2024-09-26T19:11:52+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bf52e79c8f3989e04c4e1faf958e190348f34a98","date":"2024-09-26T19:08:47+09:00","era":"A","subject":"chore: CI/CD 테스트 10","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"cfcb3fab0fca12e498c1d3e3970f4609bd61b0ae","date":"2024-09-26T19:08:47+09:00","era":"A","subject":"chore: 충돌 병합","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9e0ed2f76a1e59c417f1eed50773bf45e797232a","date":"2024-09-26T18:41:57+09:00","era":"A","subject":"chore: CI/CD 테스트 9","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b2b13bfc9e45fddb9eea4e7ebd39ec924f58daac","date":"2024-09-26T18:41:57+09:00","era":"A","subject":"chore: CI/CD 테스트 8","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97414b018e5e8651603968b8ed9f04af777c92e5","date":"2024-09-26T18:39:36+09:00","era":"A","subject":"chore: CI/CD 테스트 6","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0af26b278ceac3ad42cfe6753ce0aef3b372dbfb","date":"2024-09-26T17:22:28+09:00","era":"A","subject":"chore: CI/CD 테스트 5","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3e9c20ba93e5c79d4e5df630e88b72fec84f720e","date":"2024-09-26T11:24:08+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bfa1d51655aad124027035d16e8087f918a625d4","date":"2024-09-26T10:48:58+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ba50ee066556dba3795885a585b6f5f862f2f8ff","date":"2024-09-26T10:48:43+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6c5914ee805341cabb9adea5cb24b7c57b93beac","date":"2024-09-25T18:53:39+09:00","era":"A","subject":"chore: CI/CD 테스트 4","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6de23efd63fa716fde382be7d23109aa038d81bd","date":"2024-09-25T18:51:48+09:00","era":"A","subject":"chore: CI/CD 테스트 3","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null},{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9a46841424637beb6e7b68a65e7d5c23a004216a","date":"2024-09-25T18:49:33+09:00","era":"A","subject":"chore: CI/CD 테스트 2","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":".github/workflows/deploy.yml","old_path":null,"score":null},{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"46dde154f93dce832d6e0951c232ec0604cfb65f","date":"2024-09-25T18:45:51+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6752a2e66af06f8e5fbbc30ab93bfb5fcd7591e6","date":"2024-09-25T18:45:38+09:00","era":"A","subject":"chore: CI/CD 테스트 1","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"A","path":".github/workflows/deploy.yml","old_path":null,"score":null},{"status":"M","path":"docker-compose.yml","old_path":null,"score":null},{"status":"M","path":"dockerfile","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"0c07e86fbe50dc0bd5590686102b7520b152a2a7","date":"2024-09-25T16:52:36+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b78ce0c3e41de6c62eb078f768c97fa0f39d5781","date":"2024-09-25T16:50:58+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2f2495b4c37f3c95824be75963f8fc09c2f8270a","date":"2024-09-25T16:44:43+09:00","era":"A","subject":"feat(): 알람코드 추가","body":"","body_present":false,"is_merge":false,"file_count":8,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dad12882f2d2cd943029ddb40e6203b26140038f","date":"2024-09-25T15:59:51+09:00","era":"A","subject":"feat(): 분석목록삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order-detail.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"283e05ebf9d301647142863fc86c0800b8d3ab4f","date":"2024-09-25T15:47:41+09:00","era":"A","subject":"refactor: jwtmodule 전역해제","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"14e0ed5b75290991d9395e021deaa0156b00002f","date":"2024-09-25T15:46:40+09:00","era":"A","subject":"chore: 충돌 병합","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"97cdf7b6ff9321eccf1a61a8f72f23875f133497","date":"2024-09-25T15:41:54+09:00","era":"A","subject":"refactor: 의존성주입 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":18,"files":[{"status":"A","path":"docker-compose.yml","old_path":null,"score":null},{"status":"A","path":"dockerfile","old_path":null,"score":null},{"status":"D","path":"src/app.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/analyze/analyze.service.ts","old_path":"src/modules/analyze/analyse.service.ts","score":99},{"status":"M","path":"src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/search/search.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/crypto/crypto.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/webclient/webclient.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4aef222310d52b85cb66ff6f444a95ed51137c04","date":"2024-09-25T15:35:15+09:00","era":"A","subject":"chore(): order -> orderdetail 변경","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order-detail.controller.ts","old_path":null,"score":null},{"status":"R","path":"src/modules/order/order-detail.dto.ts","old_path":"src/modules/order/order.dto.ts","score":100},{"status":"R","path":"src/modules/order/order-detail.module.ts","old_path":"src/modules/order/order.module.ts","score":55},{"status":"R","path":"src/modules/order/order-detail.service.ts","old_path":"src/modules/order/order.service.ts","score":97},{"status":"D","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e5cd136fa64020ceb75136795c5a69c911c3fbb4","date":"2024-09-25T12:28:47+09:00","era":"A","subject":"feat(): 알람삭제","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fa36a7d5149777a043ec5f926312a5e3c351547a","date":"2024-09-25T12:22:22+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9948baa4b9a4a6b4681ce2bec49ae79c2df0311b","date":"2024-09-25T12:21:36+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"4b1606e82f9f2aec61c2f037a8dceaadcfad5d7e","date":"2024-09-25T12:21:20+09:00","era":"A","subject":"feat(): 고객목록api","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/user/user.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6d475e4ff9468e3d8c953336cf6176c567c914a8","date":"2024-09-25T11:44:48+09:00","era":"A","subject":"remove: 샘플 모듈 삭제","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"D","path":"src/modules/sample/sample.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/sample/sample.dto.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/sample/sample.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/sample/sample.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"006f138b0d5bfb0ed585fd6f97345256bbb9b9a7","date":"2024-09-25T10:56:20+09:00","era":"A","subject":"chore(): order detail status code로 변경","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.event.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d3916fda735ee6490356158a159d75c69aa4e31","date":"2024-09-24T17:25:34+09:00","era":"A","subject":"feat(): 코드검색","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/search/search.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"52cdc24b95574586536d4d4bf171d55f02080c17","date":"2024-09-24T12:23:32+09:00","era":"A","subject":"feat():fc알람목록","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"289238d4c7185e9e92c87f3b6102e4eed0350a45","date":"2024-09-24T11:28:06+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"dd6d2d7169bdd73d5114c59019925685314dc23b","date":"2024-09-24T11:25:15+09:00","era":"A","subject":"feat(): 진료자료 요청 및 분석 시 알람, 주문상세 상태추가","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"A","path":"src/modules/alarm/alarm.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alarm/alarm.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alarm/alarm.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/alarm/alarm.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.interface.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"8c6c539b19d61a02df66c96628365696860cfc81","date":"2024-09-24T09:04:31+09:00","era":"A","subject":"feat(): count 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"3437526ff48669875c0ea4f9792bba01c3cf95c3","date":"2024-09-23T17:01:29+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7dc1bfc96c84feaf88295d88661f5586162cfb25","date":"2024-09-23T17:01:08+09:00","era":"A","subject":"chore(): schema change","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"da0218f838b5e25bebc6f2e111c1fd99b29eeebb","date":"2024-09-23T16:21:27+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"59fb2c1b3fddc745ecb29d9db855d94545dbe98b","date":"2024-09-23T16:21:19+09:00","era":"A","subject":"feat: 아이디/비밀번호찾기 구현","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ffb1322787e542e5c0546f1d5e97e1c0d9c213e8","date":"2024-09-23T16:17:55+09:00","era":"A","subject":"chore():","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a7cd6da89fc63b0418b65306704e98a2a0c76b63","date":"2024-09-23T15:46:55+09:00","era":"A","subject":"feat(): event handler","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.event.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/user/user.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"125f4ed967b19194b91215980f6512ef0fa22d61","date":"2024-09-23T11:21:54+09:00","era":"A","subject":"chore(): schema change","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"374d631bbdda17b3085e5c26b1d90edd8581be40","date":"2024-09-23T11:00:59+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c85497cb4df19cff7497d736bd079be41c8a0e1f","date":"2024-09-23T11:00:23+09:00","era":"A","subject":"feat(): 분석목록","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"fd9cb3c1b40110b692ede448a475b8860811e42b","date":"2024-09-23T09:24:14+09:00","era":"A","subject":"feat(): 처방조제정보 목록","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5822e1e26743c6c4d5ec25ba601a126793f2a875","date":"2024-09-23T09:14:00+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"884e4e904d71c5e92ff3be4aebdfbb2c425447cc","date":"2024-09-20T17:51:03+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2b70336f8ba340fd9017e5cfba05a46698fcd0d0","date":"2024-09-20T17:41:56+09:00","era":"A","subject":"feat(): 분석결과조회 5년치 계산","body":"","body_present":false,"is_merge":false,"file_count":15,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/compare/compare.controller.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/compare/compare.dto.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/compare/compare.module.ts","old_path":null,"score":null},{"status":"D","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/order/order.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a453133a8eddd4eb4c7a8240cf6eb1c74e9650b6","date":"2024-09-19T18:04:24+09:00","era":"A","subject":"feat(): 5년내 치료, 투약","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d63d6789aa69b40c775cff9b7a70e5d7200805a2","date":"2024-09-19T14:41:50+09:00","era":"A","subject":"chore() schema change","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ed684b527bf8a88cc97db6b6a60452173cfd4efc","date":"2024-09-19T11:19:05+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"639c44fce3d197dfd05e8874c421871830b246c7","date":"2024-09-19T10:14:11+09:00","era":"A","subject":"feat():숨은보험,치아고지리스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d5df5f1dbe018d5ce436cf824f644ca41f02c41b","date":"2024-09-13T13:08:10+09:00","era":"A","subject":"feat(): 3개월 분석데이터","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"33d6302deeeaa7d81ad92ea1db484c1c421be449","date":"2024-09-13T11:03:24+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"2c543ce6dfc3da46115eec58f13b110adb874ccd","date":"2024-09-13T11:03:13+09:00","era":"A","subject":"chore: user테이블 유니크 키 추가","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7c345dc6cefbdfaeda6e3013780aa646d726a4bf","date":"2024-09-13T09:42:11+09:00","era":"A","subject":"feat(): order module create","body":"","body_present":false,"is_merge":false,"file_count":10,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/order/order.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"ed912cf13ac4b5eb30e81a782a3f146ce2de7ca6","date":"2024-09-12T18:48:42+09:00","era":"A","subject":"refactor: date-fns삭제, dayjs로 변경","body":"","body_present":false,"is_merge":false,"file_count":6,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef-auth.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d58b1b7f8526334733987cd814f31706bd449579","date":"2024-09-12T18:43:20+09:00","era":"A","subject":"Merge conflict","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"7ae7f86c201492d209c93f2358bb71c34af91216","date":"2024-09-12T18:41:55+09:00","era":"A","subject":"refactor: CodefService 리팩토링","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/main.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/pino.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef-auth.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/webclient/webclient.service.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"95360b24b8984415a8d5c528f403f3d9cb2b0cce","date":"2024-09-12T18:00:08+09:00","era":"A","subject":"chore(): 기본분석리스트","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"13ec1ba3ff24eeda3b2e8dbfec10a1faad33a23e","date":"2024-09-12T16:43:40+09:00","era":"A","subject":"chore() schema chagne","body":"","body_present":false,"is_merge":false,"file_count":5,"files":[{"status":"A","path":"drizzle/0000_demonic_banshee.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/meta/0000_snapshot.json","old_path":null,"score":null},{"status":"A","path":"drizzle/meta/_journal.json","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6bb6a66aac06f3c1664a9ef6d1dc621cc2a703f1","date":"2024-09-12T16:37:56+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"f47de9f4c815297025be21edeef8bfa53e0b64fc","date":"2024-09-12T16:30:26+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"afdc25d8fd5c1b39723ca75a01a2475ede223382","date":"2024-09-12T16:30:09+09:00","era":"A","subject":"chore()","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d3371e960ca57df744be10dbe3e9fed1035dfe77","date":"2024-09-12T16:27:53+09:00","era":"A","subject":"remove: DB 마이그레이션 삭제","body":"","body_present":false,"is_merge":false,"file_count":3,"files":[{"status":"D","path":"drizzle/0000_wide_layla_miller.sql","old_path":null,"score":null},{"status":"D","path":"drizzle/meta/0000_snapshot.json","old_path":null,"score":null},{"status":"D","path":"drizzle/meta/_journal.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"d1151f5bda01a5f6a1701deec545cb8b034a02c5","date":"2024-09-12T16:01:21+09:00","era":"A","subject":"chore() throw add","body":"","body_present":false,"is_merge":false,"file_count":4,"files":[{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"edc4a4dd07c6b02a0dd44d3e91a66b53c28e38ad","date":"2024-09-12T15:40:28+09:00","era":"A","subject":"chore(): db 변경에 따른 에러수정","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"df13fc50628c10de9a54910968f2c124a9a28895","date":"2024-09-12T12:47:18+09:00","era":"A","subject":"refactor: 드리즐 스키마 병합","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"drizzle.config.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null},{"status":"D","path":"src/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"5062978a151aceed0aca1bb536f88aafd003da27","date":"2024-09-12T12:43:40+09:00","era":"A","subject":"feat: 회원가입","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/crypto/crypto.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/crypto/crypto.service.ts","old_path":null,"score":null},{"status":"M","path":"src/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"c226fa2819601d305ac69255e40549d903d5ecee","date":"2024-09-12T12:34:40+09:00","era":"A","subject":"Merge branch 'dev' of https://github.com/rsteam-organization/fn-insurance-server into dev","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d51e00b863386a78af2af4f457c9f8726091136","date":"2024-09-11T18:23:43+09:00","era":"A","subject":"change: 로그인 응답 인터페이스 변경","body":"","body_present":false,"is_merge":false,"file_count":1,"files":[{"status":"M","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"76e96c35415845a286e43c5ff39a4c95fcd80af2","date":"2024-09-11T18:22:24+09:00","era":"A","subject":"Fix untracked files","body":"","body_present":false,"is_merge":false,"file_count":2,"files":[{"status":"D","path":".env.dev","old_path":null,"score":null},{"status":"D","path":".env.prod","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"1d5600ac6ebe3a6cd7c4ad1bd68f6456c1c4a1e0","date":"2024-09-11T17:42:46+09:00","era":"A","subject":"chore(): merge","body":"","body_present":false,"is_merge":true,"file_count":0,"files":[],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"699875f2807ec3d37dab6b1dcefb9b57a84ccc61","date":"2024-09-11T17:40:52+09:00","era":"A","subject":"feat() dto chagne","body":"","body_present":false,"is_merge":false,"file_count":7,"files":[{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"6eb260840446485c5bdec08b8639c246139ad0d0","date":"2024-09-11T17:40:26+09:00","era":"A","subject":"feat: 로그인 구현","body":"","body_present":false,"is_merge":false,"file_count":12,"files":[{"status":"M","path":".env.dev","old_path":null,"score":null},{"status":"M","path":".gitignore","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/auth.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/auth.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/auth.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/auth/auth.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"bd25fbaa3d0e5f6c28af77451571b190bf4ce709","date":"2024-09-11T09:31:47+09:00","era":"A","subject":"feat(): compare procedure","body":"","body_present":false,"is_merge":false,"file_count":14,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"b9239b4ffe5284bba5c639c86a93a72912294aea","date":"2024-09-09T12:34:04+09:00","era":"A","subject":"chore(): schema edit","body":"","body_present":false,"is_merge":false,"file_count":11,"files":[{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"A","path":"src/helpers/format.helper.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/schema.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"480a015a730cfce5589ae8351c3d8bf70b691c7c","date":"2024-09-06T11:40:59+09:00","era":"A","subject":"chore","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"A","path":"src/modules/analyze/analyse.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/analyze/analyze.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/compare.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/compare.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/compare.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/compare/compare.service.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/module.module.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"35a358f0502c81d8735cc01fdb604caecf997a77","date":"2024-09-06T11:34:56+09:00","era":"A","subject":"feat(): 심평원 진료정보 저장1차","body":"","body_present":false,"is_merge":false,"file_count":9,"files":[{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null},{"status":"M","path":"src/schema.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"9544a815f813a5e8d7307b563e0390fcface6d47","date":"2024-09-04T16:23:51+09:00","era":"A","subject":"feat(): 심평원 인증요청api","body":"","body_present":false,"is_merge":false,"file_count":22,"files":[{"status":"M","path":".env.dev","old_path":null,"score":null},{"status":"M","path":"drizzle.config.ts","old_path":null,"score":null},{"status":"M","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"package-lock.json","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"M","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"M","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"M","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef.exception.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef.interface.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/codef/codef.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null},{"status":"M","path":"src/providers/webclient/webclient.service.ts","old_path":null,"score":null},{"status":"M","path":"src/schema.ts","old_path":null,"score":null},{"status":"M","path":"src/utils/type-parser.ts","old_path":null,"score":null},{"status":"M","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"e9ae08db466490022f98b3f9ba68d08c715d6caf","date":"2024-09-02T11:27:44+09:00","era":"A","subject":"chore(): 기본구조","body":"","body_present":false,"is_merge":false,"file_count":17,"files":[{"status":"M","path":"drizzle.config.ts","old_path":null,"score":null},{"status":"R","path":"drizzle/0000_wide_layla_miller.sql","old_path":"drizzle/0000_flat_jetstream.sql","score":89},{"status":"M","path":"drizzle/meta/0000_snapshot.json","old_path":null,"score":null},{"status":"M","path":"drizzle/meta/_journal.json","old_path":null,"score":null},{"status":"M","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/schema.ts","old_path":null,"score":null},{"status":"M","path":"package.json","old_path":null,"score":null},{"status":"M","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/module.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/sample/sample.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/sample/sample.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/sample/sample.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/sample/sample.service.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.dto.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.module.ts","old_path":null,"score":null},{"status":"A","path":"src/modules/treat/treat.service.ts","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
{"sha":"a9e7f1e84cd7a63942525400cb1bac875c874b78","date":"2024-08-27T11:29:50+09:00","era":"A","subject":"Init","body":"","body_present":false,"is_merge":false,"file_count":35,"files":[{"status":"A","path":".env.dev","old_path":null,"score":null},{"status":"A","path":".env.prod","old_path":null,"score":null},{"status":"A","path":".eslintrc.js","old_path":null,"score":null},{"status":"A","path":".gitignore","old_path":null,"score":null},{"status":"A","path":".nvmrc","old_path":null,"score":null},{"status":"A","path":".prettierignore","old_path":null,"score":null},{"status":"A","path":".prettierrc","old_path":null,"score":null},{"status":"A","path":"README.md","old_path":null,"score":null},{"status":"A","path":"drizzle.config.ts","old_path":null,"score":null},{"status":"A","path":"drizzle/0000_flat_jetstream.sql","old_path":null,"score":null},{"status":"A","path":"drizzle/meta/0000_snapshot.json","old_path":null,"score":null},{"status":"A","path":"drizzle/meta/_journal.json","old_path":null,"score":null},{"status":"A","path":"drizzle/relations.ts","old_path":null,"score":null},{"status":"A","path":"nest-cli.json","old_path":null,"score":null},{"status":"A","path":"package-lock.json","old_path":null,"score":null},{"status":"A","path":"package.json","old_path":null,"score":null},{"status":"A","path":"src/app.controller.ts","old_path":null,"score":null},{"status":"A","path":"src/app.module.ts","old_path":null,"score":null},{"status":"A","path":"src/config/configuration.ts","old_path":null,"score":null},{"status":"A","path":"src/constants/api.constant.ts","old_path":null,"score":null},{"status":"A","path":"src/fliters/all-exception.filter.ts","old_path":null,"score":null},{"status":"A","path":"src/interceptors/api-response.interceptor.ts","old_path":null,"score":null},{"status":"A","path":"src/main.ts","old_path":null,"score":null},{"status":"A","path":"src/pino.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/drizzle.constant.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/drizzle.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/drizzle/drizzle.service.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/webclient/webclient.module.ts","old_path":null,"score":null},{"status":"A","path":"src/providers/webclient/webclient.service.ts","old_path":null,"score":null},{"status":"A","path":"src/schema.ts","old_path":null,"score":null},{"status":"A","path":"src/swagger.ts","old_path":null,"score":null},{"status":"A","path":"src/utils/shuffle.ts","old_path":null,"score":null},{"status":"A","path":"src/utils/type-parser.ts","old_path":null,"score":null},{"status":"A","path":"tsconfig.build.json","old_path":null,"score":null},{"status":"A","path":"tsconfig.json","old_path":null,"score":null}],"excluded_only":false,"large_commit":false,"structural_event":false}
