<?php
/**
 * index_config/config.php
 * ─────────────────────────────────────────────────────────────────────────────
 * All site-wide configuration lives here.
 * Edit this file only — nothing else needs touching for routine updates.
 */

// ── Site identity ─────────────────────────────────────────────────────────────
define('SITE_NAME',        'Ty Clifford');
define('SITE_TAGLINE',     'Hobbies are my hobby.');
define('SITE_URL',         'https://tyclifford.com');
define('SITE_DESCRIPTION', 'The web space of Ty Clifford');
define('SITE_AUTHOR',      'Ty Clifford');
define('SITE_KEYWORDS',    'Ty Clifford, Keyser, West Virginia, United States, Nerd, TikTok, Freedom of Expression');
define('SITE_OG_IMAGE',    SITE_URL . '/images/fa2.jpg');
define('SITE_OG_ALT',      'Profile image of Ty Clifford. Making a funny face squinting.');
define('SITE_TWITTER',     '@_tyclifford');

// ── Profile ───────────────────────────────────────────────────────────────────
define('PROFILE_IMG',      SITE_URL . '/images/fa2.jpg');
define('PROFILE_IMG_ALT',  'Ty Clifford — making a funny face, squinting. Eye everything.');

// ── Background video ──────────────────────────────────────────────────────────
// Set BG_VIDEO_MP4 to '' to disable the video (falls back to static gradient).
define('BG_VIDEO_MP4',     SITE_URL . '/bg/BGV2.mp4');
define('BG_VIDEO_POSTER',  SITE_URL . '/images/fa2.jpg');
// Overlay opacity over the video: 0 = none  1 = fully black
define('BG_OVERLAY',       '0.78');

// ── Typed cycling strings (after "living in") ─────────────────────────────────
// Format: ['text', 'optional_css_class']
// CSS classes available: '' | 'grad-green' | 'grad-purple'
define('TYPED_STRINGS', serialize([
    ['West Virginia',   ''],
    ['Keyser.',         ''],
    ['curiosity.',      ''],
    ['wonder.',         'grad-green'],
    ['the multiverse.', ''],
    ['your mind now.',  'grad-purple'],
]));

// ── Horizontal nav pills ──────────────────────────────────────────────────────
// Format: ['Label', 'url', 'color_class', 'emoji or ""']
// Color classes: col-blue | col-green | col-orange | col-pink | col-peach
//                col-red  | col-hotpink | col-sky
define('NAV_LINKS', serialize([
    ['Live',    'https://tyclifford.com/live/',          'col-blue',    ''],
['Shop', 'https://shop.tyclifford.com/', 'col-green', ''],
    ['Shares',  'https://tyclifford.com/trade/',         'col-red',   ''],
    ['World',   'https://tyclifford.com/world/',         'col-orange',  ''],
    ['Patreon', 'https://go.tyclifford.com/patreon',     'col-pink',    ''],
    ['Blog',    'https://tyclifford.com/blog',           'col-peach',   ''],
    ['YouTube', 'https://go.tyclifford.com/youtube',             'col-red',     ''],
    ['TikTok',  'https://go.tyclifford.com/tiktok',     'col-hotpink', ''],
    ['Bluesky', 'https://go.tyclifford.com/bluesky',    'col-sky',     ''],
//    ['Tip Jar', '/tip/',                                 'col-green',   ''],
]));

// ── Bludit blog integration ───────────────────────────────────────────────────
// Base URL of your Bludit install (no trailing slash).
define('BLUDIT_URL',       'https://blog.tyclifford.com');
// Bludit API token — find it in Admin › Settings › API.
// Set to '' to disable the blog widget entirely.
define('BLUDIT_API_TOKEN', '');
// Number of posts to display (max 5 recommended).
define('BLUDIT_POST_COUNT', 5);
// Snippet length in characters (post body is stripped of HTML).
define('BLUDIT_SNIPPET_LEN', 110);
// Cache TTL in seconds for the API response (0 = no cache).
define('BLUDIT_CACHE_TTL',   300);

// ── Updates feed ─────────────────────────────────────────────────────────────
// Path to the JSON file that drives the "Updates" widget (absolute path).
define('UPDATES_JSON', __DIR__ . '/updates.json');

// ── Updates auto-refresh ──────────────────────────────────────────────────────
// How often (in seconds) the browser polls for new updates.
// Minimum enforced by JS: 5 seconds. Recommended: 30–120.
define('UPDATES_REFRESH_INTERVAL', 30);

// URL to an audio file played when new updates are detected.
// Supports any browser-compatible format: .mp3, .ogg, .wav
// Set to '' to disable the sound notification entirely.
define('UPDATES_REFRESH_SOUND', SITE_URL . '');

// How many updates to display per page in the widget.
// Recommended: 10–15. Visitors can page through older posts.
define('UPDATES_PER_PAGE', 10);

// URL to the lightweight JSON feed endpoint used by the auto-refresher.
// Default: the updates_feed.php file inside index_config/ (no need to change).
define('UPDATES_FEED_URL', '/index_config/updates_feed.php');

// ── Donation buttons ─────────────────────────────────────────────────────────
// Format: ['Label', 'url', 'style_key']
// style_key: 'patreon' | 'liberapay' | 'paypal' | 'generic'
define('DONATE_LINKS', serialize([
    ['Become a Patron',      'https://go.tyclifford.com/patreon',                         'patreon'],
//    ['Donate via Liberapay', 'https://go.tyclifford.com/liberapay',                       'liberapay'],
    ['Tip via PayPal',    'https://www.paypal.com/donate/?hosted_button_id=ZDJ9TXPPMNZ6U', 'paypal'],
]));

// ── Social / contact links ────────────────────────────────────────────────────
// Format: ['Label', 'url', 'icon_key']
// icon_key: 'github' | 'email' | 'patreon' | 'bluesky' | 'tiktok' | 'youtube' | 'web'
define('SOCIAL_LINKS', serialize([
    ['Git',             'https://git.tyclifford.com/snick/comv3',         'gitea'],
    ['Bluesky',            'https://go.tyclifford.com/bluesky',   'bluesky'],
    ['TikTok',             'https://go.tyclifford.com/tiktok',    'tiktok'],
    ['YouTube',            'https://tyclifford.com/yt',           'youtube'],
    ['ty@tyclifford.com',  'mailto:ty@tyclifford.com',            'email'],
]));

// ── CTA buttons ───────────────────────────────────────────────────────────────
// Set to '' to hide the respective button.
define('CALENDLY_URL',  'https://calendly.com/tyclifford/list');
define('SCHEDULE_URL',  '/schedule/');
