86 lines
2.5 KiB
Ruby
86 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class TournamentSyncSchema
|
|
MODEL_COLUMNS = {
|
|
Tournament => {
|
|
synced: %w[
|
|
id
|
|
name
|
|
code
|
|
description
|
|
public
|
|
location
|
|
starts_at
|
|
ends_at
|
|
website_url
|
|
playoff_teams_amount
|
|
instant_finalists_amount
|
|
intermediate_round_participants_amount
|
|
timestamp
|
|
timer_mode
|
|
timer_reason
|
|
timer_reason_text
|
|
].freeze,
|
|
ignored: %w[
|
|
user_id
|
|
created_at
|
|
updated_at
|
|
read_only_mode
|
|
sync_target_url
|
|
sync_auth_token
|
|
sync_auth_token_digest
|
|
sync_source_tournament_id
|
|
sync_last_pushed_at
|
|
sync_last_push_error
|
|
sync_last_imported_snapshot_at
|
|
].freeze
|
|
}.freeze,
|
|
Team => {
|
|
synced: %w[id name].freeze,
|
|
ignored: %w[tournament_id created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
Beamer => {
|
|
synced: %w[id name display_state is_default config].freeze,
|
|
ignored: %w[tournament_id created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
Stage => {
|
|
synced: %w[id level state].freeze,
|
|
ignored: %w[tournament_id created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
Group => {
|
|
synced: %w[id number stage_id].freeze,
|
|
ignored: %w[created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
Match => {
|
|
synced: %w[id state position stage_id group_id decider].freeze,
|
|
ignored: %w[created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
MatchScore => {
|
|
synced: %w[id points match_id team_id hidden_points].freeze,
|
|
ignored: %w[created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
GroupScore => {
|
|
synced: %w[id group_points scored_points received_points team_id group_id position].freeze,
|
|
ignored: %w[created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
TeamActionList => {
|
|
synced: %w[id name key action_name source].freeze,
|
|
ignored: %w[tournament_id created_at updated_at sync_source_id].freeze
|
|
}.freeze,
|
|
TeamActionItem => {
|
|
synced: %w[id team_action_list_id team_id completed completed_at].freeze,
|
|
ignored: %w[created_at updated_at sync_source_id].freeze
|
|
}.freeze
|
|
}.freeze
|
|
|
|
class << self
|
|
def synced_columns_for(model_class)
|
|
MODEL_COLUMNS.fetch(model_class).fetch(:synced)
|
|
end
|
|
|
|
def ignored_columns_for(model_class)
|
|
MODEL_COLUMNS.fetch(model_class).fetch(:ignored)
|
|
end
|
|
end
|
|
end
|