Skip to main content

lib/facialharmonyai_site_kit.ex

defmodule FacialharmonyaiSiteKit do
  @moduledoc """
  URL helpers for FacialHarmonyAI — AI-powered facial analysis and coaching platform.

  Website: https://facialharmonyai.com
  """

  @base "https://facialharmonyai.com"

  @doc "URL for the facial analysis upload page."
  def analysis_url, do: "#{@base}/analyze"

  @doc "URL for the pricing section."
  def pricing_url, do: "#{@base}/#pricing"

  @doc "URL for the features section."
  def features_url, do: "#{@base}/#features"

  @doc "URL for the FAQ section."
  def faq_url, do: "#{@base}/#faq"

  @doc "URL for a specific analysis report."
  def report_url(report_id) when is_binary(report_id) and report_id != "" do
    "#{@base}/report/#{URI.encode(report_id)}"
  end

  def report_url(_), do: raise(ArgumentError, "report_id must be a non-empty string")

  @doc "URL for the dashboard."
  def dashboard_url, do: "#{@base}/dashboard"

  @doc "URL for the blog."
  def blog_url, do: "#{@base}/blog"

  @doc "Validates a report ID format (alphanumeric, 4-64 chars)."
  def valid_report_id?(id) when is_binary(id) do
    Regex.match?(~r/^[a-zA-Z0-9]{4,64}$/, id)
  end

  def valid_report_id?(_), do: false
end