# Footer Configuration Contracts
#
# Type contracts for footer configuration with multilingual support.
# Single source of truth for footer content, menu items, and social links.

{
  # Bilingual text fields
  BilingualText = {
    en
      | String
      | doc "English text",

    es
      | String
      | doc "Spanish text",
  },

  # Footer menu item (subset of main menu contract)
  FooterMenuItem = {
    id
      | String
      | doc "Unique identifier",

    routes
      | { en | String, es | String, .. }
      | doc "Routes for each language",

    labels
      | BilingualText
      | doc "Display labels for each language",

    icon
      | String
      | optional,

    priority
      | Number
      | doc "Display priority (negative for footer-only items)"
      | default = 0,

    is_external
      | Bool
      | default = false,

    enabled
      | Bool
      | default = true,

    ..
  },

  # Social media link
  SocialLink = {
    name
      | String
      | doc "Social network name (e.g., 'LinkedIn', 'GitHub')",

    url
      | String
      | doc "Full URL to social profile",

    icon_class
      | String
      | doc "Icon class (e.g., 'fab fa-linkedin')",

    enabled
      | Bool
      | default = true,

    ..
  },

  # Root footer configuration
  FooterFile = {
    title
      | String
      | doc "Footer title (same for all languages)",

    company_desc
      | BilingualText
      | doc "Company description for each language",

    copyright_text
      | BilingualText
      | doc "Copyright notice for each language",

    menu
      | Array FooterMenuItem
      | doc "Footer-specific menu items (e.g., Privacy, Legal)",

    social_links
      | Array SocialLink
      | doc "Social media links",

    ..
  },
}
