backend:
  name: github
  repo: duttasounak/unitech-concrete-site
  branch: main
  base_url: https://unitechconcrete.com
  auth_endpoint: auth

publish_mode: simple

media_folder: "src/image"
public_folder: "/image"

collections:
  - name: "posts"
    label: "Blog Posts"
    folder: "src/posts"
    create: true
    slug: "{{slug}}"
    fields:
      - { label: "Title", name: "title", widget: "string" }
      - { label: "Publish Date", name: "date", widget: "datetime" }
      - { label: "Excerpt", name: "excerpt", widget: "text", hint: "A one or two sentence teaser shown on the blog listing page." }
      - { label: "Body", name: "body", widget: "markdown" }

  - name: "site-content"
    label: "Site Content"
    files:
      - name: "site-settings"
        label: "Site Settings"
        file: "src/_data/site.json"
        description: "Shared across every page: header/footer contact info, logo, footer columns, and the promo blocks repeated site-wide."
        fields:
          - { label: "Phone Number", name: "phone", widget: "string" }
          - { label: "Secondary Phone Number", name: "phoneSecondary", widget: "string" }
          - { label: "Email", name: "email", widget: "string" }
          - { label: "Head Office Email", name: "headOfficeEmail", widget: "string" }
          - { label: "Website (display text)", name: "website", widget: "string" }
          - { label: "Registered Office Address", name: "address", widget: "text" }
          - { label: "Google Maps Embed URL (Contact page map - on Google Maps, open the location, click Share > Embed a map > COPY HTML, then paste just the src=\"...\" URL here, not the whole <iframe> tag; or ask Claude to convert a maps.app.goo.gl link)", name: "mapEmbedUrl", widget: "string" }
          - { label: "Corporate/Head Office Address", name: "corporateOffice", widget: "text" }
          - { label: "Logo", name: "logo", widget: "image" }
          - { label: "LinkedIn URL", name: "linkedinUrl", widget: "string" }
          - { label: "\"Request a Quote\" Button Link", name: "requestQuoteUrl", widget: "string" }
          - { label: "Footer Tagline", name: "footerTagline", widget: "string" }
          - { label: "Footer Blurb", name: "footerBlurb", widget: "text" }
          - { label: "Secondary Page Banner Image", name: "aboutBanImage", widget: "image", hint: "Shown at the top of every page except the homepage." }
          - label: "QA-QC Promo Block"
            name: "qaPromo"
            widget: "object"
            fields:
              - { label: "Image", name: "image", widget: "image" }
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
              - { label: "Link", name: "link", widget: "string" }
          - label: "HSE Promo Block"
            name: "hsePromo"
            widget: "object"
            fields:
              - { label: "Image", name: "image", widget: "image" }
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
              - { label: "Link", name: "link", widget: "string" }
          - label: "\"For Expert Help\" Block"
            name: "helpCall"
            widget: "object"
            fields:
              - { label: "Icon", name: "icon", widget: "select", options: ["fa-phone", "fa-phone-square", "fa-mobile", "fa-headphones", "fa-comments"] }
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
          - label: "\"Get Enquiry\" Block"
            name: "helpEnquiry"
            widget: "object"
            fields:
              - { label: "Icon", name: "icon", widget: "select", options: ["fa-envelope", "fa-envelope-o", "fa-paper-plane", "fa-at", "fa-comment"] }
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
          - label: "Footer Columns"
            name: "footerColumns"
            widget: "object"
            fields:
              - label: "Quick Links"
                name: "quickLinks"
                widget: "list"
                fields:
                  - { label: "Label", name: "label", widget: "string" }
                  - { label: "URL", name: "url", widget: "string" }
              - label: "Products & Services"
                name: "productsAndServices"
                widget: "list"
                fields:
                  - { label: "Label", name: "label", widget: "string" }
                  - { label: "URL", name: "url", widget: "string" }
              - label: "Capabilities"
                name: "capabilities"
                widget: "list"
                fields:
                  - { label: "Label", name: "label", widget: "string" }
                  - { label: "URL", name: "url", widget: "string" }

      - name: "home-page"
        label: "Home Page"
        file: "src/_data/pages/home.json"
        fields:
          - label: "Page Sections (drag the ⠿ handle to reorder; Add lets you insert another of any type)"
            name: "sections"
            widget: "list"
            types:
              - label: "Hero Banner"
                name: "hero"
                widget: "object"
                fields:
                  - label: "Slides (1 to 4 images)"
                    name: "slides"
                    widget: "list"
                    min: 1
                    max: 4
                    fields:
                      - { label: "Headline", name: "heading", widget: "string" }
                      - { label: "Sub-headline", name: "body", widget: "text" }
                      - { label: "CTA Button Text", name: "ctaText", widget: "string" }
                      - { label: "CTA Button Link", name: "ctaLink", widget: "string" }
                      - { label: "Background Image", name: "image", widget: "image" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "Credentials Strip"
                name: "credentials"
                widget: "object"
                fields:
                  - label: "Items"
                    name: "items"
                    widget: "list"
                    fields:
                      - { label: "Icon (Font Awesome class, e.g. fa-certificate)", name: "icon", widget: "string" }
                      - { label: "Label", name: "label", widget: "string" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "About Teaser"
                name: "aboutTeaser"
                widget: "object"
                fields:
                  - { label: "Heading", name: "heading", widget: "string" }
                  - { label: "Body", name: "body", widget: "markdown" }
                  - { label: "Image", name: "image", widget: "image" }
                  - { label: "Secondary CTA Text", name: "secondaryCtaText", widget: "string" }
                  - { label: "Secondary CTA Link", name: "secondaryCtaLink", widget: "string" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "Services Grid"
                name: "services"
                widget: "object"
                fields:
                  - { label: "Eyebrow Label", name: "eyebrow", widget: "string" }
                  - { label: "Heading", name: "heading", widget: "string" }
                  - label: "Cards"
                    name: "cards"
                    widget: "list"
                    fields:
                      - { label: "Icon (Font Awesome class, e.g. fa-building)", name: "icon", widget: "string" }
                      - { label: "Title", name: "title", widget: "string" }
                      - { label: "Body", name: "body", widget: "text" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "QA-QC & HSE Promo Cards"
                name: "qualityPromo"
                widget: "object"
                fields:
                  - { label: "Marker", name: "_marker", widget: "hidden", default: true }
                hint: "No fields - this is just a position marker. Shows the QA-QC Practices / HSE Policy cards, edited under Site Settings (qaPromo / hsePromo)."
              - label: "\"Why Unitech Concrete\" Tabs"
                name: "whyUs"
                widget: "object"
                fields:
                  - { label: "Heading", name: "heading", widget: "string" }
                  - label: "Tabs"
                    name: "tabs"
                    widget: "list"
                    fields:
                      - { label: "Tab Label", name: "label", widget: "string" }
                      - { label: "Body", name: "body", widget: "markdown" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "\"Why Clients Order\" Cards"
                name: "whyChooseUs"
                widget: "object"
                fields:
                  - { label: "Heading", name: "heading", widget: "string" }
                  - label: "Items"
                    name: "items"
                    widget: "list"
                    fields:
                      - { label: "Title", name: "title", widget: "string" }
                      - { label: "Body", name: "body", widget: "text" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "Projects"
                name: "projects"
                widget: "object"
                fields:
                  - { label: "Heading", name: "heading", widget: "string" }
                  - { label: "Body", name: "body", widget: "text" }
                  - label: "Cards"
                    name: "cards"
                    widget: "list"
                    fields:
                      - { label: "Title", name: "title", widget: "string" }
                      - { label: "Body", name: "body", widget: "text" }
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Image Alt Text", name: "alt", widget: "string" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "Plants"
                name: "plants"
                widget: "object"
                fields:
                  - { label: "Eyebrow Label", name: "eyebrow", widget: "string" }
                  - { label: "Heading", name: "heading", widget: "string" }
                  - { label: "Body", name: "body", widget: "string" }
                  - label: "Items"
                    name: "items"
                    widget: "list"
                    fields:
                      - { label: "Name", name: "name", widget: "string" }
                      - { label: "Address", name: "address", widget: "string" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "Clientele"
                name: "clientele"
                widget: "object"
                fields:
                  - { label: "Heading", name: "heading", widget: "string" }
                  - { label: "Body", name: "body", widget: "string" }
                  - label: "Clients"
                    name: "items"
                    widget: "list"
                    summary: "{{fields.name}}"
                    fields:
                      - { label: "Name", name: "name", widget: "string" }
                      - { label: "Logo (optional - transparent PNG/SVG works best; shows in the logo row instead of the plain-text list below when set)", name: "logo", widget: "image", required: false }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."
              - label: "\"For Expert Help / Get Enquiry\" Band"
                name: "helpPromo"
                widget: "object"
                fields:
                  - { label: "Marker", name: "_marker", widget: "hidden", default: true }
                hint: "No fields - this is just a position marker. Shows the same band as every other page (edited under Site Settings: helpCall / helpEnquiry)."
              - label: "Enquiry Form"
                name: "enquiry"
                widget: "object"
                fields:
                  - { label: "Eyebrow Label", name: "eyebrow", widget: "string" }
                  - { label: "Heading", name: "heading", widget: "string" }
                  - { label: "Body", name: "body", widget: "text" }
                  - label: "Additional Photos (optional - shown below this section)"
                    name: "extraPhotos"
                    widget: "list"
                    required: false
                    fields:
                      - { label: "Image", name: "image", widget: "image" }
                      - { label: "Alt Text", name: "alt", widget: "string", required: false }
                  - label: "Additional Video (optional - shown below this section)"
                    name: "extraVideo"
                    widget: "file"
                    required: false
                    media_folder: "/src/video"
                    public_folder: "/video"
                    hint: "Keep well under 100MB (GitHub's hard file-size limit) - ideally under ~40-50MB for a short clip, since this site has no video compression and serves the file as-is."

      - name: "about-page"
        label: "About Page"
        file: "src/_data/pages/about.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - label: "Overview"
            name: "overview"
            widget: "object"
            fields:
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Image", name: "image", widget: "image" }
              - { label: "Body", name: "body", widget: "markdown" }
          - label: "Mission"
            name: "mission"
            widget: "object"
            fields:
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Image", name: "image", widget: "image" }
              - { label: "Body", name: "body", widget: "markdown" }
          - label: "Vision"
            name: "vision"
            widget: "object"
            fields:
              - { label: "Heading", name: "heading", widget: "string" }
              - { label: "Image", name: "image", widget: "image" }
              - { label: "Body", name: "body", widget: "markdown" }

      - name: "services-page"
        label: "Services Page"
        file: "src/_data/pages/services.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Intro Body", name: "introBody", widget: "markdown" }
          - label: "Accordion Items"
            name: "accordion"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
          - label: "Value-Added Products Section Intro"
            name: "valueAddedIntro"
            widget: "object"
            fields:
              - { label: "Eyebrow Label", name: "eyebrow", widget: "string" }
              - { label: "Heading", name: "heading", widget: "string" }
          - label: "Value-Added Products"
            name: "valueAddedProducts"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
              - { label: "Image (optional)", name: "image", widget: "image", required: false }

      - name: "qa-qc-practices-page"
        label: "QA-QC Practices & HSE Page"
        file: "src/_data/pages/qa_qc_practices.json"
        description: "Combined QA-QC Practices + HSE Policy page (hse-policy.html now redirects here)."
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Intro Body", name: "introBody", widget: "markdown" }
          - label: "QA-QC Accordion Items"
            name: "accordion"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
          - { label: "HSE Section Heading", name: "hseHeading", widget: "string" }
          - { label: "HSE Policy Statement", name: "hsePolicyStatement", widget: "markdown" }
          - label: "HSE Accordion Items"
            name: "hseAccordion"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
          - { label: "FAQ Section Heading", name: "faqHeading", widget: "string" }
          - label: "FAQ Items"
            name: "faqAccordion"
            widget: "list"
            fields:
              - { label: "Question", name: "question", widget: "string" }
              - { label: "Answer", name: "answer", widget: "markdown" }

      - name: "customer-support-page"
        label: "Customer Support Page"
        file: "src/_data/pages/customer_support.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Body", name: "body", widget: "text" }

      - name: "career-page"
        label: "Career Page"
        file: "src/_data/pages/career.json"
        fields:
          - { label: "Hero Title", name: "heroTitle", widget: "string" }
          - { label: "Hero Subtitle", name: "heroSubtitle", widget: "string" }
          - { label: "Hero Intro", name: "heroIntro", widget: "text" }
          - { label: "Apply Button Label", name: "applyButtonLabel", widget: "string" }

          - { label: "Apply Section Heading", name: "applyHeading", widget: "string" }
          - { label: "Apply Section Lead", name: "applyLead", widget: "text" }
          - label: "Apply Section Cards"
            name: "applyCards"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }

          - { label: "Current Openings Heading", name: "openingsHeading", widget: "string" }
          - { label: "Current Openings Lead", name: "openingsLead", widget: "string" }
          - label: "Current Openings"
            name: "jobs"
            widget: "list"
            required: false
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }
              - { label: "Requirements", name: "requirements", widget: "list" }
              - { label: "Apply Email Subject", name: "mailSubject", widget: "string" }

          - { label: "Values Section Heading", name: "valuesHeading", widget: "string" }
          - { label: "Values Section Lead", name: "valuesLead", widget: "text" }
          - label: "Values"
            name: "values"
            widget: "list"
            fields:
              - { label: "Icon", name: "icon", widget: "select", options: ["learn", "grow", "contribute", "belong"] }
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }

          - { label: "Policies Section Heading", name: "policiesHeading", widget: "string" }
          - { label: "Policies Section Lead", name: "policiesLead", widget: "text" }
          - label: "Policies"
            name: "policies"
            widget: "list"
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Body", name: "body", widget: "text" }

          - { label: "Roles Section Heading", name: "rolesHeading", widget: "string" }
          - { label: "Roles Section Lead", name: "rolesLead", widget: "text" }
          - label: "Role Categories"
            name: "roleCategories"
            widget: "list"
            fields:
              - { label: "Category Name", name: "name", widget: "string" }
              - { label: "Roles", name: "roles", widget: "list" }
          - { label: "Roles Section Note", name: "rolesNote", widget: "text" }

          - { label: "CV Section Heading", name: "cvHeading", widget: "string" }
          - { label: "CV Section Lead", name: "cvLead", widget: "text" }
          - { label: "CV Button Label", name: "cvButtonLabel", widget: "string" }

      - name: "leadership-page"
        label: "Leadership Page"
        file: "src/_data/pages/leadership.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Intro Body", name: "introBody", widget: "text" }
          - label: "Team Members"
            name: "members"
            widget: "list"
            required: false
            fields:
              - { label: "Name", name: "name", widget: "string" }
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Bio", name: "bio", widget: "text" }
              - { label: "Photo", name: "photo", widget: "image", required: false }

      - name: "awards-page"
        label: "Awards & Recognition Page"
        file: "src/_data/pages/awards.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Intro Body", name: "introBody", widget: "text" }
          - label: "Awards"
            name: "awards"
            widget: "list"
            required: false
            fields:
              - { label: "Title", name: "title", widget: "string" }
              - { label: "Year", name: "year", widget: "string" }
              - { label: "Description", name: "description", widget: "text" }
              - { label: "Image", name: "image", widget: "image", required: false }

      - name: "contact-page"
        label: "Contact Page"
        file: "src/_data/pages/contact.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }

      - name: "privacy-policy-page"
        label: "Privacy Policy Page"
        file: "src/_data/pages/privacy_policy.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Effective Date", name: "effectiveDate", widget: "string" }
          - { label: "Body", name: "body", widget: "markdown" }

      - name: "blog-page"
        label: "Blog Page"
        file: "src/_data/pages/blog.json"
        fields:
          - { label: "Page Heading", name: "pageHeading", widget: "string" }
          - { label: "Intro Heading", name: "introHeading", widget: "string" }
          - { label: "Intro Body", name: "introBody", widget: "text" }
