# DB_SCHEMA 작성일: 2026-06-22 23:18:10 ## 1. DB 기본 정보 - DB 파일: `/opt/kvcs/data/ai_cs.db` - DB 크기: `58.38 MB` - DB 수정일: `2026-06-22 23:00:49` - 테이블 수: `5` - 총 row 수: `74265` ## 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` | 게시판 원본 데이터 | 49915 | 향후 /aics/board, 업무 카테고리, 게시판 정리 데이터 | 원본성 데이터라 직접 수정 금지. 필요한 경우 별도 처리상태 테이블을 연결합니다. | | `ai_cs_items` | 소매 CS 분석 이력 | 28 | 향후 소매점360, 카톡 정리 데이터 | 기존 데이터 보존. 새 AICS에서는 별도 구조로 재설계 예정입니다. | | `ai_wh_kakao_tasks` | 중도매 CS톡 업무카드 | 71 | 향후 중도매360, 카톡 정리 데이터 | 기존 /cs 화면과 새 /aics 화면을 섞지 않고 참고용으로 봅니다. | | `sqlite_sequence` | SQLite 자동증가 관리 테이블 | 4 | 관리 참고용 | 직접 수정 금지. | ## 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: `49915` #### 컬럼 | 컬럼 | 타입 | 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": "98156", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "51448", "parent_id": "51448", "item_type": "question", "kv_category": "일반문의", "subject": "문의합니다.", "content_html": "비다이어리 스파이더맨 슈영레쉬가스 사이즈표 알수있을까요", "content_text": "비다이어리 스파이더맨 슈영레쉬가스 사이즈표 알수있을까요", "writer_id": "gahee78", "writer_name": "황브로", "writer_name_masked": "황브로", "is_secret": "1", "source_created_at": "2026-06-22 22:46:15", "source_updated_at": "2026-06-22 22:46:15", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=51448", "content_hash": "5ce88746b6b7a5c37b3c0a685f5bc26a681f6189fe5b70aec8e86e97d2d3867c", "created_at": "2026-06-22 23:00:12", "updated_at": "2026-06-22 23:00:12", "display_no": "24863", "display_no_category": "2112", "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": "{\"success\": true, \"gpt_used\": false, \"engine\": \"rule_based_v0.1\", \"input\": {\"writer_name\": \"황브로\", \"category\": \"일반문의\", \"subject\": \"문의합니다.\", \"text\": \"비다이어리 스파이더맨 슈영레쉬가스 사이즈표 알수있을까요\"}, \"detected\": {\"intent\": \"일반문의\", \"product_request\": {\"brand\": \"\", \"product_name\": \"\", \"color\": \"\", \"size\": \"\", \"raw\": \"\"}}, \"kv_lookup_used\": false, \"kv_lookup_limit\": 80, \"member\": {\"mb_id\": \"gahee78\", \"mb_name_masked\": \"이*희\", \"mb_nick\": \"황브로\", \"mb_company\": \"황브로\", \"mb_hp_masked\": \"010-****-5665\", \"mb_tel_masked\": \"01...", "data_rule_analyzed_at": "2026-06-22 23:00:13", "data_rule_hash": "5ce88746b6b7a5c37b3c0a685f5bc26a681f6189fe5b70aec8e86e97d2d3867c", "data_rule_status": "done", "data_rule_error": "" }, { "id": "98155", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "51447", "parent_id": "51447", "item_type": "question", "kv_category": "주문", "subject": "문의합니다.", "content_html": "제제우노시티,\r\n르메리오버롤 : 퍼플\r\n코지점프수트 : 네이비\r\n코지점프수트(맘) : 네이비\r\n\r\n품절로 표시되어있어서, 혹시나 !!\r\n해당 제품의 컬러 주문 가능한 사이즈 알려주시면 감사해요\r\n가능한 사이즈 나오면 주문하려구요!\r\n\r\n앞글 남겼는데 혹시나 댓글 누락일까봐 다시 씁니다 :)", "content_text": "제제우노시티,\n르메리오버롤 : 퍼플\n코지점프수트 : 네이비\n코지점프수트(맘) : 네이비\n\n품절로 표시되어있어서, 혹시나 !!\n해당 제품의 컬러 주문 가능한 사이즈 알려주시면 감사해요\n가능한 사이즈 나오면 주문하려구요!\n\n앞글 남겼는데 혹시나 댓글 누락일까봐 다시 씁니다 :)", "writer_id": "sdt94b", "writer_name": "쁘띠에이(PETITE.A)", "writer_name_masked": "쁘띠에이(PETITE.A)", "is_secret": "1", "source_created_at": "2026-06-22 21:41:56", "source_updated_at": "2026-06-22 21:41:56", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=51447", "content_hash": "326d5a3325f53fd7f24fcbf11dee5b8d4e85820a66c4866f0a866f4f8d3bf141", "created_at": "2026-06-22 22:00:11", "updated_at": "2026-06-22 23:00:12", "display_no": "24862", "display_no_category": "2032", "source_deleted": "0", "source_deleted_at": "", "source_status": "active", "linked_orders_json": "[{\"order_no\": \"2026061909121627\", \"items\": [{\"ct_id\": 724875, \"it_id\": \"11C1777243999\", \"brand\": \"제제우노시티\", \"product_name\": \"르메리오버롤\", \"option\": \"퍼플\\u001eS\", \"color\": \"퍼플\", \"size\": \"S\", \"qty\": 1, \"ct_status\": \"품절\", \"u_wh_step\": \"8\", \"request_size\": \"\", \"request_count\": \"\"}], \"item_count\": 1}]", "linked_order_numbers": "2026061909121627", "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\": \"쁘띠에이(PETITE.A)\", \"category\": \"주문\", \"subject\": \"문의합니다.\", \"text\": \"제제우노시티,\\n르메리오버롤 : 퍼플\\n코지점프수트 : 네이비\\n코지점프수트(맘) : 네이비\\n\\n품절로 표시되어있어서, 혹시나 !!\\n해당 제품의 컬러 주문 가능한 사이즈 알려주시면 감사해요\\n가능한 사이즈 나오면 주문하려구요!\\n\\n앞글 남겼는데 혹시나 댓글 누락일까봐 다시 씁니다 :)\"}, \"detected\": {\"intent\": \"입고시기 재문의\", \"product_request\": {\"brand\": \"\", \"product_name\": \"\", \"color\": \"\", \"size\": \"\", \"raw\": \"\"}}, \"kv_lookup_used\": true, \"kv_lookup_limit\": 80, \"mem...", "data_rule_analyzed_at": "2026-06-22 22:00:14", "data_rule_hash": "326d5a3325f53fd7f24fcbf11dee5b8d4e85820a66c4866f0a866f4f8d3bf141", "data_rule_status": "done", "data_rule_error": "" }, { "id": "98154", "source": "kidsvillage", "board": "qa", "source_table": "g5_write_qa", "post_id": "51446", "parent_id": "51446", "item_type": "question", "kv_category": "일반문의", "subject": "문의합니다.", "content_html": "안녕하세요 사장님!\r\n\r\n2026060515302064\r\n2026060413174707\r\n허진경님 주문 건,\r\n\r\n직배송지(광명)으로 변경 부탁드립니다.\r\n\r\n바쁘실텐데 번거롭게 요청드려 죄송해요.\r\n\r\n항상 감사합니다!", "content_text": "안녕하세요 사장님!\n\n2026060515302064\n2026060413174707\n허진경님 주문 건,\n\n직배송지(광명)으로 변경 부탁드립니다.\n\n바쁘실텐데 번거롭게 요청드려 죄송해요.\n\n항상 감사합니다!", "writer_id": "creativee", "writer_name": "재인", "writer_name_masked": "재인", "is_secret": "1", "source_created_at": "2026-06-22 20:28:35", "source_updated_at": "2026-06-22 20:28:35", "source_url": "https://kidsvillage.co.kr/bbs/board.php?bo_table=qa&wr_id=51446", "content_hash": "bfe8f2bce6576840564148b59dcb6e9a4a170c028f3d91465ce53e5acc08ebce", "created_at": "2026-06-22 20:30:11", "updated_at": "2026-06-22 23:00:12", "display_no": "24861", "display_no_category": "2111", "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": "{\"success\": true, \"gpt_used\": false, \"engine\": \"rule_based_v0.1\", \"input\": {\"writer_name\": \"재인\", \"category\": \"일반문의\", \"subject\": \"문의합니다.\", \"text\": \"안녕하세요 사장님!\\n\\n2026060515302064\\n2026060413174707\\n허진경님 주문 건,\\n\\n직배송지(광명)으로 변경 부탁드립니다.\\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\": \"creativee\", \"mb_name_masked\": \"전*인...", "data_rule_analyzed_at": "2026-06-22 20:30:12", "data_rule_hash": "bfe8f2bce6576840564148b59dcb6e9a4a170c028f3d91465ce53e5acc08ebce", "data_rule_status": "done", "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. `sqlite_sequence` - 한글명: SQLite 자동증가 관리 테이블 - 용도: SQLite가 AUTOINCREMENT 값을 관리하는 내부 테이블입니다. - 출처: SQLite 내부 - 사용 화면: 관리 참고용 - 정책: 직접 수정 금지. - rows: `4` #### 컬럼 | 컬럼 | 타입 | PK | NOT NULL | 기본값 | |---|---|---:|---:|---| | `name` | `` | 0 | 0 | `None` | | `seq` | `` | 0 | 0 | `None` | #### 샘플 데이터 ```json [ { "name": "ai_wh_kakao_tasks", "seq": "100" }, { "name": "ai_board_analysis", "seq": "48297" }, { "name": "ai_board_items", "seq": "98156" } ] ``` ## 5. 다음 설계 방향 1. API 카탈로그(`/aics/apis`)의 API 항목과 DB 테이블을 연결한다. 2. 원본 데이터 테이블과 업무 처리 상태 테이블을 분리한다. 3. 게시판/카톡/주문/소매점/중도매/물류 데이터를 각각 미러링 테이블로 확장한다. 4. 소매점360, 중도매360, 업무 카테고리 화면에서 이 DB 구조를 기준으로 데이터를 조회한다. 5. DB 구조 변경 시 이 문서를 다시 자동 생성한다.