Skip to content

[Step 2] データモデル・DB設計 #419

@takaokouji

Description

@takaokouji

概要

Issue #417 の Step 2: データモデル・DB設計を実装します。

スモウルビー甲子園の競技システムに必要なデータベーススキーマとActiveRecordモデルを設計・実装します。

実装内容

1. マイグレーション作成

  • PlayerAi モデル用マイグレーション
  • GameMap モデル用マイグレーション
  • Game モデル用マイグレーション
  • GameRound モデル用マイグレーション
  • GameTurn モデル用マイグレーション
  • Player モデル用マイグレーション
  • Enemy モデル用マイグレーション
  • GameEvent モデル用マイグレーション

2. ActiveRecord モデル実装

  • PlayerAi モデル (name, code, author, expires_at等)
  • GameMap モデル (name, map_data, map_height, goal_position等)
  • Game モデル (first_player_ai, second_player_ai, status等)
  • GameRound モデル (round_number, players, enemy, status等)
  • GameTurn モデル (turn_number, players, enemy, events等)
  • Player モデル (position, score, status, items等)
  • Enemy モデル (position, hp, attack_power等)
  • GameEvent モデル (event_type, data等)

3. バリデーション・アソシエーション設定

  • 各モデルの適切なバリデーション設定
  • モデル間のアソシエーション設定 (belongs_to, has_many等)
  • enum設定 (GameStatus, PlayerStatus等)

4. シードデータ作成

  • プリセットAI (goal, item, item_goal) のシードデータ
  • マップ (map1〜map10) のシードデータ
  • 開発用テストデータ

5. テスト作成

  • モデルの基本的なunit test
  • バリデーションテスト
  • アソシエーションテスト

データベーススキーマ設計

PlayerAi

GameMap

Game

完了条件

  • 全てのマイグレーションが正常に実行できる
  • 各モデルのバリデーション・アソシエーションが正しく動作する
  • シードデータが正常に投入できる
  • 基本的なモデルテストがパスする

関連Issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions