// Canned Ghost Admin API response data, ported from apps/admin-x-framework/src/test/responses — see fixtures/index.ts.

export type SettingValue = string | boolean | number | null;

/**
 * Default value for every setting key the admin client reads. The `labs`
 * setting is not in this map — `settingsResponse` serializes it from the labs
 * defaults (plus any per-test overrides) so it always stays in lockstep with
 * `configResponse`.
 */
export const settingsDefaults: Record<string, SettingValue> = {
    title: "Test Site",
    description: "Thoughts, stories and ideas.",
    logo: null,
    cover_image: null,
    icon: null,
    accent_color: "#FF1A75",
    locale: "en",
    timezone: "Etc/UTC",
    codeinjection_head: "",
    codeinjection_foot: "",
    facebook: "ghost",
    twitter: "@ghost",
    threads: null,
    bluesky: null,
    mastodon: null,
    tiktok: null,
    youtube: null,
    instagram: null,
    linkedin: null,
    navigation: '[{"label":"Home","url":"/"},{"label":"About","url":"/about/"}]',
    secondary_navigation: '[{"label":"Sign up","url":"#/portal/"}]',
    llms_enabled: true,
    meta_title: null,
    meta_description: null,
    og_image: null,
    og_title: null,
    og_description: null,
    twitter_image: null,
    twitter_title: null,
    twitter_description: null,
    active_theme: "casper",
    is_private: false,
    password: null,
    public_hash: "b69493f8b746f7239b7b8fb4125632",
    default_content_visibility: "public",
    default_content_visibility_tiers: "[]",
    members_signup_access: "all",
    members_support_address: "noreply",
    stripe_secret_key: null,
    stripe_publishable_key: null,
    stripe_plans: "[]",
    stripe_connect_publishable_key: null,
    stripe_connect_secret_key: null,
    stripe_connect_livemode: false,
    stripe_connect_display_name: null,
    stripe_connect_account_id: null,
    members_monthly_price_id: null,
    members_yearly_price_id: null,
    members_track_sources: true,
    portal_name: true,
    portal_button: true,
    portal_plans: '["monthly","yearly","free"]',
    portal_default_plan: "yearly",
    portal_products: "[]",
    portal_button_style: "icon-and-text",
    portal_button_icon: null,
    portal_button_signup_text: "Subscribe",
    portal_signup_terms_html: null,
    portal_signup_checkbox_required: false,
    mailgun_domain: null,
    mailgun_api_key: null,
    mailgun_base_url: null,
    email_track_opens: true,
    email_track_clicks: true,
    email_verification_required: false,
    firstpromoter: false,
    firstpromoter_id: null,
    slack_url: "",
    slack_username: "Ghost",
    unsplash: true,
    shared_views: "[]",
    editor_default_email_recipients: "visibility",
    editor_default_email_recipients_filter: "all",
    announcement_content: null,
    announcement_visibility: "[]",
    announcement_background: "dark",
    comments_enabled: "off",
    outbound_link_tagging: true,
    pintura: false,
    pintura_js_url: null,
    pintura_css_url: null,
    members_enabled: true,
    donations_enabled: true,
    members_invite_only: false,
    paid_members_enabled: true,
    firstpromoter_account: null,
    default_email_address: "default@example.com",
    support_email_address: "support@example.com",
    heading_font: null,
    body_font: null,
    require_email_mfa: false
};

export const settingsMeta = {
    filters: {
        group: "site,theme,private,members,portal,newsletter,email,labs,slack,unsplash,views,firstpromoter,editor,comments,analytics,announcement,pintura"
    }
};
