Skip to contents

Capture an artist's application to join the Artalytics platform. The entry starts in "pending" status and can be reviewed, invited, or converted to a full user account through the waitlist workflow. Use this function when processing artist signups from landing pages, Shiny forms, or API endpoints. If the email already exists, returns the existing entry ID with a warning.

Usage

create_waitlist_entry(
  email,
  full_name,
  phone = NULL,
  specialties = NULL,
  url_instagram = NULL,
  url_portfolio = NULL,
  url_nft = NULL,
  message = NULL,
  source = "main_site",
  cn = NULL
)

Arguments

email

Character string. The artist's email address (must be unique in the waiting list). Validated using is_valid_email() before insertion. This becomes the primary identifier for the application.

full_name

Character string. The artist's full name as they want it displayed on their profile. Required for personalized communications.

phone

Character string or NULL. Phone number for contact (optional). No format validation - store as provided by artist.

specialties

Character string or NULL. Artistic specialties, mediums, or techniques (optional). Free-text field - examples: "Digital Photography, NFT Art" or "Oil Painting, Sculpture".

url_instagram

Character string or NULL. Instagram profile URL (optional). Used to verify artist authenticity during review.

url_portfolio

Character string or NULL. Portfolio website URL (optional). Primary source for reviewing artist work during application review.

url_nft

Character string or NULL. NFT marketplace profile URL (optional). Examples: OpenSea, Foundation, SuperRare links.

message

Character string or NULL. Personal message from the artist (optional). Free-text field for artists to explain why they want to join.

source

Character string. Tracks signup origin for analytics (default: "main_site"). Use values like "landing_page", "shiny_app", "api_direct" to segment signup sources.

cn

DBI connection object or NULL. Database connection from artcore::dbc("artsite"). If NULL (default), creates and closes connection automatically. Pass existing connection for batch operations to avoid connection overhead.

Value

Character string. UUID of the created waitlist entry (format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). If email already exists, returns the existing entry's UUID with a warning. Use this UUID for subsequent status updates via update_waitlist_status().

Examples

if (FALSE) { # \dontrun{
# Add a new artist to the waiting list
waitlist_id <- create_waitlist_entry(
  email = "artist@example.com",
  full_name = "Jane Artist",
  specialties = "Digital Photography, NFT Art",
  url_portfolio = "https://janeartist.com",
  source = "landing_page"
)

# Check the entry was created
entry <- get_waitlist_entry(waitlist_id)
print(entry$status)  # "pending"
} # }