backend:
  name: git-gateway
  branch: main
  commit_messages:
    create: "Create {{collection}} “{{slug}}”"
    update: "Update {{collection}} “{{slug}}”"
    delete: "Delete {{collection}} “{{slug}}”"
    uploadMedia: "[skip ci] Upload “{{path}}”"
    deleteMedia: "[skip ci] Delete “{{path}}”"

local_backend: false

site_url: "https://cittadinivolontari.it"
display_url: "https://cittadinivolontari.it"
logo_url: "https://cittadinivolontari.it/logo.svg"

locale: it

media_folder: "/public/assets"
public_folder: "/assets"

search: true

slug:
  encoding: unicode
  clean_accents: true
  sanitize_replacement: "-"

editor:
  preview: false

collections:
  - name: posts
    label: Articoli
    label_singular: Articolo
    description: "Articoli del sito. Appariranno in ordine cronologico a partire dal più recente nella pagina delle notizie."
    folder: src/content/posts/
    extension: md
    create: true
    delete: true
    media_folder: "/public/assets/posts"
    public_folder: "/assets/posts"
    fields:
      - label: Titolo
        name: title
        widget: string
      - label: Data di pubblicazione
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        hint: "Seleziona la data di pubblicazione da mostrare. È un'impostazione cosmetica, che non influisce sulla pubblicazione effettiva (che può essere posteriore alla data indicata)."
      - label: Categoria
        name: category
        widget: select
        options:
          - "Eventi"
          - "Comunicati"
        default: "Eventi"
        hint: "Categoria dell'articolo."
      - label: Immagine di copertina
        name: image
        widget: image
        required: false
        choose_url: false
        media_library:
          config:
            multiple: false
            max_file_size: 5000000 # 5MB
      - label: Contenuto
        name: body
        widget: markdown
      - label: Galleria
        name: gallery
        widget: image
        required: false
        choose_url: false
        media_library:
          config:
            multiple: true
            max_file_size: 5000000 # 5MB
      - label: Bozza
        name: draft
        widget: boolean
        default: false
        required: false
        hint: "Seleziona questa opzione per salvare l'articolo come bozza e non renderlo pubblico."
    identifier_field: title
    slug: "{{year}}{{month}}{{day}}_{{title}}"
    summary: "{{title}}"
    sortable_fields:
      - title
      - date
    view_filters:
      - label: Pubblicati
        field: draft
        pattern: false
      - label: Bozze
        field: draft
        pattern: true
    view_groups:
      - label: "Categoria"
        field: "category"

  - name: events
    label: "Calendario"
    label_singular: "Evento di calendario"
    description: "Eventi del calendario. Potranno essere visualizzati in formato agenda o mese per mese."
    folder: "src/content/events/"
    extension: "md"
    create: true
    delete: true
    media_folder: "/public/assets/calendars"
    public_folder: "/assets/calendars"
    fields:
      - label: Titolo
        name: title
        widget: string
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Data
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        hint: "Seleziona la data dell'evento."
      - label: Orario
        name: time
        widget: datetime
        time_format: "HH:mm:00"
        required: false
        hint: "Inserisci l'orario di inizio."
      - label: Orario di fine
        name: endTime
        widget: datetime
        time_format: "HH:mm:00"
        required: false
        hint: "Inserisci l'orario di fine.  "
      - label: Data di fine
        name: endDate
        widget: datetime
        date_format: YYYY-MM-DD
        required: false
        hint: "Se l'evento dura più giorni, inserisci la data di fine."
      - label: Luogo
        name: location
        widget: string
        required: false
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Descrizione
        name: description
        widget: text
        required: false
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Link
        name: link
        widget: string
        required: false
        pattern: [
          '[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)',
          "Il formato del URL non è corretto."
        ]
        hint: "Collegamento ad una pagina web di approfondimento. Può puntare ad una qualsiasi pagina web, come il sito dell'evento o un modulo di iscrizione."
      - label: Promotori
        name: promoters
        widget: list
        required: false
        field:
          label: Promotore
          name: promoter
          widget: string
        hint: "I promotori dell'evento."
      - label: Locandina
        name: image
        widget: image
        required: false
        choose_url: false
        media_library:
          config:
            multiple: false
            max_file_size: 5000000 # 5MB
      - label: Allegati
        label_singular: Allegato
        name: attachments
        widget: list
        required: false
        fields:
          - label: Titolo
            name: title
            widget: string
            pattern: [
              '[A-Z]{1}[a-z][^A-Z]*',
              "Usa la maiuscola iniziale."
            ]
          - label: Allegato
            name: url
            widget: file
            choose_url: false
            media_library:
              config:
                multiple: false
                max_file_size: 5000000 # 5MB
            hint: "Sono supportati tutti i principali formati di documento, ma prediligi il formato PDF."
        hint: "Allegati dell'evento, come moduli di iscrizione o documenti informativi."
      - label: Bozza
        name: draft
        widget: boolean
        default: false
        hint: "Seleziona questa opzione per salvare l'evento come bozza e non renderlo pubblico."
    identifier_field: title
    slug: "{{year}}{{month}}{{day}}_{{title}}"
    summary: "{{date}} - {{title | upper}}"
    sortable_fields:
      - title
      - date
    view_filters:
      - label: Pubblicati
        field: draft
        pattern: false
      - label: Bozze
        field: draft
        pattern: true
    view_groups:
      - label: "Promotore"
        field: promoters

  - name: associations
    label: Associazioni
    label_singular: Associazione
    description: "Associazioni affiliate. Compariranno in ordine alfabetico nella pagina dedicata."
    folder: src/content/associations/
    extension: md
    create: true
    delete: true
    media_folder: "/public/images/associations"
    public_folder: "/images/associations"
    fields:
      - label: Nome
        name: name
        widget: string
      - label: Nome esteso
        name: longName
        widget: string
        required: false
        hint: "Nome esteso dell'associazione, se diverso dal nome. Sarà visualizzato nella pagina delle associazioni."
      - label: Descrizione
        name: description
        widget: text
        required: false
        hint: "Breve descrizione delle attività e degli scopi dell'associazione."
      - label: Indirizzo
        name: address
        widget: string
        hint: "Preferisci il formato \"Via [Nome della via], [Numero civico], [Città] ([Provincia])\".
          Ad esempio: \"Via Roma, 1, Montebelluna (TV)\"."
        required: false
      - label: Logo
        name: logo
        widget: image
        choose_url: false
        media_library:
          config:
            multiple: false
            max_file_size: 5000000 # 5MB
      - label: Sito web
        name: website
        widget: string
        required: false
        pattern: [
          '[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)',
          "Il formato del URL non è corretto."
        ]
      - label: Telefono
        name: phones
        widget: list
        required: false
        hint: "Numeri di telefono dell'associazione."
        fields:
          - label: Telefono
            name: number
            widget: string
            pattern: [
              '^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$',
              "Usare il formato \"+393XXXXXXXXX\", senza spazi tra le cifre e includendo il codice internazionale (+39 per i numeri italiani)."
            ]
          - label: Nome del contatto
            name: name
            widget: string
            required: false
      - label: Email
        name: emails
        widget: list
        required: false
        hint: "Email di contatto dell'associazione. Può essere un elenco di più email, separate da virgola."
        field:
          label: Email
          name: email
          widget: string
          pattern: [
            '^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$',
            "Il formato dell'email non è corretto."
          ]
      - label: Bozza
        name: draft
        widget: boolean
        default: false
        required: false
    identifier_field: name
    slug: "{{name}}"
    summary: "{{name}}"
    view_filters:
      - label: Pubblicati
        field: draft
        pattern: false
      - label: Bozze
        field: draft
        pattern: true
    view_groups:
      - label: "Sito web"
        field: website
      - label: "Telefono"
        field: phones
      - label: "Email"
        field: emails

  - name: documents
    label: "Documenti"
    label_singular: "Documento"
    description: "Documenti da pubblicare, come regolamenti e comunicati, nell'apposita pagina."
    folder: "src/content/documents/"
    extension: md
    create: true
    delete: true
    media_folder: "/public/assets/documents"
    public_folder: "/assets/documents"
    fields:
      - label: Titolo
        name: title
        widget: string
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Descrizione
        name: description
        widget: string
        required: false
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Categoria
        name: category
        widget: select
        options:
          - "Documento"
          - "Verbale"
          - "Bilancio"
          - "Altro"
        default: "Documento"
        hint: "Categoria del documento."
      - label: Documento
        name: url
        widget: file
        choose_url: false
        media_library:
          config:
            multiple: false
            max_file_size: 5000000 # 5MB
        hint: "Sono supportati tutti i principali formati di documento, ma prediligi il formato PDF."
    identifier_field: title
    slug: "{{title}}"
    summary: "{{title}}"
    view_groups:
      - label: "Categoria"
        field: category

  - name: initiatives
    label: "Iniziative"
    label_singular: "Iniziativa"
    description: "Iniziative organizzate dall'associazione. Compariranno nella pagina iniziale e in \"Chi siamo\"."
    folder: "src/content/initiatives/"
    extension: md
    create: true
    delete: true
    media_folder: "/public/assets/initiatives"
    public_folder: "/assets/initiatives"
    fields:
      - label: Titolo
        name: title
        widget: string
      - label: Descrizione
        name: description
        widget: text
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
        hint: "Descrizione dell'iniziativa."
      - label: Logo
        name: image
        widget: image
        choose_url: false
        media_library:
          config:
            multiple: false
            max_file_size: 5000000 # 5MB

  - name: people
    label: Persone
    label_singular: Persona
    description: "Persone coinvolte nell'organizzazione."
    folder: src/content/people/
    extension: md
    create: true
    delete: true
    media_folder: "/public/assets/portraits"
    public_folder: "/assets/portraits"
    fields:
      - label: Nome
        name: name
        widget: string
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Cognome
        name: surname
        widget: string
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Incarichi
        name: jobs
        widget: relation
        collection: settings
        file: jobs
        value_field: jobs.*.name
        search_fields:
          - jobs.*.name
        display_fields:
          - jobs.*.name
        required: false
        multiple: true
        hint: "Incarichi istituzionali della persona. Configura gli incarichi nelle impostazioni."
      - label: Affiliazione
        name: affiliation
        widget: relation
        collection: associations
        value_field: name
        search_fields:
          - name
          - longName
        display_fields:
          - name
        required: false
        multiple: false
        hint: "Associazione di appartenenza della persona. Configura le associazioni nella pagina delle associazioni."
    slug: "{{surname}}-{{name}}"
    summary: "{{surname | upper}} {{name}}"
    sortable_fields:
      - surname
      - name
    view_groups:
      - label: Associazione
        field: affiliation

  - name: rooms
    label: Stanze
    label_singular: Stanza
    description: "Stanze prenotabili, utilizzate per le riunioni e gli eventi."
    folder: src/content/rooms/
    extension: md
    create: true
    delete: true
    media_folder: "/public/assets/rooms"
    public_folder: "/assets/rooms"
    fields:
      - label: Nome
        name: name
        widget: string
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
      - label: Cal.com ID
        name: id
        widget: string
        default: "cittadinivolontari/"
        hint: "ID della stanza su Cal.com. Ad esempio: \"cittadinivolontari/sala-1\"."
      - label: Descrizione
        name: description
        widget: text
        required: false
        pattern: [
          '[A-Z]{1}[a-z][^A-Z]*',
          "Usa la maiuscola iniziale."
        ]
        hint: "Breve descrizione della stanza e delle sue caratteristiche."
      - label: Prenotabile
        name: bookable
        widget: boolean
        default: true
        hint: "Seleziona questa opzione se la stanza può essere prenotata tramite il calendario."

  - name: pages
    label: Pagine
    label_singular: Pagina
    description: "Pagine del sito."
    files:
      - name: about
        label: Chi siamo
        file: "src/content/pages/about.yml"
        extension: yml
        fields:
          - label: Titolo
            name: title
            widget: hidden
            default: "Chi siamo"
          - label: Paragrafo introduttivo
            name: intro
            widget: markdown
          - label: Paragrafo iniziative (introduzione)
            name: initiatives_intro
            widget: markdown
          - label: Paragrafo iniziative (conclusione)
            name: initiatives_closing
            widget: markdown
      - name: contact
        label: Informazioni di contatto
        file: "src/content/pages/contact.yml"
        extension: yml
        fields:
          - label: Telefono
            name: phone
            widget: string
            required: false
            hint: "Non includere il prefisso internazionale (0039 o +39)."
          - label: E-mail
            name: email
            widget: string
            required: false
            pattern:
              - '^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$'
              - "Il formato dell'email non è corretto."
          - label: Indirizzo (strada)
            name: addressStreet
            widget: string
            required: false
          - label: Indirizzo (città)
            name: addressCity
            widget: string
            default: "31044 Montebelluna (TV)"
            required: false

  - name: settings
    label: Impostazioni
    description: "Impostazioni del sito e dei contenuti."
    files:
      - name: banner
        label: Banner
        label_singular: Banner
        description: "Banner da visualizzare in cima al sito."
        file: "src/content/settings/banner.yml"
        extension: yml
        fields:
          - label: Testo
            name: text
            widget: string
            required: false
            description: "Testo del banner. Se lasciato vuoto, il banner non sarà visualizzato."
          - label: Collegamento
            name: link
            description: "Collegamento al quale il banner deve puntare. Può puntare ad una qualsiasi pagina web. Se lasciato vuoto, il banner non sarà cliccabile."
            widget: string
            required: false
            pattern: [
              '[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)',
              "Il formato del URL non è corretto."
            ]
      - name: jobs
        label: Incarichi
        label_singular: Incarico
        description: ""
        file: "src/content/jobs/jobs.yml"
        extension: yml
        fields:
          - label: Incarichi
            label_singular: Incarico
            name: jobs
            widget: list
            min: 1
            collapsed: true
            minimize_collapsed: false
            fields:
              - label: Nome
                name: name
                widget: string
                pattern: [
                  '[A-Z]{1}[a-z][^A-Z]*',
                  "Usa la maiuscola iniziale."
                ]