﻿# 05D-新規顧客

## 1. ドキュメントの位置付け

本書は、顧客一覧ページの `新規追加` から遷移する VISTA 新規顧客ページについて、基本情報の入力、顧客タグの選択、保存範囲を定義します。

顧客ページの要件は以下に分割されます。

- `05A-顾客列表页.md`: 一覧表示、インポート/エクスポート、新規追加導線、全量同期チェック導線。
- `05B-顾客详情页.md`: 顧客基本情報、ローカル編集/削除、KASIKA 連携顧客のメール読み取り専用、タグと権限サマリー。
- `05C-顾客权限页.md`: 既存顧客タグ、タグ権限テンプレート合成結果、個人権限追加、最終権限。
- `05D-新增顾客.md`: VISTA 新規顧客作成時、基本情報を入力し初期タグを選択します。

新規顧客では KASIKA -> VISTA 同期ルールは定義しません。KASIKA 同期、連携、作成、フィールドスナップショット、アクセスフィールドの書き戻しは、`04-统一顾客联动同步流程.md` と `08-KASIKA入口页与VISTA首次访问开户.md` に従います。

## 2. ページの目的

- HOME VISTA の既存の新規顧客導線と基本情報入力の操作感を維持します。
- 新規顧客作成時に VISTA タグを選択できるようにし、作成後に詳細ページでタグを追加する手間を省きます。
- 既存の HOME VISTA 新規顧客ページをベースに、「顧客情報」モジュールの下にのみタグ選択欄を追加し、他のページモジュールと操作は変更しません。
- 新規保存では VISTA ローカル顧客のみを作成し、KASIKA への顧客の作成や更新は行いません。
- 新規作成後、顧客のアクセス権限は選択したタグに対応する権限テンプレートに基づいてリアルタイムに算出されます。

## 3. 導線とページ構成

1. 導線は `05A-顾客列表页.md` の `新規追加` ボタンからです。
2. クリック後、独立した新規顧客ページに遷移します。右側のポップアップレイヤーは使用しません。
3. 新規作成ページは既存の HOME VISTA 新規顧客ページ UI を踏襲します。
4. 「顧客情報」モジュールの下にのみタグ選択欄を追加します。
5. 共有リンク有効期限、パスワード設定アクセス、間取りタイプ選択、コンテンツ選択などの既存モジュールは、今期のタグ要件によって調整しません。
6. 新規作成ページでは、KASIKA customer_id、KASIKA 連携ステータス、直近の同期結果、同期ログなど、既存顧客のみが持つ情報は表示しません。

## 4. ページ内容

### 4.1 基本情報エリア

少なくとも以下を含みます。

- 顧客名
- メールアドレス
- 担当スタッフ
- 電話、備考、会社名など、HOME VISTA の既存の新規顧客項目は、現行システムに準じます。

フィールドバリデーション：

1. 顧客名は必須です。
2. メールアドレスは既存の HOME VISTA メール形式でバリデーションします。必須かどうかは既存ルールに従います。
3. 担当スタッフは既存のプロジェクトスタッフ一覧から選択します。
4. バリデーション失敗時はフィールドの近くにエラーを表示し、新規作成を送信しません。

### 4.2 タグ選択モジュール

1. 新規顧客ページには VISTA タグ選択欄を必ず設けます。
2. タグ選択欄は「顧客情報」モジュールの下、共有リンク有効期限モジュールの上に配置します。
3. 複数の VISTA タグを選択できます。
4. タグは手動タグ、自動タグ、`customer_status` の自動設定元を区別しません。
5. 新規作成ページではタグの取得元、自動設定元、同期元は表示しません。

## 5. 動作ルール

