97 lines
1.7 KiB
Text
97 lines
1.7 KiB
Text
# 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",
|
|
|
|
..
|
|
},
|
|
}
|