hanabiapp.models.game_info

 1from datetime import datetime
 2from .. import db
 3from .user import User
 4
 5class GameInfo(db.Model):
 6    """
 7    ゲームの情報をデータベースに保存するためのモデル.
 8
 9    Attributes:
10        id (int): ゲームの一意の識別子
11        start_time (datetime): ゲームの開始時刻
12        start_time_unix (int): Unix 時間でのゲーム開始時刻
13        end_time (datetime, optional): ゲームの終了時刻(終了していない場合は None)
14        end_time_unix (int, optional): Unix 時間でのゲーム終了時刻
15        play_time (int, optional): ゲームのプレイ時間(秒)
16        number_of_players (int): ゲームに参加したプレイヤー数
17        turn_order (str): プレイヤーのターン順を表すテキスト
18        final_score (int): ゲーム終了時の最終スコア
19        final_turns (int): ゲーム終了時の総ターン数
20        final_hint_tokens (int): ゲーム終了時のヒントトークン数
21        final_miss_tokens (int): ゲーム終了時のミストークン数
22        max_hint_tokens (int): ゲームで使用可能な最大ヒントトークン数
23        max_miss_tokens (int): ゲームで使用可能な最大ミストークン数
24        turn_time_limit (int): 1ターンの制限時間(秒)
25        seed (int): 乱数シード
26        game_end_reason (str): ゲームが終了した理由
27        deck (str): 使用されたデッキの情報(文字列形式で保存)
28    """
29    __tablename__ = 'game_info'
30    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
31    start_time = db.Column(db.DateTime, nullable=False)
32    start_time_unix = db.Column(db.Integer, nullable=False)
33    end_time = db.Column(db.DateTime, nullable=True)
34    end_time_unix = db.Column(db.Integer, nullable=True)
35    play_time = db.Column(db.Integer, nullable=True)
36    number_of_players = db.Column(db.Integer, nullable=False)
37    turn_order = db.Column(db.Text, nullable=False)
38    final_score = db.Column(db.Integer, nullable=False)
39    final_turns = db.Column(db.Integer, nullable=False)
40    final_hint_tokens = db.Column(db.Integer, nullable=False)
41    final_miss_tokens = db.Column(db.Integer, nullable=False)
42    max_hint_tokens = db.Column(db.Integer, nullable=False)
43    max_miss_tokens = db.Column(db.Integer, nullable=False)
44    turn_time_limit = db.Column(db.Integer, nullable=False)
45    seed = db.Column(db.Integer, nullable=False)
46    game_end_reason = db.Column(db.Text, nullable=False)
47    deck = db.Column(db.Text, nullable=False)
class GameInfo(sqlalchemy.orm.decl_api._DynamicAttributesType, sqlalchemy.inspection.Inspectable[sqlalchemy.orm.mapper.Mapper[typing.Any]]):
 6class GameInfo(db.Model):
 7    """
 8    ゲームの情報をデータベースに保存するためのモデル.
 9
10    Attributes:
11        id (int): ゲームの一意の識別子
12        start_time (datetime): ゲームの開始時刻
13        start_time_unix (int): Unix 時間でのゲーム開始時刻
14        end_time (datetime, optional): ゲームの終了時刻(終了していない場合は None)
15        end_time_unix (int, optional): Unix 時間でのゲーム終了時刻
16        play_time (int, optional): ゲームのプレイ時間(秒)
17        number_of_players (int): ゲームに参加したプレイヤー数
18        turn_order (str): プレイヤーのターン順を表すテキスト
19        final_score (int): ゲーム終了時の最終スコア
20        final_turns (int): ゲーム終了時の総ターン数
21        final_hint_tokens (int): ゲーム終了時のヒントトークン数
22        final_miss_tokens (int): ゲーム終了時のミストークン数
23        max_hint_tokens (int): ゲームで使用可能な最大ヒントトークン数
24        max_miss_tokens (int): ゲームで使用可能な最大ミストークン数
25        turn_time_limit (int): 1ターンの制限時間(秒)
26        seed (int): 乱数シード
27        game_end_reason (str): ゲームが終了した理由
28        deck (str): 使用されたデッキの情報(文字列形式で保存)
29    """
30    __tablename__ = 'game_info'
31    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
32    start_time = db.Column(db.DateTime, nullable=False)
33    start_time_unix = db.Column(db.Integer, nullable=False)
34    end_time = db.Column(db.DateTime, nullable=True)
35    end_time_unix = db.Column(db.Integer, nullable=True)
36    play_time = db.Column(db.Integer, nullable=True)
37    number_of_players = db.Column(db.Integer, nullable=False)
38    turn_order = db.Column(db.Text, nullable=False)
39    final_score = db.Column(db.Integer, nullable=False)
40    final_turns = db.Column(db.Integer, nullable=False)
41    final_hint_tokens = db.Column(db.Integer, nullable=False)
42    final_miss_tokens = db.Column(db.Integer, nullable=False)
43    max_hint_tokens = db.Column(db.Integer, nullable=False)
44    max_miss_tokens = db.Column(db.Integer, nullable=False)
45    turn_time_limit = db.Column(db.Integer, nullable=False)
46    seed = db.Column(db.Integer, nullable=False)
47    game_end_reason = db.Column(db.Text, nullable=False)
48    deck = db.Column(db.Text, nullable=False)

ゲームの情報をデータベースに保存するためのモデル.

Attributes:
  • id (int): ゲームの一意の識別子
  • start_time (datetime): ゲームの開始時刻
  • start_time_unix (int): Unix 時間でのゲーム開始時刻
  • end_time (datetime, optional): ゲームの終了時刻(終了していない場合は None)
  • end_time_unix (int, optional): Unix 時間でのゲーム終了時刻
  • play_time (int, optional): ゲームのプレイ時間(秒)
  • number_of_players (int): ゲームに参加したプレイヤー数
  • turn_order (str): プレイヤーのターン順を表すテキスト
  • final_score (int): ゲーム終了時の最終スコア
  • final_turns (int): ゲーム終了時の総ターン数
  • final_hint_tokens (int): ゲーム終了時のヒントトークン数
  • final_miss_tokens (int): ゲーム終了時のミストークン数
  • max_hint_tokens (int): ゲームで使用可能な最大ヒントトークン数
  • max_miss_tokens (int): ゲームで使用可能な最大ミストークン数
  • turn_time_limit (int): 1ターンの制限時間(秒)
  • seed (int): 乱数シード
  • game_end_reason (str): ゲームが終了した理由
  • deck (str): 使用されたデッキの情報(文字列形式で保存)
GameInfo(**kwargs)

A simple constructor that allows initialization from kwargs.

Sets attributes on the constructed instance using the names and values in kwargs.

Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.

id
start_time
start_time_unix
end_time
end_time_unix
play_time
number_of_players
turn_order
final_score
final_turns
final_hint_tokens
final_miss_tokens
max_hint_tokens
max_miss_tokens
turn_time_limit
seed
game_end_reason
deck