Retrieves comprehensive timeline data for an artist including membership dates, artwork creation history, collection launches, and productivity metrics. This function provides the temporal narrative foundation for storytelling components.

Migration-Ready: This function is designed to be moved to artutils in the future. It is a pure data function with no Shiny dependencies.

get_artist_timeline(artist_uuid, cn)

Arguments

artist_uuid

Character. Artist UUID (validated for proper format)

cn

Database connection object (from artcore::dbc())

Value

A named list with the following elements:

member_since

POSIXct. Date when artist joined the platform

years_active

Numeric. Number of years the artist has been active

first_artwork_date

POSIXct. Date of first artwork created (NULL if none)

latest_artwork_date

POSIXct. Date of most recent artwork (NULL if none)

total_artworks

Integer. Total number of artworks created

collections

Data frame with columns: collection_uuid, collection_name, created_utc, artwork_count

quarterly_productivity

Data frame with columns: year, quarter, artwork_count, period_label

peak_period

List with year, quarter, artwork_count for most productive quarter

milestones

Data frame with columns: date, type, description, significance

Details

The function aggregates temporal data from multiple tables:

  • Artist membership from app.artist_index

  • Artwork creation dates from app.artwork_index

  • Collection launches from app.collection_index

  • Productivity metrics calculated from artwork counts

Quarterly productivity is calculated by grouping artworks into quarters and identifying the peak period. Milestones include significant events like:

  • Platform membership

  • First artwork

  • Collection launches

  • Productivity peaks

Database Tables

  • app.artist_index (created_utc)

  • app.artwork_index (artist_uuid, created_utc, title)

  • app.collection_index (artist_uuid, collection_uuid, collection_name, created_utc)

See also

get_artist_career_stats for career-wide statistics, get_artist_evolution for creative evolution analysis

Examples

if (FALSE) { # \dontrun{
cn <- artcore::dbc()
artist_uuid <- "123e4567-e89b-12d3-a456-426614174000"
timeline <- get_artist_timeline(artist_uuid, cn)

# Access timeline data
timeline$member_since # When they joined
timeline$years_active # How long they've been creating
timeline$quarterly_productivity # Productivity over time
timeline$peak_period # Most productive quarter
timeline$milestones # Key moments in their journey

artcore::dbd(cn)
} # }