1. 保存をクリックすると、システムは VISTA ローカル顧客を作成し、選択したタグを保存します。
2. 保存後、その顧客のアクセス権限は現在のタグとタグ権限テンプレートに基づいてリアルタイムに有効になります。
3. 新規顧客の保存では KASIKA API を呼び出しません。
4. 新規顧客の保存では KASIKA に顧客を作成しません。
5. 新規顧客の保存では KASIKA の氏名、メールアドレス、電話、担当などのマスターデータを上書きしません。
6. 新規顧客の保存では KASIKA のアクセス URL、アクセスパスワードを書き込まず、KASIKA の自動返信メール API を呼び出さず、KASIKA の顧客タグを逆にメンテナンスすることもありません。
7. その後 KASIKA -> VISTA 同期または KASIKA 入口ページのフローでこの顧客がマッチした場合は、`04` と `08` のルールに従って連携、フィールドスナップショット、`customer_status` タグ設定、権限判定を行います。
8. 新規保存が成功したら、顧客一覧に戻ることも、その顧客の詳細ページに入ることもできます。具体的な遷移は既存の HOME VISTA の操作習慣に従って決定します。

## 6. 連携異常時の境界条件

1. KASIKA API KEY が不完全、または接続異常の場合でも、新規顧客機能は利用可能です。
2. タグ選択は VISTA のローカル機能であり、KASIKA API に依存しません。
3. VISTA 新規顧客の作成は KASIKA API を呼び出さず、KASIKA API の利用可否の影響を受けません。
4. 新規顧客ページでは KASIKA 同期失敗、保留中、連携異常などの情報は表示しません。

## 7. 受け入れ基準

1. 顧客一覧ページで `新規追加` をクリックすると、独立した新規顧客ページに遷移できます。
2. 新規作成ページで顧客の基本情報を入力し、必須バリデーションを完了できます。
3. 新規作成ページの「顧客情報」モジュールの下にタグ選択欄が表示されます。
4. 複数の VISTA タグを選択できます。
5. 共有リンク有効期限、パスワード設定アクセス、間取りタイプ選択などの既存モジュールは、既存ページの UI と操作を維持します。
6. 保存後、VISTA ローカル顧客が作成され、選択したタグが保存されます。
7. 保存後、その顧客の権限はタグ権限テンプレートに基づいてリアルタイムに有効になります。
8. 新規保存では KASIKA API を呼び出さず、KASIKA への顧客の作成、更新、削除も行いません。
9. KASIKA API KEY が不完全、または接続異常の場合でも、新規顧客作成とタグ選択は利用可能です。
10. 新規作成ページでは KASIKA customer_id、連携ステータス、直近の同期結果、KASIKA 連携操作の導線は表示しません。

## 8. ユーザーケース

### ケース 1：新規顧客を作成しタグを選択

- 前提：ユーザーは顧客一覧ページにいて、プロジェクトに VISTA タグが存在します。
- 操作：`新規追加` をクリックし、顧客名、メールアドレス、担当スタッフを入力し、1つ以上のタグを選択して保存します。
- 期待結果：
  - システムが VISTA ローカル顧客を作成します。
  - 新しい顧客が選択したタグを持ちます。
  - アクセス権限は選択したタグが該当する権限テンプレートに基づいてリアルタイムに有効になります。
  - KASIKA API を呼び出しません。

### ケース 2：新規作成時に複数のタグを選択

- 前提：ユーザーは新規顧客ページにいて、プロジェクトに複数の VISTA タグが存在します。
- 操作：「顧客情報」モジュールの下のタグ選択欄でタグをチェックまたはチェック解除します。
- 期待結果：
  - ページは現在の新規顧客フォームの内容を保持します。
  - ユーザーは複数の VISTA タグを選択できます。
  - ページはタグの取得元や `customer_status` の自動設定元を表示しません。
  - 共有リンク有効期限、パスワード設定アクセス、間取りタイプ選択などの既存モジュールは変更されません。

### ケース 3：連携が利用できない場合の VISTA 新規顧客作成

- 前提：KASIKA API KEY が不完全、または KASIKA 接続が異常です。
- 操作：ユーザーが VISTA 新規顧客を作成し、タグを選択して保存します。
- 期待結果：
  - 新規顧客の保存が成功します。
  - タグが正常に保存されます。
  - ページは KASIKA API を呼び出さず、KASIKA 同期エラーも表示しません。

### ケース 5：新規顧客のバリデーション失敗

- 前提：ユーザーが新規顧客ページを開いています。
- 操作：顧客名を入力しない、または形式が正しくないメールアドレスを入力して保存をクリックします。
- 期待結果：
  - ページがフィールドの近くにバリデーションエラーを表示します。
  - 顧客を作成しません。
  - KASIKA API を呼び出しません。