---
# System prepended metadata

title: 仕様について確認したいこと

---

# 仕様について確認したいこと

## 仕様に関する確認
### ペアの下限に抵触するので、参加者を削除できない？
- 削除する参加者が2人組のペアに所属している場合は、「参加者を削除する前にペアを解散してください」的な感じで促す
- 合併はしない。実際のアプリで考えると、勝手に合併するのは使い勝手が悪そう

### チームの合併処理は別処理に切り出した方が良いのでは？
- あえて自動的にしたのは課題として複雑さを持たせたかったから？
- 実際のアプリで考えると、勝手に合併されるのは使い勝手が悪そう
- 参加者の削除やペアの変更などによって下限を割る場合、先にチームを解散するよう促すのはどうか？

### 以下の仕様を勝手に追加したので、良さそうなものがあれば追記してください
- ペア名、チーム名は1文字限定
- 参加者の登録と同時に登録されている課題が全て割り当てられる
- 同じチームに同じペア名は許容しない
- 課題名は重複を許容しない
- 課題を削除したら割り当てられている課題も削除される
- 課題を追加したときは全ての参加者に自動的に割り当てる
- 課題グループ名は重複を許容しない
- メールアドレスの重複は許容しない

### ちょっとした改善要望
- 成果物の仕様にテストに関する記載があると嬉しいかも
    - 「テストの課題をクリアした君たちなら、言わなくてもテスト書くよね？」という暗黙の...？
- ペアの仕様に記載ミス？別のペアに分割する必要がある、、、とか？
> 上限は3名まで。4名以上のペアは存続できない（他のペアに合併する必要がある）


## 以下検討用
****

## ペアの下限に抵触し、参加者を削除できない
下記のような状態でペアが存在していて、 Aさんを削除するケース
```json=
{
    "pair-a": ["Aさん", "Bさん"]
    "pair-b": ["Cさん", "Dさん"]
    "pair-c": ["Eさん", "Fさん"]
}
```

### 問題点
pair-aの参加者が1人になってしまい、下限を割ってしまう。

### 対応方法
1. エラーとする
    - 参加者が削除できなくなるため、いまいち
2. 残った1人をどこかの2人組のペアに追加する
    - 他に2人組のペアがなければ1人組のペアが残ってしまう
        - その場合は残った1人組は無所属状態にして良いか？
    - 一時的にペアAが1人なってしまう
        - ペアの更新ではなく、一旦ペアを削除することで回避可能
3. 先にペアを削除してもらうように促す
    - 実際のサービスならこれ 

## プラハチャレンジ全体の参加者が1名になった場合の扱い
### 問題点
ペアには最低2名必要。
一度ペアに所属した場合、2名→1名に減らすことができない。

### 対応方法
1. エラーとする
    - 参加者を削除できなくなるため、いまいち
2. 残った1人は強制的に無所属となる
    - これなら良さそう
3. 先にペアを削除してもらうように促す
    - 実際のサービスならこれ


### 参加者を削除する場合
イメージ
```typescript=
if (!チームから1名脱退できますか？) {
   他のチームと合併
   （チームを削除、ペアを他のチームに入れる）
}

if (!ペアから1名脱退できますか？) {
    他のペアと合併
    （ペアを削除、参加者を他のペアに入れる）
    （2人組がなければどこかのトリオを分割）
}

参加者を削除する
```

### ペアのメンバーを減らす場合（参加者の削除と同じ）
イメージ
```typescript=

if (!チームから1名脱退できますか？) {
   他のチームと合併
   （チームを削除、ペアを他のチームに入れる）
}

if (!ペアから1名脱退できますか？) {
    他のペアと合併
    （ペアを削除、参加者を他のペアに入れる）
    （2人組がなければどこかのトリオを分割）
}

ペアから1人減らす
```

### ペアを削除する場合
イメージ
```typescript=

if (!チームからペアを脱退できますか？) {
   他のチームと合併
   （チームを削除、ペアを他のチームに入れる）
}

ペアを削除する
```