refactor: CC担当シート・チームシートのテーブル定義を共通化

Resolved 💬 2 comments Opened Nov 23, 2025 by oga114 Closed Nov 29, 2025

背景

Issue #20 の対応中に、CC担当シートとチームシートで架電テーブルの列数が異なっていることが判明しました。

  • チームシート: 10列(アポ当月、アポ過去が分離)
  • CC担当シート: 9列(アポ当月 過去として1列に結合)

この1列の差により、getSheetLayout の計算と実際のテーブル配置がずれ、NG案件・CH案件の位置が正しくなくなっていました。

現状の問題

  1. 各テーブル定義が独立している
  • ヘッダー定義が各関数内にハードコードされている
  • 1列追加する場合、両方の関数で修正が必要
  • 不整合が発生しやすい
  1. レイアウト計算との連携が脆弱
  • getSheetLayout でハードコードされた列数を使用
  • テーブル変更時に複数箇所の修正が必要

提案

1. 共通定数として定義

const CALL_ACTIVITY_HEADERS = ['発信', '着電', 'アポ累計', 'アポ当月', 'アポ過去', '追客', 'NG', '不通', '接続率', 'アポ率'];
const CASE_COUNT_HEADERS_BASE = ['資料請求', '合計'];
const SALES_TABLE_HEADERS = ['営業担当', 'アポ', 'CH'];

2. テーブル設定オブジェクト

interface TableConfig {
  headers: string[];
  formulas: (context: any) => string[];
  // ...
}

3. 基本関数 + 拡張パターン

共通のテーブル生成ロジックを持ち、設定で拡張できるようにする。

影響範囲

  • addCCStaffCaseCountTableRequests
  • addCCTeamCaseCountTableRequests
  • addCCStaffCallActivityTableRequests
  • addCCTeamCallActivityTableRequests
  • getSheetLayout
  • その他関連関数

優先度

中(将来の保守性向上のため)

---

🤖 Generated with Claude Code

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