pub(crate) const SAMPLE_HANDLES: &[&str] = &[
    "you.bsky.social",
    "alice.bsky.social",
    "bob.bsky.social",
    "carol.bsky.social",
    "you.npmx.social",
    "you.gander.social",
    "you.pckt.cafe",
    "you.blacksky.community",
    "you.northsky.social",
    "you.eurosky.social",
    "you.teal.town",
    "you.selfhosted.social",
    "you.tngl.sh",
    "someone.wsocial.eu",
    "ari.bsky.social",
    "meri.roomy.chat",
    "you.roomy.chat",
    "foundry.cryptoanarchy.network",
];

pub(crate) const HERO_SAMPLE_HANDLES: &[&str] = &[
    "you.bsky.social",
    "you.npmx.social",
    "alice.bsky.social",
    "bob.bsky.social",
    "carol.bsky.social",
    "you.pckt.cafe",
    "you.blacksky.community",
    "you.gander.social",
    "you.cryptoanarchy.network",
    "you.northsky.social",
    "you.eurosky.social",
    "you.teal.town",
    "you.roomy.chat",
    "someone.wsocial.eu",
    "you.selfhosted.social",
    "you.tngl.sh",
    "ari.bsky.social",
    "meri.roomy.chat",
    "mesh.cryptoanarchy.network",
];

pub(crate) const SAMPLE_SEARCH_QUERIES: &[&str] = &[
    "parametric enclosure",
    "atproto desk toy",
    "bluesky badge clip",
    "print-in-place hinge",
    "calibration tower",
    "gridfinity bins",
    "pds server rack",
    "snap-fit case",
    "tiny relay antenna",
    "custom feed trophy",
    "desk cable comb",
    "did:plc nameplate",
    "modular planter",
    "statuettes of Alf",
    "emotional support benchy",
];

pub(crate) fn random_sample_handle() -> String {
    random_sample(SAMPLE_HANDLES)
}

pub(crate) fn first_hero_sample_handle() -> &'static str {
    HERO_SAMPLE_HANDLES[0]
}

pub(crate) fn random_sample_search_query() -> String {
    random_sample(SAMPLE_SEARCH_QUERIES)
}

fn random_sample(samples: &[&str]) -> String {
    let index = rand::random::<u64>() as usize % samples.len();
    samples[index].to_string()
}
