defmodule Faker.Commerce do import Faker, only: [localize: 1] @moduledoc """ Functions for generating commerce related data """ @doc """ Returns a random color ## Examples iex> Faker.Commerce.color() "red" iex> Faker.Commerce.color() "sky blue" iex> Faker.Commerce.color() "lavender" iex> Faker.Commerce.color() "grey" """ @spec color() :: String.t() localize(:color) @doc """ Returns a random department ## Examples iex> Faker.Commerce.department() "Home, Garden & Tools" iex> Faker.Commerce.department() "Electronics & Computers" iex> Faker.Commerce.department() "Clothing, Shoes & Jewelery" iex> Faker.Commerce.department() "Toys, Kids & Baby" """ @spec department() :: String.t() localize(:department) @doc """ Returns a random number that represents a price ## Examples iex> Faker.Commerce.price() 1.11 iex> Faker.Commerce.price() 4.02 iex> Faker.Commerce.price() 8.36 iex> Faker.Commerce.price() 3.05 """ @spec price() :: float def price do Faker.random_between(1, 1000) / 100.0 end @doc """ Returns a complete product name, based on product adjectives, product materials, product names ## Examples iex> Faker.Commerce.product_name() "Ergonomic Steel Shirt" iex> Faker.Commerce.product_name() "Fantastic Car" iex> Faker.Commerce.product_name() "Granite Gloves" iex> Faker.Commerce.product_name() "Plastic Shoes" """ @spec product_name() :: String.t() localize(:product_name) @doc """ Returns a random adjective for a product ## Examples iex> Faker.Commerce.product_name_adjective() "Small" iex> Faker.Commerce.product_name_adjective() "Ergonomic" iex> Faker.Commerce.product_name_adjective() "Incredible" iex> Faker.Commerce.product_name_adjective() "Gorgeous" """ @spec product_name_adjective() :: String.t() localize(:product_name_adjective) @doc """ Returns a random product material ## Examples iex> Faker.Commerce.product_name_material() "Rubber" iex> Faker.Commerce.product_name_material() "Concrete" iex> Faker.Commerce.product_name_material() "Steel" iex> Faker.Commerce.product_name_material() "Granite" """ @spec product_name_material() :: String.t() localize(:product_name_material) @doc """ Returns a random product name ## Examples iex> Faker.Commerce.product_name_product() "Gloves" iex> Faker.Commerce.product_name_product() "Computer" iex> Faker.Commerce.product_name_product() "Table" iex> Faker.Commerce.product_name_product() "Shirt" """ @spec product_name_product() :: String.t() localize(:product_name_product) end