Skip to content

feat: 火器使用申請を複数件登録できるようにする #2053

@YosukeIida

Description

@YosukeIida

開発目的

現在、user 画面の火器使用申請は 1 団体につき 1 件のみ扱う実装になっている。
一方で DB は groups : fire_equipment_orders = 1 : N の構造になっており、複数件保持自体は可能。

火器使用申請を複数件登録・編集・削除できるようにし、あわせて「火器を使用しない」を空の fire_equipment_orders レコードで表す現行実装を整理したい。

考えられる開発内容

  • API の group 単位取得を単数返却から複数返却へ変更する
    • GET /fire_equipment_orders/group/:group_id
    • OAS も更新する
  • user 側の API hook / 表示 / 編集ロジックを配列前提へ変更する
    • 複数申請の一覧表示
    • 個別編集
    • 個別削除
    • 追加登録
  • UI は新規デザインを大きく作り直さず、既存の複数件申請 UI に寄せる
    • Employees
    • PurchaseLists
  • 「火器を使用しない」の状態管理を un_registered_groups に寄せる
    • 実申請: fire_equipment_orders
    • 不使用: un_registered_groups(order_type: fire_equipment_order)
    • 実申請と不使用状態が共存しないようにする
  • 既存の不使用ダミーレコードが存在する場合は、データ移行を検討する
    • name = '' などの空レコードを un_registered_groups に移し替える
    • 移行後は空の fire_equipment_orders を削除する
  • 周辺ロジックの影響を確認する
    • check_all_registered
    • order_status_check
    • CSV 出力
    • 保健所提出詳細

テスト項目

  • 1 団体で火器使用申請を複数件登録できる
  • 複数件の表示・個別編集・個別削除ができる
  • 「火器を使用しない」を登録できる
  • 不使用状態と実申請が共存しない
  • 既存の不使用ダミーレコードを移行する場合、正しく un_registered_groups に置き換わる
  • 登録状態表示が既存仕様どおり動く
  • CSV 出力・保健所提出詳細・管理画面の周辺表示に破綻がない

考えられる開発時間

2〜3 日程度

備考

  • 複数申請のための DB schema 変更は基本不要。主な変更点は API と user フロントの単数前提ロジック。
  • order_status_check では fire_equipment_orders[0] を参照しているため、複数件時の扱いを確認する必要がある。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions