turniere-backend/app/services/tournament_sync_schema.rb

66 lines
1.8 KiB
Ruby

# frozen_string_literal: true
class TournamentSyncSchema
MODEL_COLUMNS = {
Tournament => {
synced: %w[
id
name
code
description
public
playoff_teams_amount
instant_finalists_amount
intermediate_round_participants_amount
timer_end
].freeze,
ignored: %w[
user_id
created_at
updated_at
read_only_mode
sync_target_url
sync_auth_token
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,
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
}.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