From 1c318cde1a42199e3c5b3b0282ea971931680eb0 Mon Sep 17 00:00:00 2001 From: Malaber <32635600+Malaber@users.noreply.github.com> Date: Thu, 29 Nov 2018 10:47:17 +0100 Subject: [PATCH] Add State to Model --- app/models/match.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/models/match.rb b/app/models/match.rb index 39aec8a..f8ede0a 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Match < ApplicationRecord + enum state: %i[single_team not_ready not_started in_progress team1_won team2_won undecided] + belongs_to :stage, optional: true belongs_to :group, optional: true has_many :scores, dependent: :destroy @@ -14,4 +16,18 @@ class Match < ApplicationRecord def stage_xor_group errors.add(:stage_xor_group, 'Stage and Group missing or both present') unless stage.present? ^ group.present? end + + def evaluate_status + if score_team1 < score_team2 + :team2_won + elsif score_team2 < score_team1 + :team1_won + else + group_match? ? :undecided : :in_progress + end + end + + def group_match? + group.present? + end end