dawarich/app/models/user.rb

31 lines
790 B
Ruby
Raw Normal View History

class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
2024-03-15 18:27:31 -04:00
has_many :imports, dependent: :destroy
has_many :points, through: :imports
2024-03-23 15:29:55 -04:00
has_many :stats
2024-03-23 16:16:11 -04:00
2024-03-23 16:46:18 -04:00
def export_data
::ExportSerializer.new(points, self.email).call
2024-03-23 16:46:18 -04:00
end
2024-03-23 16:16:11 -04:00
def total_km
Stat.where(user: self).sum(:distance)
end
def total_countries
Stat.where(user: self).pluck(:toponyms).flatten.map { _1['country'] }.uniq.size
2024-03-23 16:16:11 -04:00
end
def total_cities
Stat.where(user: self).pluck(:toponyms).flatten.size
end
2024-03-24 13:55:35 -04:00
def total_reverse_geocoded
points.where.not(country: nil, city: nil).count
end
end