国管理機能仕様書
機能概要
国管理機能は、ECサイトで扱う国マスタを管理するための管理画面機能です。国の作成、編集、削除、一覧表示、並び替えなどの操作が可能です。
URL: /admin/basic-master/countries
ナビゲーション: 店舗管理グループ > 基本マスタクラスター
技術スタック: Filament v4, Livewire v3
画面構成
一覧画面(List Countries)
国の一覧を表示し、検索、ソート、並び替え、削除などの操作が可能です。
テーブルカラム
| カラム名 | 表示内容 | 検索 | ソート | 表示/非表示 |
|---|---|---|---|---|
| 名称 | name |
✅ | ✅ | 常時表示(インライン編集可能) |
| 国コード | country_code |
✅ | ✅ | 常時表示(インライン編集可能) |
| 表示順序 | sort_order |
- | ✅ | 常時表示(インライン編集可能) |
| 有効 | is_active |
- | - | 常時表示(トグル) |
| 作成日時 | created_at |
- | - | 常時表示 |
機能詳細
検索機能
- 名称(name)と国コード(country_code)で検索可能
- リアルタイム検索(入力と同時にフィルタリング)
ソート機能
- デフォルトソート: sort_order 昇順
- 名称、国コード、表示順序でソート可能
並び替え機能
- ドラッグ&ドロップで表示順序を変更可能
- sort_order カラムの値を自動更新
インライン編集 - 名称、国コード、表示順序をテーブル内で直接編集可能 - 編集後、自動的に保存
トグル編集 - 有効/無効をテーブル内で直接切り替え可能 - 切り替え後、自動的に保存
作成画面(Create Country)
新しい国を作成するためのフォーム画面です。
フォーム項目
| 項目名 | フィールド名 | 必須 | 最大文字数 | 説明 |
|---|---|---|---|---|
| 名称 | name |
✅ | 100 | 国名 |
| 国コード | country_code |
- | 2 | ISO 3166-1 alpha-2(2文字の英字、大文字変換) |
| 表示順序 | sort_order |
✅ | - | 表示順序(数値、自動設定: 最大値+1) |
| 有効 | is_active |
- | - | 有効/無効トグル(デフォルト: true) |
バリデーション
| 項目 | ルール |
|---|---|
| 名称 | 必須、最大100文字 |
| 国コード | 最大2文字、英字のみ、大文字変換 |
| 表示順序 | 必須、数値 |
特別な処理
国コード - 入力時に自動的に大文字に変換 - ISO 3166-1 alpha-2形式(2文字の英字) - 例: JP, US, CN等
バリデーション
フォームバリデーション
| フィールド | ルール | エラーメッセージ |
|---|---|---|
name |
required, max:100 |
名称は必須です / 名称は100文字以内で入力してください |
country_code |
nullable, string, size:2, alpha:ascii |
国コードは2文字の英字で入力してください |
sort_order |
required, integer |
表示順序は必須です / 表示順序は数値で入力してください |
インライン編集バリデーション
| フィールド | ルール |
|---|---|
name |
required, string, max:100 |
country_code |
nullable, string, size:2, alpha:ascii |
sort_order |
required, integer |
技術仕様
ファイル構成
app/Admin/Clusters/BasicMaster/Resources/Countries/
├── CountryResource.php # メインリソースクラス
└── Pages/
├── ListCountries.php # 一覧ページ
└── CreateCountry.php # 作成ページ
app/Models/
└── Country.php # モデルクラス
モデル機能
スコープ
- active(): is_active = true の国を取得
- ordered(): sort_order でソート
関連機能
基本マスタ共通機能
- 国管理は基本マスタクラスター配下の機能です
- 他の基本マスタ(都道府県、性別、職業、登録種別)と同様の構造を持ちます