import type { DsDevice } from "@/lib/types";
import { at } from "./_helpers";

/**
 * D-Secログ（D-S制御盤）のサンプルデータ
 *
 * ★ トークン期限 / 残日数は移植しない（D-030: 仕様から除外済み）★
 *   モックの DSDEV には `te` フィールドが残っているが、実装対象外。
 *
 * docs/fixtures.md §5 のケース
 *   - 2状態すべて（正常 / 異常）★通信断は「異常」に含まれる。3状態目は存在しない（D-065）★
 *   - 自動ソート確認: ここでは「正常→異常→正常→異常」の順で定義してある。
 *     画面表示時に「異常 → 正常」に並び替わることを確認すること（サーバ側でソート）
 *   - 備考あり / なし（空文字ではなく null で持つ）
 */
export const dsDevices: DsDevice[] = [
  // あえてバラバラな順序で定義（ソートの確認用）
  {
    serial_number: "DS-002",
    facility_id: 3,
    facility_name: "メガバリューマート東口店",
    connection_status: "ok",
    last_reported_at: at(0, "09:01"),
    note: null,
  },
  {
    serial_number: "DS-001",
    facility_id: 1,
    facility_name: "メガバリューマート中央本店",
    connection_status: "error",
    last_reported_at: at(0, "03:42"),
    note: "現地確認済み。制御盤の電源ユニット交換を手配中",
  },
  {
    serial_number: "DS-003",
    facility_id: 4,
    facility_name: "バリューマート西通り店",
    connection_status: "ok",
    last_reported_at: at(0, "09:00"),
    note: null,
  },
  {
    serial_number: "DS-005",
    facility_id: 11,
    facility_name: "バリューマート川下店",
    connection_status: "error",
    last_reported_at: at(0, "02:55"),
    note: "9/5 に制御盤を再起動して復旧を確認。しばらく様子見",
  },
  {
    serial_number: "DS-004",
    facility_id: 5,
    facility_name: "メガバリューマート港南総本店",
    connection_status: "ok",
    last_reported_at: at(0, "08:55"),
    note: null,
  },
  {
    serial_number: "DS-006",
    facility_id: 7,
    facility_name: "メガバリューマート緑野店",
    connection_status: "ok",
    last_reported_at: at(0, "08:58"),
    note: "定期点検実施済み",
  },

  // --- 11件以上（ページング確認用）に増やすため追加 ---
  {
    serial_number: "DS-007",
    facility_id: 2,
    facility_name: "バリューマート北町店",
    connection_status: "ok",
    last_reported_at: at(0, "08:50"),
    note: null,
  },
  {
    serial_number: "DS-008",
    facility_id: 6,
    facility_name: "バリューマート南丘駅前店",
    connection_status: "ok",
    last_reported_at: at(0, "08:47"),
    note: null,
  },
  {
    serial_number: "DS-009",
    facility_id: 8,
    facility_name: "メガバリューマート桜台店",
    connection_status: "error",
    last_reported_at: at(0, "04:10"),
    note: "店舗担当者へ連絡済み。今夜も再発するようなら訪問する",
  },
  {
    serial_number: "DS-010",
    facility_id: 9,
    facility_name: "メガバリューマート三ツ橋中央ショッピングセンター店",
    connection_status: "error",
    last_reported_at: at(0, "01:30"),
    note: "LAN ケーブルの緩みを現地で直した。翌朝あらためて確認",
  },
  {
    serial_number: "DS-011",
    facility_id: 10,
    facility_name: "バリューマート城南店",
    connection_status: "ok",
    last_reported_at: at(0, "08:52"),
    note: "定期点検実施済み",
  },
  {
    serial_number: "DS-012",
    facility_id: 12,
    facility_name: "メガバリューマート緑野第二店",
    connection_status: "error",
    last_reported_at: at(0, "03:20"),
    note: "警備会社へ連絡済み。復帰手順の再確認を依頼中",
  },
];

/**
 * 「全部正常」のケース（異常0件でサマリカードがどう出るか）を確認したいときに使う。
 * APIルート側でクエリパラメータやフラグで差し替えて確認してください。
 */
export const dsDevicesAllOk: DsDevice[] = dsDevices.map((d) => ({
  ...d,
  connection_status: "ok",
  note: null,
}));

/**
 * 該当0件（docs/fixtures.md §10）を確認したいときは、
 * `q` に一致しない検索語（例: "ZZZ-NOMATCH"）を指定してください。
 * facility_name / serial_number のどちらにも一致しない前提です。
 */
