Skip to main content

lib/productshotai_site_kit.ex

defmodule ProductshotaiSiteKit do
  @moduledoc "Public URL helpers for ProductShot AI."

  @base "https://productshotai.app"
  @brand "ProductShot AI"
  @description "AI product photography generator for ecommerce sellers."

  def base, do: @base
  def brand, do: @brand
  def description, do: @description

  def page_url(path \\ "/") do
    value = if path in [nil, ""], do: "/", else: path
    value = if String.starts_with?(value, "/"), do: value, else: "/#{value}"
    clean = if value == "/", do: "/", else: String.trim_trailing(value, "/") <> "/"
    @base <> clean
  end

  def localized_url("en", path), do: page_url(path)
  def localized_url(locale, path) when locale in ["zh", "zh-CN"] do
    value = if path in [nil, "", "/"], do: "/", else: path
    value = if String.starts_with?(value, "/"), do: value, else: "/#{value}"
    page_url("/zh" <> if(value == "/", do: "", else: value))
  end
  def localized_url(locale, _path), do: raise(ArgumentError, "unsupported locale: #{locale}")

  def metadata do
    %{
      name: @brand, homepage: @base, description: @description,
      canonical_pages: %{home: home_url(), workbench: workbench_url(), pricing: pricing_url(), blog: blog_url(), contact: contact_url(), zh_home: zh_home_url()},
      tags: ["productshot", "ai-product-photography", "ecommerce-product-photos", "url-helpers"]
    }
  end

  def home_url, do: page_url("/")
  def workbench_url, do: "#{@base}/#workbench"
  def pricing_url, do: "#{@base}/#pricing"
  def blog_url, do: page_url("/blog")
  def about_url, do: page_url("/about")
  def contact_url, do: page_url("/contact")
  def privacy_url, do: page_url("/privacy")
  def terms_url, do: page_url("/terms")
  def refund_policy_url, do: page_url("/refund-policy")
  def zh_home_url, do: localized_url("zh", "/")
end