{
    "version": "CALL_ECOSYSTEM_REPORT_V1",
    "generated_at": "2026-09-18 18:19:28",
    "summary": {
        "pdo": "OK",
        "call_count": 9,
        "table_count": 18,
        "existing_table_count": 11,
        "missing_table_count": 7,
        "virtual_source_count": 3
    },
    "calls": [
        {
            "id": "data_source_map",
            "title": "데이터 출처 호출",
            "tool": "data_source_map",
            "intent_examples": [
                "일정은 어디 보고 답해?",
                "견적 저장은 어디에 저장돼?",
                "무슨 테이블 봐?"
            ],
            "status": "OK",
            "tables": [],
            "virtual_sources": [
                "DataSourceMapTool 내부 맵",
                "도구/테이블/권한 설명"
            ],
            "note": "질문이 실제 조회/저장이 아니라 출처를 묻는 경우"
        },
        {
            "id": "schedule_read",
            "title": "일정 호출",
            "tool": "schedule",
            "intent_examples": [
                "오늘 일정 보여줘",
                "5월 일정 조회",
                "일정은 어디 보고 답해?"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "schedule_events",
                    "exists": true,
                    "columns": [
                        "id",
                        "event_date",
                        "start_time",
                        "end_time",
                        "color",
                        "title",
                        "memo",
                        "project_id",
                        "done",
                        "created_at",
                        "updated_at",
                        "category",
                        "source_type",
                        "raw_text",
                        "amount",
                        "normalized_at"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "title",
                        "memo",
                        "raw_text"
                    ],
                    "row_count": 84,
                    "latest": "2026-09-18 18:13:00"
                },
                {
                    "table": "calendar_events",
                    "exists": true,
                    "columns": [
                        "id",
                        "user_name",
                        "user_id",
                        "title",
                        "start",
                        "ends_at",
                        "all_day",
                        "description",
                        "color",
                        "quotation_id"
                    ],
                    "date_col": "",
                    "text_cols": [
                        "title",
                        "description"
                    ],
                    "row_count": 9,
                    "latest": ""
                },
                {
                    "table": "events",
                    "exists": true,
                    "columns": [
                        "event_id",
                        "user_id",
                        "title",
                        "start_datetime",
                        "end_datetime",
                        "all_day",
                        "description",
                        "color",
                        "priority",
                        "status",
                        "created_at",
                        "updated_at"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "title",
                        "description"
                    ],
                    "row_count": 15,
                    "latest": "2025-08-12 00:40:06"
                }
            ],
            "virtual_sources": [
                "virtual_holidays"
            ],
            "note": "일정 조회/요약"
        },
        {
            "id": "history_read",
            "title": "히스토리 호출",
            "tool": "history_search",
            "intent_examples": [
                "어제 기록 보여줘",
                "최근 히스토리 찾아줘",
                "5월 1일 기록 조회"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "personal_memo_inbox",
                    "exists": true,
                    "columns": [
                        "id",
                        "tag",
                        "content",
                        "created_at",
                        "parent_id",
                        "work_date",
                        "customer_name",
                        "amount",
                        "status",
                        "meta_json"
                    ],
                    "date_col": "created_at",
                    "text_cols": [
                        "content",
                        "customer_name"
                    ],
                    "row_count": 63,
                    "latest": "2026-06-22 16:33:48"
                }
            ],
            "virtual_sources": [],
            "note": "저장된 생활기록/메모 조회"
        },
        {
            "id": "worklog_read",
            "title": "작업기록 호출",
            "tool": "worklog",
            "intent_examples": [
                "오늘 한 일 보여줘",
                "현장 작업 기록 조회",
                "차단기 교체 기록 찾아줘"
            ],
            "status": "PARTIAL",
            "tables": [
                {
                    "table": "work_logs",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                },
                {
                    "table": "worklog",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                },
                {
                    "table": "worksite_logs",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                }
            ],
            "virtual_sources": [],
            "note": "현장 작업 기록 조회"
        },
        {
            "id": "payment_read",
            "title": "입금/수금 호출",
            "tool": "payment",
            "intent_examples": [
                "오늘 입금 보여줘",
                "미수금 조회",
                "수금 기록 찾아줘"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "incomes",
                    "exists": true,
                    "columns": [
                        "id",
                        "category",
                        "amount",
                        "memo",
                        "income_date",
                        "quotation_id",
                        "work_id",
                        "customer_id",
                        "created_at",
                        "updated_at",
                        "project_id",
                        "payer_name"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "memo",
                        "payer_name"
                    ],
                    "row_count": 308,
                    "latest": "2026-09-18 14:53:40"
                },
                {
                    "table": "income",
                    "exists": true,
                    "columns": [
                        "id",
                        "category",
                        "amount",
                        "memo",
                        "received_at",
                        "created_at"
                    ],
                    "date_col": "created_at",
                    "text_cols": [
                        "memo"
                    ],
                    "row_count": 0,
                    "latest": ""
                }
            ],
            "virtual_sources": [],
            "note": "돈/입금/수금 조회"
        },
        {
            "id": "quotation_read",
            "title": "견적 호출",
            "tool": "quotation",
            "intent_examples": [
                "견적 리스트 보여줘",
                "김형국 견적 찾아줘",
                "최근 견적 조회"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "quotations",
                    "exists": true,
                    "columns": [
                        "id",
                        "type",
                        "project_name",
                        "project_address",
                        "customer_id",
                        "customer_name",
                        "client_name",
                        "manager_name",
                        "project_status",
                        "memo",
                        "quotation_code",
                        "quotation_date",
                        "start_date",
                        "completion_date",
                        "total_amount",
                        "withholding_amount",
                        "contract_amount",
                        "apply_vat",
                        "a4_items_html",
                        "plan_contract_amount",
                        "plan_progress_amount",
                        "plan_balance_amount",
                        "is_in_progress",
                        "status_stage",
                        "is_active",
                        "old_project_id",
                        "old_quotation_id",
                        "created_at",
                        "updated_at"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "project_name",
                        "customer_name",
                        "memo"
                    ],
                    "row_count": 104,
                    "latest": "2026-09-18 13:32:50"
                },
                {
                    "table": "quotation_items",
                    "exists": true,
                    "columns": [
                        "id",
                        "quotation_id",
                        "sort_order",
                        "product_id",
                        "item_description",
                        "specification",
                        "unit",
                        "quantity",
                        "unit_price",
                        "amount",
                        "vat_included"
                    ],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": 42,
                    "latest": ""
                }
            ],
            "virtual_sources": [],
            "note": "견적 조회/상세"
        },
        {
            "id": "customer_read",
            "title": "고객 호출",
            "tool": "customer",
            "intent_examples": [
                "고객 찾아줘",
                "특이사항 있는 고객 있어?",
                "김태윤 고객 정보"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "customers",
                    "exists": true,
                    "columns": [
                        "id",
                        "name",
                        "gender",
                        "customer_type",
                        "category",
                        "business_reg_no",
                        "phone",
                        "prev_phone",
                        "second_phone",
                        "email",
                        "address",
                        "notes",
                        "previous_phone",
                        "prev_orders",
                        "construction_memo",
                        "last_order_summary",
                        "last_construction_amount",
                        "total_construction_amount",
                        "is_active",
                        "created_at",
                        "updated_at",
                        "contact_person",
                        "contact_phone",
                        "customer_tier",
                        "tags",
                        "referred_by_customer_id",
                        "birthday",
                        "last_visit_date",
                        "next_contact_date",
                        "marital_status",
                        "family_details",
                        "preferred_contact",
                        "job_title",
                        "licenses",
                        "status",
                        "photo_path",
                        "follow_stage",
                        "company_name",
                        "representative_name",
                        "representative_phone",
                        "manager_name",
                        "manager_phone"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "name"
                    ],
                    "row_count": 146,
                    "latest": "2026-09-11 15:49:54"
                }
            ],
            "virtual_sources": [],
            "note": "고객 조회/특이사항"
        },
        {
            "id": "project_read",
            "title": "현장 호출",
            "tool": "project/customer/schedule",
            "intent_examples": [
                "현장 리스트 보여줘",
                "GPT 테스트 현장 상세",
                "프로젝트 상태"
            ],
            "status": "OK",
            "tables": [
                {
                    "table": "projects",
                    "exists": true,
                    "columns": [
                        "id",
                        "type",
                        "project_name",
                        "project_address",
                        "customer_id",
                        "customer_name",
                        "client_name",
                        "manager_name",
                        "project_status",
                        "memo",
                        "quotation_code",
                        "quotation_date",
                        "start_date",
                        "completion_date",
                        "total_amount",
                        "withholding_amount",
                        "contract_amount",
                        "apply_vat",
                        "a4_items_html",
                        "plan_contract_amount",
                        "plan_progress_amount",
                        "plan_balance_amount",
                        "is_in_progress",
                        "status_stage",
                        "is_active",
                        "old_project_id",
                        "old_quotation_id",
                        "created_at",
                        "updated_at"
                    ],
                    "date_col": "updated_at",
                    "text_cols": [
                        "project_name",
                        "customer_name",
                        "memo"
                    ],
                    "row_count": 56,
                    "latest": "2026-09-13 11:32:32"
                },
                {
                    "table": "calendar_projects",
                    "exists": true,
                    "columns": [
                        "id",
                        "cal",
                        "mt",
                        "title",
                        "start_date",
                        "end_date",
                        "status",
                        "description",
                        "steps",
                        "image",
                        "attachment",
                        "locked",
                        "created_at"
                    ],
                    "date_col": "created_at",
                    "text_cols": [
                        "title",
                        "description"
                    ],
                    "row_count": 74,
                    "latest": "2026-09-18 18:13:00"
                }
            ],
            "virtual_sources": [],
            "note": "현장/프로젝트/캘린더 프로젝트 조회"
        },
        {
            "id": "stock_read",
            "title": "재고/창고 호출",
            "tool": "stock/warehouse",
            "intent_examples": [
                "6인치 다운라이트 얼마야",
                "재고 있어?",
                "창고 승인대기 보여줘"
            ],
            "status": "PARTIAL",
            "tables": [
                {
                    "table": "products",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                },
                {
                    "table": "warehouse_products",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                },
                {
                    "table": "warehouse_pending",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                },
                {
                    "table": "warehouse_spaces",
                    "exists": false,
                    "columns": [],
                    "date_col": "",
                    "text_cols": [],
                    "row_count": null,
                    "latest": ""
                }
            ],
            "virtual_sources": [],
            "note": "상품/재고/창고 조회 후보"
        }
    ],
    "tables": [
        {
            "table": "schedule_events",
            "exists": true,
            "columns": [
                "id",
                "event_date",
                "start_time",
                "end_time",
                "color",
                "title",
                "memo",
                "project_id",
                "done",
                "created_at",
                "updated_at",
                "category",
                "source_type",
                "raw_text",
                "amount",
                "normalized_at"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "title",
                "memo",
                "raw_text"
            ],
            "row_count": 84,
            "latest": "2026-09-18 18:13:00"
        },
        {
            "table": "calendar_events",
            "exists": true,
            "columns": [
                "id",
                "user_name",
                "user_id",
                "title",
                "start",
                "ends_at",
                "all_day",
                "description",
                "color",
                "quotation_id"
            ],
            "date_col": "",
            "text_cols": [
                "title",
                "description"
            ],
            "row_count": 9,
            "latest": ""
        },
        {
            "table": "events",
            "exists": true,
            "columns": [
                "event_id",
                "user_id",
                "title",
                "start_datetime",
                "end_datetime",
                "all_day",
                "description",
                "color",
                "priority",
                "status",
                "created_at",
                "updated_at"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "title",
                "description"
            ],
            "row_count": 15,
            "latest": "2025-08-12 00:40:06"
        },
        {
            "table": "personal_memo_inbox",
            "exists": true,
            "columns": [
                "id",
                "tag",
                "content",
                "created_at",
                "parent_id",
                "work_date",
                "customer_name",
                "amount",
                "status",
                "meta_json"
            ],
            "date_col": "created_at",
            "text_cols": [
                "content",
                "customer_name"
            ],
            "row_count": 63,
            "latest": "2026-06-22 16:33:48"
        },
        {
            "table": "work_logs",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "worklog",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "worksite_logs",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "incomes",
            "exists": true,
            "columns": [
                "id",
                "category",
                "amount",
                "memo",
                "income_date",
                "quotation_id",
                "work_id",
                "customer_id",
                "created_at",
                "updated_at",
                "project_id",
                "payer_name"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "memo",
                "payer_name"
            ],
            "row_count": 308,
            "latest": "2026-09-18 14:53:40"
        },
        {
            "table": "income",
            "exists": true,
            "columns": [
                "id",
                "category",
                "amount",
                "memo",
                "received_at",
                "created_at"
            ],
            "date_col": "created_at",
            "text_cols": [
                "memo"
            ],
            "row_count": 0,
            "latest": ""
        },
        {
            "table": "quotations",
            "exists": true,
            "columns": [
                "id",
                "type",
                "project_name",
                "project_address",
                "customer_id",
                "customer_name",
                "client_name",
                "manager_name",
                "project_status",
                "memo",
                "quotation_code",
                "quotation_date",
                "start_date",
                "completion_date",
                "total_amount",
                "withholding_amount",
                "contract_amount",
                "apply_vat",
                "a4_items_html",
                "plan_contract_amount",
                "plan_progress_amount",
                "plan_balance_amount",
                "is_in_progress",
                "status_stage",
                "is_active",
                "old_project_id",
                "old_quotation_id",
                "created_at",
                "updated_at"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "project_name",
                "customer_name",
                "memo"
            ],
            "row_count": 104,
            "latest": "2026-09-18 13:32:50"
        },
        {
            "table": "quotation_items",
            "exists": true,
            "columns": [
                "id",
                "quotation_id",
                "sort_order",
                "product_id",
                "item_description",
                "specification",
                "unit",
                "quantity",
                "unit_price",
                "amount",
                "vat_included"
            ],
            "date_col": "",
            "text_cols": [],
            "row_count": 42,
            "latest": ""
        },
        {
            "table": "customers",
            "exists": true,
            "columns": [
                "id",
                "name",
                "gender",
                "customer_type",
                "category",
                "business_reg_no",
                "phone",
                "prev_phone",
                "second_phone",
                "email",
                "address",
                "notes",
                "previous_phone",
                "prev_orders",
                "construction_memo",
                "last_order_summary",
                "last_construction_amount",
                "total_construction_amount",
                "is_active",
                "created_at",
                "updated_at",
                "contact_person",
                "contact_phone",
                "customer_tier",
                "tags",
                "referred_by_customer_id",
                "birthday",
                "last_visit_date",
                "next_contact_date",
                "marital_status",
                "family_details",
                "preferred_contact",
                "job_title",
                "licenses",
                "status",
                "photo_path",
                "follow_stage",
                "company_name",
                "representative_name",
                "representative_phone",
                "manager_name",
                "manager_phone"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "name"
            ],
            "row_count": 146,
            "latest": "2026-09-11 15:49:54"
        },
        {
            "table": "projects",
            "exists": true,
            "columns": [
                "id",
                "type",
                "project_name",
                "project_address",
                "customer_id",
                "customer_name",
                "client_name",
                "manager_name",
                "project_status",
                "memo",
                "quotation_code",
                "quotation_date",
                "start_date",
                "completion_date",
                "total_amount",
                "withholding_amount",
                "contract_amount",
                "apply_vat",
                "a4_items_html",
                "plan_contract_amount",
                "plan_progress_amount",
                "plan_balance_amount",
                "is_in_progress",
                "status_stage",
                "is_active",
                "old_project_id",
                "old_quotation_id",
                "created_at",
                "updated_at"
            ],
            "date_col": "updated_at",
            "text_cols": [
                "project_name",
                "customer_name",
                "memo"
            ],
            "row_count": 56,
            "latest": "2026-09-13 11:32:32"
        },
        {
            "table": "calendar_projects",
            "exists": true,
            "columns": [
                "id",
                "cal",
                "mt",
                "title",
                "start_date",
                "end_date",
                "status",
                "description",
                "steps",
                "image",
                "attachment",
                "locked",
                "created_at"
            ],
            "date_col": "created_at",
            "text_cols": [
                "title",
                "description"
            ],
            "row_count": 74,
            "latest": "2026-09-18 18:13:00"
        },
        {
            "table": "products",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "warehouse_products",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "warehouse_pending",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        },
        {
            "table": "warehouse_spaces",
            "exists": false,
            "columns": [],
            "date_col": "",
            "text_cols": [],
            "row_count": null,
            "latest": ""
        }
    ]
}