# DB_SCHEMA 작성일: 2026-10-21 04:54:40 ## 1. DB 기본 정보 - DB 파일: `/opt/kvcs/data/ai_cs.db` - DB 크기: `106.86 MB` - DB 수정일: `2026-10-21 04:30:55` - 테이블 수: `14` - 총 row 수: `83417` ## 2. DB 사용 원칙 - 이 문서는 AICS SQLite DB 구조를 새 대화방, Claude, Codex, 근무자에게 설명하기 위한 기준 문서다. - 현재 AICS DB는 `/opt/kvcs/data/ai_cs.db` 파일을 사용한다. - 1단계 DB 관리는 조회 전용이다. - 원본 데이터 테이블은 직접 수정하지 않는다. - 처리 상태, 메모, AI 정리본 등은 별도 테이블로 분리해서 확장한다. - 본서버 데이터를 바꾸는 쓰기 API와 AICS DB 원본 수정은 별도 승인/백업/로그 정책이 필요하다. ## 3. 테이블 요약 | 테이블 | 설명 | rows | 사용 화면 | 정책 | |---|---:|---:|---|---| | `ai_board_analysis` | 게시판 분석 결과 | 24247 | 게시판 업무, 업무 카테고리 | 분석 결과는 수정 가능 후보지만, 원문은 수정하지 않습니다. | | `ai_board_items` | 게시판 원본 데이터 | 59008 | 향후 /aics/board, 업무 카테고리, 게시판 정리 데이터 | 원본성 데이터라 직접 수정 금지. 필요한 경우 별도 처리상태 테이블을 연결합니다. | | `ai_cs_items` | 소매 CS 분석 이력 | 28 | 향후 소매점360, 카톡 정리 데이터 | 기존 데이터 보존. 새 AICS에서는 별도 구조로 재설계 예정입니다. | | `ai_wh_kakao_tasks` | 중도매 CS톡 업무카드 | 71 | 향후 중도매360, 카톡 정리 데이터 | 기존 /cs 화면과 새 /aics 화면을 섞지 않고 참고용으로 봅니다. | | `aics_resource_files` | AICS 자료관리 첨부파일 | 12 | /aics/resources | 실제 파일은 /opt/kvcs/data/aics_resources/files 에 보관하고 DB에는 메타정보만 저장합니다. 삭제는 soft delete 방식입니다. | | `aics_resource_posts` | AICS 자료관리 게시글 | 13 | /aics/resources | 키빌 본서버 원본 데이터와 완전히 분리된 AICS 내부 업무자료입니다. 삭제는 is_deleted 기반 soft delete를 사용합니다. | | `import_products` | import_products | 11 | | | | `import_suppliers` | import_suppliers | 5 | | | | `kakao_attachments` | kakao_attachments | 5 | | | | `kakao_photo_item_links` | kakao_photo_item_links | 2 | | | | `kakao_photo_matches` | kakao_photo_matches | 2 | | | | `kakao_raw_sessions` | kakao_raw_sessions | 1 | | | | `kv1688_v2_ingests` | kv1688_v2_ingests | 1 | | | | `sqlite_sequence` | SQLite 자동증가 관리 테이블 | 11 | 관리 참고용 | 직접 수정 금지. | ## 4. 테이블 상세 ### 4.1. `ai_board_analysis` - 한글명: 게시판 분석 결과 - 용도: 게시판 글에 대한 AI 분석/요약/분류 결과를 저장하는 테이블입니다. - 출처: AICS 수동 분석 또는 기존 분석 기능 - 사용 화면: 게시판 업무, 업무 카테고리 - 정책: 분석 결과는 수정 가능 후보지만, 원문은 수정하지 않습니다. - rows: `24247` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `board_item_id` | `INTEGER` | 0 | 1 | `None` | | `priority` | `TEXT` | 0 | 1 | `'normal'` | | `category` | `TEXT` | 0 | 1 | `'etc'` | | `summary` | `TEXT` | 0 | 1 | `''` | | `customer_intent` | `TEXT` | 0 | 1 | `''` | | `check_items` | `TEXT` | 0 | 1 | `''` | | `suggested_reply` | `TEXT` | 0 | 1 | `''` | | `status` | `TEXT` | 0 | 1 | `'new'` | | `memo` | `TEXT` | 0 | 1 | `''` | | `analyzed_at` | `TEXT` | 0 | 1 | `''` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "48297", "board_item_id": "97033", "priority": "normal", "category": "etc", "summary": "", "customer_intent": "", "check_items": "", "suggested_reply": "", "status": "new", "memo": "", "analyzed_at": "", "created_at": "2026-06-09 15:40:45", "updated_at": "2026-06-09 15:40:45" }, { "id": "48296", "board_item_id": "96855", "priority": "high", "category": "address_change", "summary": "문의합니다.\n안녕하세요,\n주문번호 2026052816330042 건 주소 변경 부탁드립니다!\n\n김근선\n01071061593\n서울시 광진구 광나루로56길 34, 구의현대2단지 204", "customer_intent": "배송 전 주소 변경 가능 여부 확인이 필요한 문의입니다.", "check_items": "[\"Check order number\", \"Check shop/customer name\", \"Check product name, color, size\", \"Check current order status\", \"Check stock/delivery status\", \"Check whether shipping request is already processed\"]", "suggested_reply": "고객님, 주소변경 요청 확인했습니다. 현재 배송요청 처리 여부를 확인한 뒤 변경 가능 여부를 안내드리겠습니다.", "status": "new", "memo": "", "analyzed_at": "2026-06-08 15:50:11", "created_at": "2026-06-08 15:45:11", "updated_at": "2026-06-08 15:50:11" }, { "id": "48295", "board_item_id": "96854", "priority": "urgent", "category": "refund_cancel", "summary": "문의합니다.\n해당 보스톤이어매쉬캡 배송취소 요청드립니다.", "customer_intent": "환불 또는 취소 가능 여부 확인이 필요한 문의입니다.", "check_items": "[\"Check order number\", \"Check shop/customer name\", \"Check product name, color, size\", \"Check current order status\", \"Check stock/delivery status\"]", "suggested_reply": "고객님, 환불/취소 요청 확인했습니다. 주문상태와 처리 가능 여부를 확인한 뒤 안내드리겠습니다.", "status": "new", "memo": "", "analyzed_at": "2026-06-08 15:50:11", "created_at": "2026-06-08 15:45:11", "updated_at": "2026-06-08 15:50:11" } ] ``` ### 4.2. `ai_board_items` - 한글명: 게시판 원본 데이터 - 용도: 키빌 본서버 QA 게시판 글/댓글/연결 주문 후보를 AICS에 저장한 테이블입니다. - 출처: 키빌 본서버 qa_board_export_v2.php - 사용 화면: 향후 /aics/board, 업무 카테고리, 게시판 정리 데이터 - 정책: 원본성 데이터라 직접 수정 금지. 필요한 경우 별도 처리상태 테이블을 연결합니다. - rows: `59008` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `source` | `TEXT` | 0 | 1 | `'kidsvillage'` | | `board` | `TEXT` | 0 | 1 | `'qa'` | | `source_table` | `TEXT` | 0 | 1 | `''` | | `post_id` | `INTEGER` | 0 | 1 | `None` | | `parent_id` | `INTEGER` | 0 | 1 | `0` | | `item_type` | `TEXT` | 0 | 1 | `'question'` | | `kv_category` | `TEXT` | 0 | 1 | `''` | | `subject` | `TEXT` | 0 | 1 | `''` | | `content_html` | `TEXT` | 0 | 1 | `''` | | `content_text` | `TEXT` | 0 | 1 | `''` | | `writer_id` | `TEXT` | 0 | 1 | `''` | | `writer_name` | `TEXT` | 0 | 1 | `''` | | `writer_name_masked` | `TEXT` | 0 | 1 | `''` | | `is_secret` | `INTEGER` | 0 | 1 | `0` | | `source_created_at` | `TEXT` | 0 | 1 | `''` | | `source_updated_at` | `TEXT` | 0 | 1 | `''` | | `source_url` | `TEXT` | 0 | 1 | `''` | | `content_hash` | `TEXT` | 0 | 1 | `''` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | | `display_no` | `INTEGER` | 0 | 1 | `0` | | `display_no_category` | `INTEGER` | 0 | 1 | `0` | | `source_deleted` | `INTEGER` | 0 | 0 | `0` | | `source_deleted_at` | `TEXT` | 0 | 0 | `None` | | `source_status` | `TEXT` | 0 | 0 | `'active'` | | `linked_orders_json` | `TEXT` | 0 | 1 | `''` | | `linked_order_numbers` | `TEXT` | 0 | 1 | `''` | | `attachment_urls` | `TEXT` | 0 | 1 | `''` | | `attachment_source_post_id` | `TEXT` | 0 | 1 | `''` | | `attachment_source_reason` | `TEXT` | 0 | 1 | `''` | | `related_attachment_urls` | `TEXT` | 0 | 1 | `''` | | `related_attachment_source_post_id` | `TEXT` | 0 | 1 | `''` | | `related_attachment_source_reason` | `TEXT` | 0 | 1 | `''` | | `related_attachment_source_display_no` | `TEXT` | 0 | 1 | `''` | | `related_attachment_source_item_id` | `TEXT` | 0 | 1 | `''` | | `related_attachment_source_preview` | `TEXT` | 0 | 1 | `''` | | `ai_status` | `TEXT` | 0 | 1 | `'new'` | | `priority` | `TEXT` | 0 | 1 | `'normal'` | | `data_rule_json` | `TEXT` | 0 | 1 | `''` | | `data_rule_analyzed_at` | `TEXT` | 0 | 1 | `''` | | `data_rule_hash` | `TEXT` | 0 | 1 | `''` | | `data_rule_status` | `TEXT` | 0 | 1 | `''` | | `data_rule_error` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "107249", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "60694", "parent_id": "60694", "item_type": "question", "kv_category": "주문", "subject": "문의합니다.", "content_html": "안녕하세요.\r\n\r\n황세리(미유커머스) 주문내역 무통장입금했습니다.\r\n\r\n확인부탁드립니다^^", "content_text": "안녕하세요.\n\n황세리(미유커머스) 주문내역 무통장입금했습니다.\n\n확인부탁드립니다^^", "writer_id": "gravel", "writer_name": "미유커머스", "writer_name_masked": "미유커머스", "is_secret": "1", "source_created_at": "2026-10-21 02:13:13", "source_updated_at": "2026-10-21 02:13:13", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=60694", "content_hash": "5c06ffbcaaecfe5d6885a6b14172c4d0eff46eb773117c106d075258f3ef4502", "created_at": "2026-10-21 02:30:12", "updated_at": "2026-10-21 04:30:11", "display_no": "29209", "display_no_category": "2278", "source_deleted": "0", "source_deleted_at": "", "source_status": "active", "linked_orders_json": "[{\"order_no\": \"2026102101440393\", \"items\": [{\"ct_id\": 921924, \"it_id\": \"34C1792364431\", \"brand\": \"페퍼\", \"product_name\": \"호피조거\", \"option\": \"네이비\\u001eS\", \"color\": \"네이비\", \"size\": \"S\", \"qty\": 2, \"ct_status\": \"주문\", \"u_wh_step\": \"1\", \"request_size\": \"\", \"request_count\": \"\"}, {\"ct_id\": 921925, \"it_id\": \"34C1792364431\", \"brand\": \"페퍼\", \"product_name\": \"호피조거\", \"option\": \"차콜\\u001eS\", \"color\": \"차콜\", \"size\": \"S\", \"qty\": 2, \"ct_status\": \"주문\", \"u_wh_step\": \"1\", \"request_size\": \"\", \"request_count\": \"\"}, {\"ct_id\"...", "linked_order_numbers": "2026102101440393", "attachment_urls": "[]", "attachment_source_post_id": "", "attachment_source_reason": "", "related_attachment_urls": "", "related_attachment_source_post_id": "", "related_attachment_source_reason": "", "related_attachment_source_display_no": "", "related_attachment_source_item_id": "", "related_attachment_source_preview": "", "ai_status": "new", "priority": "normal", "data_rule_json": "{\"success\": true, \"gpt_used\": false, \"engine\": \"rule_based_v0.1\", \"input\": {\"writer_name\": \"미유커머스\", \"category\": \"주문\", \"subject\": \"문의합니다.\", \"text\": \"안녕하세요.\\n\\n황세리(미유커머스) 주문내역 무통장입금했습니다.\\n\\n확인부탁드립니다^^\"}, \"detected\": {\"intent\": \"일반문의\", \"product_request\": {\"brand\": \"\", \"product_name\": \"\", \"color\": \"\", \"size\": \"\", \"raw\": \"\"}}, \"kv_lookup_used\": false, \"kv_lookup_limit\": 80, \"member\": {\"mb_id\": \"gravel\", \"mb_name_masked\": \"황*리\", \"mb_nick\": \"미유커머스\", \"mb_company\": \"미유커머스\", \"mb_hp_masked\": \"010-****-1457...", "data_rule_analyzed_at": "2026-10-21 02:30:15", "data_rule_hash": "5c06ffbcaaecfe5d6885a6b14172c4d0eff46eb773117c106d075258f3ef4502", "data_rule_status": "done", "data_rule_error": "" }, { "id": "107248", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "60688", "parent_id": "60688", "item_type": "question", "kv_category": "주문", "subject": "문의합니다.", "content_html": "정민교님 데일리세트가 저번에 오류로 인해 입고에 체크버튼이 없는데 그외상품 2개만 출고요청 해도 데일리세트까지 총 3개가 출고가 되는거라고 보면 될까요?", "content_text": "정민교님 데일리세트가 저번에 오류로 인해 입고에 체크버튼이 없는데 그외상품 2개만 출고요청 해도 데일리세트까지 총 3개가 출고가 되는거라고 보면 될까요?", "writer_id": "dino22241", "writer_name": "디앤오1", "writer_name_masked": "디앤오1", "is_secret": "1", "source_created_at": "2026-10-21 00:35:42", "source_updated_at": "2026-10-21 00:35:42", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=60688", "content_hash": "cdeef6792ea0eb5cc198e5616ceef72af2b369ad7337ad9185bbc5270ae0f693", "created_at": "2026-10-21 01:00:13", "updated_at": "2026-10-21 04:30:11", "display_no": "29205", "display_no_category": "2277", "source_deleted": "0", "source_deleted_at": "", "source_status": "active", "linked_orders_json": "[{\"order_no\": \"2026090722585050\", \"items\": [{\"ct_id\": 835791, \"it_id\": \"6C1787121025\", \"brand\": \"메리고라운드\", \"product_name\": \"데일리세트\", \"option\": \"와인\\u001eM\", \"color\": \"와인\", \"size\": \"M\", \"qty\": 1, \"ct_status\": \"입금\", \"u_wh_step\": \"4\", \"request_size\": \"\", \"request_count\": \"\"}], \"item_count\": 1}]", "linked_order_numbers": "2026090722585050", "attachment_urls": "[]", "attachment_source_post_id": "", "attachment_source_reason": "", "related_attachment_urls": "", "related_attachment_source_post_id": "", "related_attachment_source_reason": "", "related_attachment_source_display_no": "", "related_attachment_source_item_id": "", "related_attachment_source_preview": "", "ai_status": "new", "priority": "normal", "data_rule_json": "{\"success\": true, \"gpt_used\": false, \"engine\": \"rule_based_v0.1\", \"input\": {\"writer_name\": \"디앤오1\", \"category\": \"주문\", \"subject\": \"문의합니다.\", \"text\": \"정민교님 데일리세트가 저번에 오류로 인해 입고에 체크버튼이 없는데 그외상품 2개만 출고요청 해도 데일리세트까지 총 3개가 출고가 되는거라고 보면 될까요?\"}, \"detected\": {\"intent\": \"입고시기 문의\", \"product_request\": {\"brand\": \"\", \"product_name\": \"\", \"color\": \"\", \"size\": \"\", \"raw\": \"\"}}, \"kv_lookup_used\": true, \"kv_lookup_limit\": 80, \"member\": {\"mb_id\": \"dino22241\", \"mb_name_masked\": \"정*슬\", \"mb_nick\": \"디앤오1\", \"mb_company\": \"...", "data_rule_analyzed_at": "2026-10-21 01:00:17", "data_rule_hash": "cdeef6792ea0eb5cc198e5616ceef72af2b369ad7337ad9185bbc5270ae0f693", "data_rule_status": "done", "data_rule_error": "" }, { "id": "107247", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "60690", "parent_id": "60689", "item_type": "comment", "kv_category": "입고시기", "subject": "답변/댓글", "content_html": "문의하신 상품의 최근 입고기록을 기준으로 1차 안내드립니다.\n\n• 미니로브 / 스티치데님조거팬츠 / 색상:중청 / 사이즈:S\n 예상 범위: 10월 24일 ~ 10월 25일\n 산정 기준: 키즈빌 입고확인 대기 · 문의 작성일 기준 3~4일 · 문의 작성일 기준\n 동일 옵션 최근 입고: 08월 24일 · 최근 5건\n 동일 상품 다른 옵션 최근 입고: 09월 14일 · 색상:생지 / 사이즈:S\n※ 브랜드(제조사)의 실제 생산 일정은 실시간으로 공유되지 않아 확정 입고일 안내는 어렵습니다.\n※ 위 범위는 키즈빌리지의 최근 입고기록을 바탕으로 한 참고 안내이며 리오더·생산·중도매 상황에 따라 달라질 수 있습니다.", "content_text": "문의하신 상품의 최근 입고기록을 기준으로 1차 안내드립니다.\n\n• 미니로브 / 스티치데님조거팬츠 / 색상:중청 / 사이즈:S\n 예상 범위: 10월 24일 ~ 10월 25일\n 산정 기준: 키즈빌 입고확인 대기 · 문의 작성일 기준 3~4일 · 문의 작성일 기준\n 동일 옵션 최근 입고: 08월 24일 · 최근 5건\n 동일 상품 다른 옵션 최근 입고: 09월 14일 · 색상:생지 / 사이즈:S\n※ 브랜드(제조사)의 실제 생산 일정은 실시간으로 공유되지 않아 확정 입고일 안내는 어렵습니다.\n※ 위 범위는 키즈빌리지의 최근 입고기록을 바탕으로 한 참고 안내이며 리오더·생산·중도매 상황에 따라 달라질 수 있습니다.", "writer_id": "master", "writer_name": "키즈빌리지", "writer_name_masked": "키즈빌리지", "is_secret": "0", "source_created_at": "2026-10-21 00:36:14", "source_updated_at": "", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=60689#c_60690", "content_hash": "0ea24ae6642d721528de0063ac6e8b456f45bca57dcbee4a4de86b3061f2e161", "created_at": "2026-10-21 01:00:13", "updated_at": "2026-10-21 04:30:11", "display_no": "0", "display_no_category": "0", "source_deleted": "0", "source_deleted_at": "", "source_status": "active", "linked_orders_json": "[]", "linked_order_numbers": "", "attachment_urls": "[]", "attachment_source_post_id": "", "attachment_source_reason": "", "related_attachment_urls": "", "related_attachment_source_post_id": "", "related_attachment_source_reason": "", "related_attachment_source_display_no": "", "related_attachment_source_item_id": "", "related_attachment_source_preview": "", "ai_status": "new", "priority": "normal", "data_rule_json": "", "data_rule_analyzed_at": "", "data_rule_hash": "", "data_rule_status": "", "data_rule_error": "" } ] ``` ### 4.3. `ai_cs_items` - 한글명: 소매 CS 분석 이력 - 용도: 소매점 카톡/CS 분석 결과를 저장하는 테이블입니다. - 출처: 소매 CS톡 분석 화면 - 사용 화면: 향후 소매점360, 카톡 정리 데이터 - 정책: 기존 데이터 보존. 새 AICS에서는 별도 구조로 재설계 예정입니다. - rows: `28` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `source_type` | `TEXT` | 0 | 1 | `'kakao'` | | `raw_text` | `TEXT` | 0 | 1 | `''` | | `priority` | `TEXT` | 0 | 1 | `''` | | `category` | `TEXT` | 0 | 1 | `''` | | `summary` | `TEXT` | 0 | 1 | `''` | | `customer_intent` | `TEXT` | 0 | 1 | `''` | | `check_items` | `TEXT` | 0 | 1 | `''` | | `suggested_reply` | `TEXT` | 0 | 1 | `''` | | `need_human_confirm` | `INTEGER` | 0 | 1 | `1` | | `status` | `TEXT` | 0 | 1 | `'new'` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | | `memo` | `TEXT` | 0 | 1 | `''` | | `order_no` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "28", "source_type": "kakao", "raw_text": "주문번호 : 2026060211365778 (기본주소지)\n주문번호 : 2026060111335651 (위탁주소지)\n\n기본주소지와 위탁주소지에 들어온 상품들을 합배로 받고싶은데 합배가 안되서요\n기본주소지 전체 상품 + 현재 위탁주소지 들어온 상품들 합배 요청부탁드립니다.", "priority": "normal", "category": "etc", "summary": "주문번호 : 2026060211365778 (기본주소지)\n주문번호 : 2026060111335651 (위탁주소지)\n\n기본주소지와 위탁주소지에 들어온 상품들을 합배로 받고싶은데 합배", "customer_intent": "관리자 확인이 필요한 일반 문의입니다.", "check_items": "[\"Check order number\", \"Check shop/customer name\", \"Check product name, color, size\", \"Check current order status\", \"Check stock/delivery status\"]", "suggested_reply": "고객님, 문의주신 내용 확인했습니다. 관련 주문정보와 처리상태를 확인한 뒤 안내드리겠습니다.", "need_human_confirm": "1", "status": "new", "created_at": "2026-06-09 10:38:22", "updated_at": "2026-06-09 10:38:22", "memo": "", "order_no": "2026060211365778" }, { "id": "27", "source_type": "kakao", "raw_text": "2026050809423129\n저번주에 언제쯤 입고 되는지 문의 드렸고\n업체측 답 오면 댓글 주신다거 하셨는데 아직 답 오지 않은걸까요?", "priority": "high", "category": "stock_inquiry", "summary": "2026050809423129\n저번주에 언제쯤 입고 되는지 문의 드렸고\n업체측 답 오면 댓글 주신다거 하셨는데 아직 답 오지 않은걸까요?", "customer_intent": "입고 상태 또는 입고예정일 확인이 필요한 문의입니다.", "check_items": "[\"Check order number\", \"Check shop/customer name\", \"Check product name, color, size\", \"Check current order status\", \"Check stock/delivery status\"]", "suggested_reply": "고객님, 입고문의 확인했습니다. 현재 입고상태와 예정일 확인 후 안내드리겠습니다.", "need_human_confirm": "1", "status": "new", "created_at": "2026-06-09 09:35:33", "updated_at": "2026-06-09 09:35:33", "memo": "", "order_no": "2026050809423129" }, { "id": "26", "source_type": "kakao", "raw_text": "저번주에 언제쯤 입고 되는지 문의 드렸고\n업체측 답 오면 댓글 주신다거 하셨는데 아직 답 오지 않은걸까요?", "priority": "high", "category": "stock_inquiry", "summary": "저번주에 언제쯤 입고 되는지 문의 드렸고\n업체측 답 오면 댓글 주신다거 하셨는데 아직 답 오지 않은걸까요?", "customer_intent": "입고 상태 또는 입고예정일 확인이 필요한 문의입니다.", "check_items": "[\"Check order number\", \"Check shop/customer name\", \"Check product name, color, size\", \"Check current order status\", \"Check stock/delivery status\"]", "suggested_reply": "고객님, 입고문의 확인했습니다. 현재 입고상태와 예정일 확인 후 안내드리겠습니다.", "need_human_confirm": "1", "status": "new", "created_at": "2026-06-09 09:35:17", "updated_at": "2026-06-09 09:35:17", "memo": "", "order_no": "" } ] ``` ### 4.4. `ai_wh_kakao_tasks` - 한글명: 중도매 CS톡 업무카드 - 용도: 중도매 카톡에서 추출된 업무카드와 처리 상태를 저장하는 테이블입니다. - 출처: 중도매 CS톡 / 중도매 CS톡2 - 사용 화면: 향후 중도매360, 카톡 정리 데이터 - 정책: 기존 /cs 화면과 새 /aics 화면을 섞지 않고 참고용으로 봅니다. - rows: `71` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `source_type` | `TEXT` | 0 | 1 | `'kakao_wholesale'` | | `wholesaler_name` | `TEXT` | 0 | 1 | `''` | | `raw_text` | `TEXT` | 0 | 1 | `''` | | `order_no` | `TEXT` | 0 | 1 | `''` | | `task_type` | `TEXT` | 0 | 1 | `'etc'` | | `priority` | `TEXT` | 0 | 1 | `'normal'` | | `task_status` | `TEXT` | 0 | 1 | `'new'` | | `title` | `TEXT` | 0 | 1 | `''` | | `request_summary` | `TEXT` | 0 | 1 | `''` | | `latest_reply` | `TEXT` | 0 | 1 | `''` | | `product_text` | `TEXT` | 0 | 1 | `''` | | `next_check_text` | `TEXT` | 0 | 1 | `''` | | `source_date` | `TEXT` | 0 | 1 | `''` | | `source_time` | `TEXT` | 0 | 1 | `''` | | `assignee` | `TEXT` | 0 | 1 | `''` | | `memo` | `TEXT` | 0 | 1 | `''` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "100", "source_type": "kakao_wholesale", "wholesaler_name": "꿈의나라", "raw_text": "요거 나갔는데 언제 나갔는지 찾아보구 톡 드릴게용", "order_no": "", "task_type": "stock_schedule", "priority": "normal", "task_status": "confirm_needed", "title": "[입고시기] 주문번호 미확인", "request_summary": "요거 나갔는데 언제 나갔는지 찾아보구 톡 드릴게용", "latest_reply": "", "product_text": "", "next_check_text": "오늘 확인", "source_date": "", "source_time": "01:05", "assignee": "", "memo": "", "created_at": "2026-06-18 11:43:32", "updated_at": "2026-06-18 11:43:32" }, { "id": "99", "source_type": "kakao_wholesale", "wholesaler_name": "꿈의나라", "raw_text": "요거 품절이라서 차감으로 했는데", "order_no": "", "task_type": "soldout_adjust", "priority": "urgent", "task_status": "confirm_needed", "title": "[품절/차감] 주문번호 미확인", "request_summary": "요거 품절이라서 차감으로 했는데", "latest_reply": "", "product_text": "", "next_check_text": "오늘 확인", "source_date": "", "source_time": "01:04", "assignee": "", "memo": "", "created_at": "2026-06-18 11:43:32", "updated_at": "2026-06-18 11:43:32" }, { "id": "98", "source_type": "kakao_wholesale", "wholesaler_name": "꿈의나라", "raw_text": "2026050601453432\n바이미미 러너캡 블루 free\n미입고건인데 아직도 입고가 안되고 있어 확인 부탁드립니다.\n2026년 6월 18일 목요일", "order_no": "2026050601453432", "task_type": "update_error", "priority": "urgent", "task_status": "confirm_needed", "title": "[업데이트오류/누락] 2026050601453432", "request_summary": "2026050601453432\n바이미미 러너캡 블루 free\n미입고건인데 아직도 입고가 안되고 있어 확인 부탁드립니다.\n2026년 6월 18일 목요일", "latest_reply": "", "product_text": "바이미미 러너캡 블루 free", "next_check_text": "오늘 확인", "source_date": "", "source_time": "15:39", "assignee": "", "memo": "", "created_at": "2026-06-18 11:43:32", "updated_at": "2026-06-18 11:43:32" } ] ``` ### 4.5. `aics_resource_files` - 한글명: AICS 자료관리 첨부파일 - 용도: 자료관리 게시글에 첨부된 파일의 원본명, 저장명, MIME, 크기, SHA256 등 메타정보를 저장합니다. - 출처: AICS /aics/resources 파일 첨부 - 사용 화면: /aics/resources - 정책: 실제 파일은 /opt/kvcs/data/aics_resources/files 에 보관하고 DB에는 메타정보만 저장합니다. 삭제는 soft delete 방식입니다. - rows: `12` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `post_id` | `INTEGER` | 0 | 1 | `None` | | `original_name` | `TEXT` | 0 | 1 | `''` | | `stored_name` | `TEXT` | 0 | 1 | `''` | | `mime_type` | `TEXT` | 0 | 1 | `''` | | `size_bytes` | `INTEGER` | 0 | 1 | `0` | | `sha256` | `TEXT` | 0 | 1 | `''` | | `is_deleted` | `INTEGER` | 0 | 1 | `0` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `deleted_at` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "17", "post_id": "18", "original_name": "sa.jpg", "stored_name": "46cc04b963144fea9c777af2c26853c1.jpg", "mime_type": "image/jpeg", "size_bytes": "2110503", "sha256": "49ab98746429ae11a7eb6719ceb89fd73cc0f1a877dd73dcbe305d96f13ba4c2", "is_deleted": "0", "created_at": "2026-10-12 15:39:43", "deleted_at": "" }, { "id": "16", "post_id": "17", "original_name": "as.JPG", "stored_name": "dbee90b131944e4aba21b70d238da65c.jpg", "mime_type": "image/jpeg", "size_bytes": "123041", "sha256": "36a83df3d598e5d5511ecde6b5b62305e8b2529e4418f8aaa8614223ad441021", "is_deleted": "0", "created_at": "2026-10-06 23:32:21", "deleted_at": "" }, { "id": "15", "post_id": "16", "original_name": "daedaeri_find_sheet.pdf", "stored_name": "adaaad0a093a402b8ac1617f8ab22c88.pdf", "mime_type": "application/pdf", "size_bytes": "99768", "sha256": "3eaf1bbdb08f116a721b52d5f928476aa1f5a1d923068ec62b075783bf705385", "is_deleted": "0", "created_at": "2026-09-29 16:30:11", "deleted_at": "" } ] ``` ### 4.6. `aics_resource_posts` - 한글명: AICS 자료관리 게시글 - 용도: AICS 자료관리에서 작성한 일반 업무 메모와 게시글을 저장하는 테이블입니다. - 출처: AICS /aics/resources 직접 작성 - 사용 화면: /aics/resources - 정책: 키빌 본서버 원본 데이터와 완전히 분리된 AICS 내부 업무자료입니다. 삭제는 is_deleted 기반 soft delete를 사용합니다. - rows: `13` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `title` | `TEXT` | 0 | 1 | `''` | | `content` | `TEXT` | 0 | 1 | `''` | | `writer` | `TEXT` | 0 | 1 | `''` | | `is_deleted` | `INTEGER` | 0 | 1 | `0` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | | `deleted_at` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "18", "title": "asefd", "content": "asdf", "writer": "관리", "is_deleted": "0", "created_at": "2026-10-12 15:39:43", "updated_at": "2026-10-12 15:39:43", "deleted_at": "" }, { "id": "17", "title": "asdf", "content": "", "writer": "ㅁas", "is_deleted": "0", "created_at": "2026-10-06 23:32:21", "updated_at": "2026-10-06 23:32:21", "deleted_at": "" }, { "id": "16", "title": "sdf", "content": "asdf", "writer": "관리", "is_deleted": "0", "created_at": "2026-09-29 16:30:11", "updated_at": "2026-09-29 16:30:11", "deleted_at": "" } ] ``` ### 4.7. `import_products` - 한글명: import_products - 용도: - 출처: - 사용 화면: - 정책: - rows: `11` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `name` | `TEXT` | 0 | 1 | `''` | | `category` | `TEXT` | 0 | 1 | `''` | | `price` | `TEXT` | 0 | 1 | `''` | | `cost` | `TEXT` | 0 | 1 | `''` | | `source_url` | `TEXT` | 0 | 1 | `''` | | `image_url` | `TEXT` | 0 | 1 | `''` | | `colors` | `TEXT` | 0 | 1 | `''` | | `sizes` | `TEXT` | 0 | 1 | `''` | | `season` | `TEXT` | 0 | 1 | `''` | | `status` | `TEXT` | 0 | 1 | `'크롤링됨'` | | `memo` | `TEXT` | 0 | 1 | `''` | | `created_at` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | | `images` | `TEXT` | 0 | 1 | `''` | | `name_original` | `TEXT` | 0 | 1 | `''` | | `supplier` | `TEXT` | 0 | 1 | `''` | | `colors_original` | `TEXT` | 0 | 1 | `''` | | `offer_id` | `TEXT` | 0 | 1 | `''` | | `margin` | `TEXT` | 0 | 1 | `''` | | `supplier_name_cn` | `TEXT` | 0 | 1 | `''` | | `supplier_url` | `TEXT` | 0 | 1 | `''` | | `supplier_id` | `TEXT` | 0 | 1 | `''` | | `supplier_logo` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "id": "31", "name": "畅果服饰男童裤子秋装新款儿童韩版格子裤中小童呢料冬季灯笼裤", "category": "", "price": "", "cost": "", "source_url": "https://detail.1688.com/offer/971465275967.html", "image_url": "https://cbu01.alicdn.com/img/ibank/O1CN01S746Yz1mLerPfkUAz_!!2215979964938-0-cib.jpg_.webp", "colors": "", "sizes": "", "season": "", "status": "크롤링됨", "memo": "[1688 V2 자동수집 · 옵션/가격/이미지 검수필요 · 키빌내보내기금지]", "created_at": "2026-10-13T09:47:47Z", "updated_at": "2026-10-13T09:47:47Z", "images": "https://cbu01.alicdn.com/img/ibank/O1CN01S746Yz1mLerPfkUAz_!!2215979964938-0-cib.jpg_.webp\nhttps://cbu01.alicdn.com/img/ibank/O1CN01Q55Smu1mLerOlOfZx_!!2215979964938-0-cib.jpg_.webp\nhttps://cbu01.alicdn.com/img/ibank/O1CN01pwgzMB1mLerOhXXBu_!!2215979964938-0-cib.jpg_.webp\nhttps://cbu01.alicdn.com/img/ibank/O1CN019De1T61mLerQGGtNa_!!2215979964938-0-cib.jpg_.webp\nhttps://cbu01.alicdn.com/img/ibank/O1CN01aSN1q21mLerOhY0I8_!!2215979964938-0-cib.jpg_.webp\nhttps://cbu01.alicdn.com/img/ibank/O1CN01WCKm...", "name_original": "畅果服饰男童裤子秋装新款儿童韩版格子裤中小童呢料冬季灯笼裤", "supplier": "", "colors_original": "", "offer_id": "971465275967", "margin": "", "supplier_name_cn": "", "supplier_url": "", "supplier_id": "", "supplier_logo": "" }, { "id": "30", "name": "Wheatfield 시즌 25 가을, 겨울 소녀 만화 고양이 불규칙한 밑단 탑 어린이 복합 유행 퍼프 슬리브 스웨터", "category": "상의", "price": "18,900", "cost": "", "source_url": "https://detail.1688.com/offer/970388856331.html", "image_url": "https://cbu01.alicdn.com/img/ibank/O1CN01TPHnDJ1ZxaekxTjv0_!!4266583261-0-cib.jpg", "colors": "레드", "sizes": "90, 100, 110, 120, 130, 140", "season": "", "status": "크롤링됨", "memo": "15일 내로 발송", "created_at": "2026-08-03 15:38:20", "updated_at": "2026-08-03 15:38:20", "images": "https://cbu01.alicdn.com/img/ibank/O1CN01TPHnDJ1ZxaekxTjv0_!!4266583261-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01qwm5CM1Zxaeege0wf_!!4266583261-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN019zvTSO1Zxaej1bSJe_!!4266583261-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01XsyXB61Zxaeegcjww_!!4266583261-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01QRdcEb1Zxaeldndhr_!!4266583261-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN012aSwiv1ZxaekXjY6t_!!4266583261-0-cib.jpg\nhttps://...", "name_original": "麦田季25秋冬女童卡通猫不规则下摆上衣儿童复合时髦泡泡袖卫衣", "supplier": "Huzhou Yimai 브랜드 관리 유한 회사", "colors_original": "枣红色", "offer_id": "970388856331", "margin": "7,088원", "supplier_name_cn": "湖州一麦品牌管理有限公司", "supplier_url": "https://shop193956ni98489.1688.com", "supplier_id": "193956ni98489", "supplier_logo": "" }, { "id": "29", "name": "2026 아동 의류 겨울 의류 아동 한국 빵 재킷 후드 면화 의류 소녀 겨울 소년 재킷 면화 의류 6733", "category": "아우터", "price": "50,300", "cost": "", "source_url": "https://detail.1688.com/offer/987828213354.html", "image_url": "https://cbu01.alicdn.com/img/ibank/O1CN01GscA5x1c5x8FBlfAQ_!!3843683550-0-cib.jpg", "colors": "네이비, 레드", "sizes": "80, 90, 100, 110, 120, 130", "season": "", "status": "크롤링됨", "memo": "2개 주문/15일내로발송", "created_at": "2026-07-30 17:08:30", "updated_at": "2026-07-30 17:15:03", "images": "https://cbu01.alicdn.com/img/ibank/O1CN01kZkOUK1c5x8EVqFaR_!!3843683550-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01bq6s4A1c5x8DFTJZd_!!3843683550-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01uSrHh51c5x8FNq57R_!!3843683550-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01rNFx6f1c5x8FBnTWD_!!3843683550-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN01qs7EHV1c5x8FKdSBU_!!3843683550-0-cib.jpg\nhttps://cbu01.alicdn.com/img/ibank/O1CN012229ww1c5x8EoHa0Z_!!3843683550-0-cib.jpg\nhttps://...", "name_original": "2026童装冬装儿童韩版面包服连帽棉衣女童冬款男童外套棉服6733", "supplier": "Huzhou Shenjia 브랜드 관리 유한 회사", "colors_original": "藏青色,红色", "offer_id": "987828213354", "margin": "18,913원", "supplier_name_cn": "湖州沈家品牌管理有限公司", "supplier_url": "https://shop38s4993346534.1688.com", "supplier_id": "38s4993346534", "supplier_logo": "" } ] ``` ### 4.8. `import_suppliers` - 한글명: import_suppliers - 용도: - 출처: - 사용 화면: - 정책: - rows: `5` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `supplier_id` | `TEXT` | 1 | 0 | `None` | | `alias` | `TEXT` | 0 | 1 | `''` | | `memo` | `TEXT` | 0 | 1 | `''` | | `name` | `TEXT` | 0 | 1 | `''` | | `name_cn` | `TEXT` | 0 | 1 | `''` | | `url` | `TEXT` | 0 | 1 | `''` | | `logo` | `TEXT` | 0 | 1 | `''` | | `updated_at` | `TEXT` | 0 | 1 | `''` | #### 샘플 데이터 ```json [ { "supplier_id": "193956ni98489", "alias": "", "memo": "", "name": "Huzhou Yimai 브랜드 관리 유한 회사", "name_cn": "湖州一麦品牌管理有限公司", "url": "https://shop193956ni98489.1688.com", "logo": "", "updated_at": "2026-08-03 15:38:20" }, { "supplier_id": "6806h21599n23", "alias": "", "memo": "", "name": "Wuxing Zhili Qianda 의류 공장은 고객 서비스 제품에 중점을 둡니다.", "name_cn": "吴兴织里千田衣制衣厂关注客服商品", "url": "https://shop6806h21599n23.1688.com", "logo": "", "updated_at": "2026-07-28 15:34:05" }, { "supplier_id": "38s4993346534", "alias": "", "memo": "", "name": "Huzhou Shenjia 브랜드 관리 유한 회사", "name_cn": "湖州沈家品牌管理有限公司", "url": "https://shop38s4993346534.1688.com", "logo": "", "updated_at": "2026-07-30 17:08:30" } ] ``` ### 4.9. `kakao_attachments` - 한글명: kakao_attachments - 용도: - 출처: - 사용 화면: - 정책: - rows: `5` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `partner_name` | `TEXT` | 0 | 0 | `None` | | `session_id` | `INTEGER` | 0 | 0 | `None` | | `original_name` | `TEXT` | 0 | 0 | `None` | | `stored_name` | `TEXT` | 0 | 1 | `None` | | `file_path` | `TEXT` | 0 | 1 | `None` | | `file_url` | `TEXT` | 0 | 1 | `None` | | `mime_type` | `TEXT` | 0 | 0 | `None` | | `file_size` | `INTEGER` | 0 | 1 | `0` | | `file_hash` | `TEXT` | 0 | 0 | `None` | | `source_type` | `TEXT` | 0 | 1 | `'upload'` | | `status` | `TEXT` | 0 | 1 | `'active'` | | `created_by` | `TEXT` | 0 | 0 | `None` | | `created_at` | `TEXT` | 0 | 1 | `datetime('now','localtime')` | | `deleted_at` | `TEXT` | 0 | 0 | `None` | | `deleted_by` | `TEXT` | 0 | 0 | `None` | #### 샘플 데이터 ```json [ { "id": "32", "partner_name": "도로시", "session_id": null, "original_name": "팝업제거_수정.PNG", "stored_name": "kakao_20260819_164757_348190.png", "file_path": "uploads/kakao/20260819/kakao_20260819_164757_348190.png", "file_url": "/uploads/kakao/20260819/kakao_20260819_164757_348190.png", "mime_type": "image/png", "file_size": "291104", "file_hash": "67e7cfdb0e95f311025bea6b74a4224c1f2535c7395dfdf8677c281540c11af7", "source_type": "upload", "status": "deleted", "created_by": "dev", "created_at": "2026-08-19 16:47:57", "deleted_at": "2026-08-19 16:48:02", "deleted_by": "dev" }, { "id": "30", "partner_name": "도로시", "session_id": "13", "original_name": "image.png", "stored_name": "kakao_20260623_040122_811383.png", "file_path": "uploads/kakao/20260623/kakao_20260623_040122_811383.png", "file_url": "/uploads/kakao/20260623/kakao_20260623_040122_811383.png", "mime_type": "image/png", "file_size": "14828", "file_hash": "82dffb547f404794775ee8f385092aa7ec046c6ec9e6dedc7095126fb586413e", "source_type": "upload", "status": "active", "created_by": "dev", "created_at": "2026-06-23 04:01:22", "deleted_at": null, "deleted_by": null }, { "id": "29", "partner_name": "도로시", "session_id": "13", "original_name": "image.png", "stored_name": "kakao_20260623_040119_715372.png", "file_path": "uploads/kakao/20260623/kakao_20260623_040119_715372.png", "file_url": "/uploads/kakao/20260623/kakao_20260623_040119_715372.png", "mime_type": "image/png", "file_size": "14197", "file_hash": "b56a74693500a8dd86b4d5ad702e411338f25411c965a2016c4e7609be602b64", "source_type": "upload", "status": "active", "created_by": "dev", "created_at": "2026-06-23 04:01:19", "deleted_at": null, "deleted_by": null } ] ``` ### 4.10. `kakao_photo_item_links` - 한글명: kakao_photo_item_links - 용도: - 출처: - 사용 화면: - 정책: - rows: `2` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `session_id` | `INTEGER` | 0 | 1 | `None` | | `match_id` | `INTEGER` | 0 | 0 | `None` | | `photo_id` | `INTEGER` | 0 | 0 | `None` | | `message_index` | `INTEGER` | 0 | 0 | `None` | | `source_text` | `TEXT` | 0 | 0 | `None` | | `product_name` | `TEXT` | 0 | 0 | `None` | | `color` | `TEXT` | 0 | 0 | `None` | | `size` | `TEXT` | 0 | 0 | `None` | | `qty` | `INTEGER` | 0 | 0 | `None` | | `order_no` | `TEXT` | 0 | 0 | `None` | | `confidence` | `REAL` | 0 | 0 | `0` | | `link_status` | `TEXT` | 0 | 0 | `'candidate'` | | `created_by` | `TEXT` | 0 | 0 | `''` | | `created_at` | `TEXT` | 0 | 1 | `None` | | `updated_at` | `TEXT` | 0 | 1 | `None` | | `brand` | `TEXT` | 0 | 0 | `None` | | `inquiry_text` | `TEXT` | 0 | 0 | `None` | #### 샘플 데이터 ```json [ { "id": "2", "session_id": "13", "match_id": "7", "photo_id": "30", "message_index": "9", "source_text": "2026052222320303\n데일리베베/코지단가라티/소라/S/1\n교환 상품 전달 드렸었는데, 저희한테 입고 된 상품이 없습니다. 확인 부탁드립니다.\n사장님 요거 6월17일날\n없어용 카톡내용두 없구용", "product_name": "코지단가라티", "color": "소라", "size": "S", "qty": "1", "order_no": "2026052222320303", "confidence": "0.98", "link_status": "candidate", "created_by": "system", "created_at": "2026-06-23 04:13:53", "updated_at": "2026-06-23 04:13:53", "brand": "데일리베베", "inquiry_text": "교환 상품 전달 드렸었는데, 저희한테 입고 된 상품이 없습니다. 확인 부탁드립니다.\n사장님 요거 6월17일날\n없어용 카톡내용두 없구용" }, { "id": "1", "session_id": "13", "match_id": "6", "photo_id": "29", "message_index": "1", "source_text": "2026050418155028\n보니토/카프리7부팬츠/검정/L/1\n박음질 불량 교환 요청\n입고일 : 6/15\n6/17 전달로 확인됩니다.", "product_name": "카프리7부팬츠", "color": "검정", "size": "L", "qty": "1", "order_no": "2026050418155028", "confidence": "0.98", "link_status": "candidate", "created_by": "system", "created_at": "2026-06-23 04:13:53", "updated_at": "2026-06-23 04:13:53", "brand": "보니토", "inquiry_text": "박음질 불량 교환 요청" } ] ``` ### 4.11. `kakao_photo_matches` - 한글명: kakao_photo_matches - 용도: - 출처: - 사용 화면: - 정책: - rows: `2` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `session_id` | `INTEGER` | 0 | 1 | `None` | | `photo_id` | `INTEGER` | 0 | 0 | `None` | | `message_index` | `INTEGER` | 0 | 0 | `None` | | `message_line` | `TEXT` | 0 | 0 | `None` | | `sender` | `TEXT` | 0 | 0 | `None` | | `message_time` | `TEXT` | 0 | 0 | `None` | | `message_text` | `TEXT` | 0 | 0 | `None` | | `sort_order` | `INTEGER` | 0 | 0 | `0` | | `match_status` | `TEXT` | 0 | 0 | `'confirmed'` | | `created_by` | `TEXT` | 0 | 0 | `''` | | `created_at` | `TEXT` | 0 | 1 | `None` | | `updated_at` | `TEXT` | 0 | 1 | `None` | #### 샘플 데이터 ```json [ { "id": "7", "session_id": "13", "photo_id": "30", "message_index": "9", "message_line": "사진", "sender": "도로시사장님", "message_time": "오후 6:10", "message_text": "사진", "sort_order": "2", "match_status": "confirmed", "created_by": "system", "created_at": "2026-06-23 04:01:53", "updated_at": "2026-06-23 04:01:53" }, { "id": "6", "session_id": "13", "photo_id": "29", "message_index": "1", "message_line": "사진", "sender": "도로시사장님", "message_time": "오전 12:45", "message_text": "사진", "sort_order": "1", "match_status": "confirmed", "created_by": "system", "created_at": "2026-06-23 04:01:53", "updated_at": "2026-06-23 04:01:53" } ] ``` ### 4.12. `kakao_raw_sessions` - 한글명: kakao_raw_sessions - 용도: - 출처: - 사용 화면: - 정책: - rows: `1` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `id` | `INTEGER` | 1 | 0 | `None` | | `source_type` | `TEXT` | 0 | 1 | `'kakao_wholesale'` | | `partner_name` | `TEXT` | 0 | 0 | `None` | | `raw_text` | `TEXT` | 0 | 1 | `None` | | `raw_length` | `INTEGER` | 0 | 1 | `0` | | `message_count` | `INTEGER` | 0 | 1 | `0` | | `memo` | `TEXT` | 0 | 0 | `None` | | `status` | `TEXT` | 0 | 1 | `'raw_saved'` | | `created_by` | `TEXT` | 0 | 0 | `None` | | `created_at` | `TEXT` | 0 | 1 | `datetime('now','localtime')` | | `updated_at` | `TEXT` | 0 | 0 | `None` | | `raw_hash` | `TEXT` | 0 | 0 | `None` | | `deleted_at` | `TEXT` | 0 | 0 | `None` | | `deleted_by` | `TEXT` | 0 | 0 | `None` | | `delete_reason` | `TEXT` | 0 | 0 | `None` | #### 샘플 데이터 ```json [ { "id": "13", "source_type": "kakao_wholesale", "partner_name": "도로시", "raw_text": "[도로시사장님] [오전 12:45] 사진\n[키즈빌리지] [오후 4:01] 2026050418155028\n보니토/카프리7부팬츠/검정/L/1\n박음질 불량 교환 요청\n\n입고일 : 6/15 \n[키즈빌리지] [오후 4:03] 6/17 전달로 확인됩니다.\n[키즈빌리지] [오후 4:05] 2026052712001788\n하이커/카프리스트라이프반바지/오렌지/S/1\n\n불량 교환건 품절로 안내해주셔\n정산금 차감 후 입금드리겠습니다.\n[키즈빌리지] [오후 4:24] 2026061318281251\n데일리베베/기획)냉감인견세트/강아지들/XS/1\n오염/박음질 불량 교환 요청\n\n입고일 : 6/15\n[키즈빌리지] [오후 4:30] 2026061016060762\n린도/별사탕티/노랑/S/1\n단추 떨어짐 불량 교환 요청\n\n입고일 : 6/11\n[도로시사장님] [오후 6:09] 2026052712001788\n하이커/카프리스트라이프반바지/오렌지/S/1\n\n불량 교환건 품절로 안내해주셔\n정산금 차감 후 입금드리겠습니다.\n\n매일...", "raw_length": "753", "message_count": "12", "memo": "", "status": "deleted", "created_by": "dev", "created_at": "2026-06-23 04:01:35", "updated_at": null, "raw_hash": "c53e61c5502aa3f781a1401f3c4c54cce90a029651697cfb793b3892d80fd45c", "deleted_at": "2026-06-23 17:14:53", "deleted_by": "dev", "delete_reason": "manual_date" } ] ``` ### 4.13. `kv1688_v2_ingests` - 한글명: kv1688_v2_ingests - 용도: - 출처: - 사용 화면: - 정책: - rows: `1` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `offer_id` | `TEXT` | 1 | 0 | `None` | | `product_id` | `INTEGER` | 0 | 1 | `None` | | `payload_json` | `TEXT` | 0 | 1 | `None` | | `captured_at` | `TEXT` | 0 | 1 | `None` | | `created_at` | `TEXT` | 0 | 1 | `None` | #### 샘플 데이터 ```json [ { "offer_id": "971465275967", "product_id": "31", "payload_json": "{\"offer_id\":\"971465275967\",\"source_url\":\"https://detail.1688.com/offer/971465275967.html\",\"product\":{\"name\":\"畅果服饰男童裤子秋装新款儿童韩版格子裤中小童呢料冬季灯笼裤\",\"name_original\":\"畅果服饰男童裤子秋装新款儿童韩版格子裤中小童呢料冬季灯笼裤\",\"category\":\"\",\"supplier\":\"\",\"supplier_name_cn\":\"\",\"supplier_url\":\"\",\"supplier_id\":\"\",\"images\":[\"https://cbu01.alicdn.com/img/ibank/O1CN01S746Yz1mLerPfkUAz_!!2215979964938-0-cib.jpg_.webp\",\"https://cbu01.alicdn.com/img/ibank/O1CN01Q55Smu1mLerOlOfZx_!!2215979964938-0-cib.jpg_.webp\",\"https://cbu01.alicdn.com/img/i...", "captured_at": "2026-10-13T09:45:26.447Z", "created_at": "2026-10-13T09:47:47Z" } ] ``` ### 4.14. `sqlite_sequence` - 한글명: SQLite 자동증가 관리 테이블 - 용도: SQLite가 AUTOINCREMENT 값을 관리하는 내부 테이블입니다. - 출처: SQLite 내부 - 사용 화면: 관리 참고용 - 정책: 직접 수정 금지. - rows: `11` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `name` | `` | 0 | 0 | `None` | | `seq` | `` | 0 | 0 | `None` | #### 샘플 데이터 ```json [ { "name": "aics_resource_files", "seq": "17" }, { "name": "aics_resource_posts", "seq": "18" }, { "name": "import_products", "seq": "31" } ] ``` ## 5. 다음 설계 방향 1. API 카탈로그(`/aics/apis`)의 API 항목과 DB 테이블을 연결한다. 2. 원본 데이터 테이블과 업무 처리 상태 테이블을 분리한다. 3. 게시판/카톡/주문/소매점/중도매/물류 데이터를 각각 미러링 테이블로 확장한다. 4. 소매점360, 중도매360, 업무 카테고리 화면에서 이 DB 구조를 기준으로 데이터를 조회한다. 5. DB 구조 변경 시 이 문서를 다시 자동 생성한다.