# frozen_string_literal: true module ESM class User class Ephemeral attr_reader :steam_uid, :discord_user delegate :mention, :distinct, :username, to: :@discord_user def initialize(steam_uid) @steam_uid = steam_uid @discord_user = DiscordUser.new(steam_uid) end def registered? false end def id steam_uid end def steam_data return unless steam_uid? @steam_data ||= ESM::SteamAccount.new(steam_uid) end def valid? false end def attributes { id: id, ephemeral: true } end def steam_uid? id.match?(ESM::Regex::STEAM_UID) end class DiscordUser attr_reader :steam_uid def initialize(id) @steam_uid = id end alias_method :id, :steam_uid alias_method :mention, :steam_uid alias_method :distinct, :steam_uid alias_method :username, :steam_uid end end end end