# MaaSシステム

### テーブル名: （M13-ENTITY-01）発行チケットマスタ
- **テーブル物理名**: `m_issued_ticket`
- **テーブル説明**: MaaSシステム側で発行・管理されるチケット情報のマスタテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 共通チケットID | `common_ticket_id` | PK | INTEGER | ○ | | 仲介HUBが発行した共通チケットの一意な識別子 |
| 注文ID | `order_id` | FK | INTEGER | ○ | | 発行されたチケットに紐づく注文ID（MaaSシステムが固有で管理） |
| MaaS商品ID | `maas_ticket_id` | FK | VARCHAR | ○ | | MaaSシステムの販売用商品ID（MaaSシステム固有の商品マスタで管理） |
| 券種 | `user_type` | | VARCHAR | ○ | | 券種<br>区分値: `adult`, `child` |
| 利用開始日時 | `usable_start_at` | | TIMESTAMP WITH TIME ZONE | | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| 利用終了日時 | `usable_end_at` | | TIMESTAMP WITH TIME ZONE | | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| ステータス | `status` | | VARCHAR | ○ | | チケットステータス<br>区分値: `unused`, `in-use`, `used`, `expired`, `refunded` |
| QRコードデータ | `qr_code_data` |  | VARCHAR | | | キャッシュ用 |
| QR有効期限 | `qr_valid_until` |  | TIMESTAMP WITH TIME ZONE | | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |

---

### テーブル名: （M13-ENTITY-02）利用履歴トラン
- **テーブル物理名**: `t_usage_log`
- **テーブル説明**: チケットの利用実績ログを格納するトランザクションテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ログID | `log_id` | PK | VARCHAR | ○ | | ログの一意な識別子 |
| 共通チケットID | `common_ticket_id` | FK | VARCHAR | ○ | | m_issued_ticket.common_ticket_idを参照 |
| 利用日時 | `exec_at` | | TIMESTAMP WITH TIME ZONE | ○ | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| 利用場所 | `location` | | VARCHAR | ○ | | 駅名/バス停等 |
| 利用タイプ | `use_type` | | VARCHAR | ○ | | 利用タイプ<br>区分値: `start`, `entry`, `exit`, `use`, `refund`、`cancel` |
| 端末種別 | `terminal_type` | | VARCHAR | ○ | |  |
| 処理結果成功フラグ | `success_flag` | | BOOLEAN | ○ | |  |

---

# 仲介HUB

### テーブル名: （M13-ENTITY-03）システムマスタ
- **テーブル物理名**: `m_system`
- **テーブル説明**: 連携するMaaSシステムおよび認証システムの接続情報を管理するマスタテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| システムID | `system_id` | PK | INTEGER | ○ | | MaaSシステムや認証システムの一意な識別子 |
| 種別 | `system_type` |  | VARCHAR | ○ | | システム種別<br>区分値: `maas`, `auth` |
| API接続先URL | `base_url` |  | VARCHAR | ○ | |  |
| 認証キー | `api_key` |  | VARCHAR | ○ | |  |

---

### テーブル名: （M13-ENTITY-04）チケットルーティングマスタ
- **テーブル物理名**: `m_ticket_routing_rule`
- **テーブル説明**: MaaS商品IDと認証システム商品IDの対応関係（振り分けルール）を定義するマスタテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ルールID | `rule_id` | PK | VARCHAR | ○ | | 振り分けルール一意な識別子 |
| MaaSシステムID | `maas_system_id` | FK | INTEGER | ○ | | m_system.system_idを参照 |
| MaaS商品ID | `maas_ticket_id` | | VARCHAR | | | MaaSシステムの販売用商品ID |
| 振り分け説明 | `description` | | VARCHAR | | | 振り分け説明 |

---

### テーブル名: （M13-ENTITY-05）チケットルーティング詳細マスタ
- **テーブル物理名**: `m_ticket_routing_rule_detail`
- **テーブル説明**: ルールごとの詳細な振り分け先（認証システム・商品）を定義する子マスタ

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| ルールID | `rule_id` | PK, FK | VARCHAR | ○ | | m_ticket_routing_rule.rule_idを参照 |
| ルール詳細ID | `rule_detail_id` | PK | VARCHAR | ○ | | ルール詳細識別子 |
| 認証システムID | `authentication_system_id` | FK | INTEGER | ○ | | m_system.system_idを参照 |
| 認証チケッティングID | `auth_ticket_id` | | VARCHAR | | | 認証システムの認証用商品ID |

