メインコンテンツまでスキップ

OrderItem — 注文明細

これは何か

注文(Order)の中の1行です。「長机を3台、1台2,000円で申し込んだ」という1件の内容を表します。

1つの注文は複数の明細を持てます。「長机3台」「折りたたみ椅子10脚」「参加費1口」のように、申し込んだ商品の種類の数だけ明細行があります。

誰が作るか

明細は2つの経路で作られます。

サークルのチェックアウトによって自動生成される サークルがカートをチェックアウトすると、カート内の各商品行が自動的に明細に変換されます。この場合 isAdminFixed = false になります。

運営スタッフが直接追加する(強制割り当て) 電源工事費・会場清掃費など、サークルが選んで申し込むのではなく「運営が一方的に課す費用」を明細として直接追加できます。この場合 isAdminFixed = true になります。

isAdminFixed — 強制割り当て

isAdminFixed = true の明細は、運営スタッフが追加したものです。

  • サークル側からは見ることができる(自分の注文の一部として表示される)
  • サークル側は変更・削除できない
  • 変更・削除できるのは運営スタッフのみ

申し込み時の価格の固定

注文明細が作成された時点の単価は、その後変更されない

これはこのシステムで最も重要なルールのひとつです。たとえばチェックアウト後に運営が商品の価格を変更しても、すでに申し込んだサークルへの請求金額は変わりません。申し込んだ瞬間の価格が記録に残り続けます。

誰が使うか

  • サークル:自分の注文の明細を確認する(読むだけ)
  • 運営スタッフ:明細を確認し、必要であれば強制割り当てを追加・変更する

できなければならないこと

  • チェックアウト時にカートの内容から自動的に明細が生成される
  • 運営スタッフが注文に強制割り当ての明細を追加できる(注文が PENDING または APPROVED の状態に限る)
  • 運営スタッフが isAdminFixed = false の明細の数量を変更できる(注文が PENDING または APPROVED の状態に限る)
  • 運営スタッフが強制割り当ての明細を変更・削除できる
  • サークルが自分の注文の明細を確認できる

できてはいけないこと

  • サークルが強制割り当て(isAdminFixed = true)の明細を変更・削除すること
  • サークルが明細を直接作成すること。明細の作成はチェックアウト処理か運営スタッフの操作のみ。
  • CONFIRMED または RECEIPTED の注文の明細を変更・追加・削除すること。発注が確定した後は内容を変えてはならない。
  • 申し込み時の単価(unitPriceAtOrder)を後から変更すること。申し込み時点の証拠として永続的に保持する。
  • 数量を0以下にすること。削除したい場合は削除操作を使う。
  • 他のサークルの明細を見たり変更したりすること。