defmodule Ami.Profile do use Ecto.Schema use Timex # import Ecto.Query alias Ami.{ User, Job } schema "profiles" do field(:first_name, :string) field(:last_name, :string) field(:age, :integer) field(:gender, :string) field(:alternative_email, :string) field(:phone, :string) field(:skype, :string) field(:linkedin, :string) field(:google_plus, :string) field(:twitter, :string) field(:biography, :string) field(:created_at, :utc_datetime) field(:updated_at, :utc_datetime) field(:image, :string) field(:facebook, :string) field(:cover_photo, :string) field(:cv, :string) field(:completed, :boolean) field(:country_id, :integer) field(:city_id, :integer) field(:view_count, :integer) field(:settings, :map) belongs_to(:user, User) has_many(:jobs, Job) end def image_url({id, image}) do case image do nil -> "/images/profiles/nav_profile_default.png" _ -> "https://ami-aws-s3.s3.amazonaws.com/uploads/profile/image/#{id}/#{image}" end end def small_thumb_image_url({id, image}) do case image do nil -> "/images/profiles/nav_profile_default.png" _ -> case Application.get_env(:ami_web, :env) do :dev -> "https://ami-aws-s3.s3.amazonaws.com/uploads/profile/image/#{id}/small_thumb_#{image}" :prod -> "https://ami-aws-s3.s3.amazonaws.com/uploads/profile/image/#{id}/small_thumb_#{image}" :staging -> "https://ami-aws-s3.s3.amazonaws.com/uploads/profile/image/#{id}/small_thumb_#{image}" :test -> "https://ami-aws-s3.s3.amazonaws.com/uploads/profile/image/#{id}/small_thumb_#{image}" _ -> "" end end end def created_since_in_week(profile) do Interval.new(from: profile.created_at, until: DateTime.utc_now()) |> Interval.duration(:weeks) end end