---
# System prepended metadata

title: 文案相互閲覧機能
tags: [設計, 見積もり, v3.5.0]

---

# 文案相互閲覧機能

###### tags: `設計` `見積もり` `v3.5.0`

### 1. なぜ必要か？現状のプロセスの理解

現状、Kaitak運用メンバーで以下のような流れで文案作成のやりとりをお客様と進めている

```sequence
運用メンバー->お客様: 1.文案が記述された\ngoogleドキュメントのURLを共有
お客様->お客様: 2.文案の確認や微修正
お客様-->運用メンバー: 3.文案の修正依頼がある場合、\n運用メンバーに依頼する
運用メンバー->運用メンバー: 4.文案修正
運用メンバー->お客様: 1 ~ 4の繰り返し
お客様-->運用メンバー:
運用メンバー->お客様: 5.文案確定でよいか、確認
お客様-->運用メンバー: 6.確定と判断し、返信
運用メンバー->運用メンバー: 7.爆撃開始
```

上記の1~4のやりとりが、工数負担になっていること。
最終的な文案確定判断がわからないこと。

こういったことをシステム化を行い解決したい

### 2. システム化での想定したプロセス

```sequence
運用メンバー->Kaitak: 1.管理者でログイン
運用メンバー->Kaitak: 2.キャンペーン画面から、\n文案画面に行き、文案を登録
Kaitak-->お客様: 3.2の文案登録時に、\n文案確認とお客様のログイン情報が、\nメールで自動送信される
お客様->Kaitak: 4.メールに記載されているログインURLと、\nログイン情報でログイン（一般ユーザー）
お客様->Kaitak: 5.文案確認画面で、\n確認・微修正・日程の挿入を行う
お客様->Kaitak: 6.文案を下書き保存、または完了にする
Kaitak-->運用メンバー: 7.6で完了時に運用メンバーに、\nメールアドレスで自動送信し通知する
```

### POのお願いと坂本回答

> 3の自動メールでお客様にキャンペーンの状況を閲覧できるようなIDとパスワードが伝えられること

ここに関しては、機能自体はできている（現状、運用で使わないので停止状態になっている）
存在している機能についての挙動は、以下の通り
1. お客様に対してIDとパスワードが記述されたメールアドレスが送信される
2. お客様が記述されたIDとパスワードでログインをする
3. ログイン後、初回のみパスワード変更が求められるので任意のパスワードに設定する
4. ２回目以降ログインする時はIDと自身で設定したパスワードでログインをする

# 見積もり・設計

## 管理者用の文案編集画面が存在する #307

### 受入条件

- キャンペーン詳細画面のタブに「送信文案編集」タブが存在していること
- 管理者が「送信文案編集」画面に遷移できること
- 一般ユーザーが遷移できないこと
- 送信文案が2パターン登録できること（登録する項目は以下）
    - １
        - 件名（必須）
        - 本文（必須）
        - 短縮版（任意）
    - 2
        - 件名（必須）
        - 本文（必須）
        - 短縮版（任意）

### API
- テーブル追加
    - drafts　（campaign 1-N drafts）
        - 件名 subject string
        - 本文 content string
        - パターン pattern （１か２か？） integer
        - 短縮版かどうか is_short bool
        - ステータス status （ユーザーが上書きか？完了か？） enum
            - 1. draft
            - 2. complate
    - campaigns
        - ~~statusをlist_statusに変更~~
        - ~~send_statusを追加 enum~~
            - ※ statusの変更は影響範囲が大きいので修正用の別タスクにわける
        - draft_statusを追加 enum
            - 0. 未編集 unedited
            - 1. 管理者下書き保存 admin_draft
            - 2. 管理者完了 admin_complate
            - 3. 管理者再修正 admin_update
            - 4. 管理者再修正完了 admin_update_complate
            - 5. お客様下書き保存 user_draft
            - 6. お客様完了 user_complate

    - API
        - get api/v1/drafts/:campaign_id
        - put api/v1/drafts/:campaign_id

### Front
- キャンペーン詳細画面のタブに「送信文案編集」タブ
- 送信文案登録画面に下書き保存ボタンを作る
- 送信文案登録画面に完了ボタン
    - 下書き、完了共に４つ同時にステータス変更を行う

パターン１ = ユーザー完了
パターン２ = 再修正
の時は、パターン１を編集不可にする（disable）



### メモ


## 管理者が文案登録を完了すると、お客様に文案確認メールを自動送信したい #309

### 受入条件
- 管理者が文案登録完了時にお客様に対して、自動でメールが送信されること
- メールの内容について
    - お客様用のログイン用URLとログイン情報が記載されていること
    - お客様が記載されているログイン情報でログインできること

### API

- 改修　put api/v1/drafts/:campaign_id
    - campaignsのdraft_statusが２になった場合にメール送信
    - 参考：reset_password_instructions.html.erb
- app/mailer/notification_mailerと、view/notification_mailerに処理を追加
    - campaignに紐づいているcustomer情報を使用する
- ~~パスワードをリセットするtokenの作成を調べなきゃいけない？~~
    - ~~deviceにあったかも~~
    - ユーザー情報ですでにメールアドレスとパスワードがあるのでそれをメールに記述する

### Front

- campaignsのdraft_statusが2または3、6の時は編集不可にする






## 一般ユーザー用の文案確認画面が存在する #310

### 受入条件
- 左メニューに「文案確認」項目が存在すること
- 「文案確認」項目をクリックすることで、文案確認画面に遷移できること
- 文案確認画面について
    - 文案タイトルが縦に並んで表示されていること
    - 文案タイトルをクリックすると、文案編集ダイアログが表示されること（デフォルトで閲覧モード）
        - 閲覧モード
            - 件名を閲覧できること
            - 本文を閲覧できること
            - 編集ボタンをクリックすると、編集モードに切り替わること
            - 確認完了ボタンをクリックすると、編集不可になること
        - 編集モード
            - 件名を編集できること（必須）
            - 本文を編集できること（必須）
            - 保存ボタンをクリックすると、一時保存ができ、閲覧モードに切り替わること

### API 

- get api/v1/drafts/:customer_id
- put api/v1/drafts/:id
    - 上書き保存　statusはdraft
    - 完了 statusをcomplateに

### Front

- layout/default.vueに「文案確認」項目追加
- page/customer/draft/index.vue
    - リスト作成
    - 編集ダイアログ作成
- 完了にしたら編集不可にする
- 

![](https://i.imgur.com/8xTvRkt.png)

## 一般ユーザーが文案確認完了時に、管理者に完了通知メールを自動送信したい #311

### 受入条件
- 一般ユーザーが文案確認完了時に、管理者に対して完了通知メールが自動送信されること
- お客様情報が記入されていること
    - 会社名
    - 氏名

### API
- put api/v1/drafts/:id
    - campaignsに紐づいているdraftが全て完了（statusをcomplate）になった時にメール送信
- app/mailer/notification_mailerと、view/notification_mailerに処理を追加
    - campaignに紐づいているcustomer情報を使用する
- メール内容
    - お客様情報
        - 会社名 Customer.company_name
        - キャンペーン名 Campaigns.name
        - 文案の件名 Draft.subject
        - 氏名 Customer.name
- ※ メール本文については確認しておきます