---

### テーブル名: （M13-ENTITY-06）発行チケットマスタ
- **テーブル物理名**: `m_ticket_registry`
- **テーブル説明**: 仲介Hubシステム上で発行された全チケットを統合管理するマスタテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 共通チケットID | `common_ticket_id` | PK | VARCHAR | ○ | | 発行した共通チケットの一意な識別子 |
| ルールID | `rule_id` | ○ | VARCHAR | ○ | |  m_ticket_routing_rule.rule_idを参照 |
| MaaS側リクエストID | `request_id` | ○ | VARCHAR |  | |  |
| 発行日時 | `issued_at` | ○ | TIMESTAMP WITH TIME ZONE |  | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| 有効開始日時 | `valid_from` | ○ | TIMESTAMP WITH TIME ZONE |  | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| 有効終了日時 | `valid_to` | ○ | TIMESTAMP WITH TIME ZONE |  | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| ステータス | `status` | ○ | VARCHAR |  | | 共通チケットステータス<br>区分値: `active`, `expired`, `refunded` |
| QRコードデータ | `qr_code_data` | | VARCHAR |  | | |
| QR配信日時 | `qr_accepted_at` | | TIMESTAMP WITH TIME ZONE |  | | 認証システムへの連携完了日時<br>形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |

---

# 認証システム

### テーブル名: （M13-ENTITY-07）チケットマスタ
- **テーブル物理名**: `m_valid_ticket`
- **テーブル説明**: 認証システム側で有効性を判断するためのチケット情報を格納するマスタテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 共通チケットID | `common_ticket_id` | PK | VARCHAR | ○ | | 仲介HUBが発行した共通チケットの一意な識別子 |
| 認証システム商品ID | `auth_ticket_id` | FK | VARCHAR | ○ | | 認証システムの認証用商品ID（認証システム固有の商品マスタで管理） |
| 利用開始日時 | `usable_start_at` | | TIMESTAMP WITH TIME ZONE | ○ | |  |
| 利用終了日時 | `usable_end_at` |  | TIMESTAMP WITH TIME ZONE | ○ | |  |
| ステータス | `status` | | VARCHAR | ○ | | 共通チケットステータス<br>区分値: `valid`, `used`, `invalid`  |
| 発行通知受領日時 | `issued_at` |  | TIMESTAMP WITH TIME ZONE | | |  |
| QRコードデータ | `qr_code_data` |  | VARCHAR | | |  |
| QR有効期限 | `qr_valid_until` |  | TIMESTAMP WITH TIME ZONE | | |  |

---

### テーブル名: （M13-ENTITY-08）認証履歴トラン
- **テーブル物理名**: `t_auth_log`
- **テーブル説明**: 認証システム側でのチケット認証結果および利用実績を記録するトランザクションテーブル

| カラム名(論理) | カラム名(物理) | キー | データ型・桁 | 必須 | デフォルト値 | 備考 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 認証ログID | `auth_log_id` | PK | VARCHAR | ○ | | ログの一意な識別子 |
| 共通チケットID | `common_ticket_id` | FK | VARCHAR | ○ | | m_issued_ticket.common_ticket_idを参照 |
| 認証日時 | `auth_at` | | TIMESTAMP WITH TIME ZONE | ○ | | 形式はRFC3339のdate-time形式文字列<br>（例：2025-06-19T07:00:00+09:00） |
| 利用場所 | `location` | | VARCHAR | ○ | | 駅名/バス停等 |
| 利用タイプ | `use_type` | | VARCHAR | ○ | | 利用タイプ<br>区分値: `start`, `entry`, `exit`, `use`, `refund`、`cancel` |
| 端末種別 | `terminal_type` | | VARCHAR | ○ | |  |
| 処理結果成功フラグ | `success_flag` | | BOOLEAN | ○ | |  |
