# Конфигурация Sveltia CMS (git-CMS).
# Документация по формату: https://decapcms.org/docs/configuration-options/
# (Sveltia совместим с конфигом Decap CMS)

backend:
  name: github
  repo: D1m7asis/VentFacade39
  branch: main
  # OAuth-прокси: serverless-функция api/auth.js на этом же домене
  base_url: https://admin.vf39.ru
  auth_endpoint: api/auth
  commit_messages:
    create: "content: добавлен {{collection}} «{{slug}}»"
    update: "content: обновлён {{collection}} «{{slug}}»"
    delete: "content: удалён {{collection}} «{{slug}}»"
    uploadMedia: "content: загружен файл {{path}}"
    deleteMedia: "content: удалён файл {{path}}"

# Куда складываются загруженные фотографии
media_folder: "frontend/public/images/uploads"
public_folder: "/images/uploads"

# Язык интерфейса
locale: ru

collections:
  # ── Объекты (портфолио) ──────────────────────────────────────────────
  - name: objects
    label: Объекты
    label_singular: Объект
    folder: frontend/src/content/objects
    format: json
    extension: json
    create: true
    identifier_field: title
    slug: "{{fields.slug}}"
    summary: "{{title}}"
    fields:
      - { name: title, label: Название объекта, widget: string, hint: "Например: ЖК «Балтийский берег»" }
      - { name: slug, label: Адрес страницы (латиницей), widget: string, pattern: ["^[a-z0-9-]+$", "только строчные латинские буквы, цифры и дефис"], hint: "Например: zhk-baltiyskiy-bereg. После публикации не менять — изменится ссылка на страницу." }
      - { name: city, label: Город, widget: string, default: "Калининград" }
      - { name: area_m2, label: Площадь (м²), widget: number, value_type: int }
      - { name: material, label: Материал облицовки, widget: string, hint: "Например: Керамогранитная облицовка 600×600 мм" }
      - { name: system, label: Фасадная система, widget: string, hint: "Например: Оцинкованная фасадная подсистема" }
      - { name: duration, label: Срок выполнения, widget: string, hint: "Например: 6 месяцев" }
      - { name: description, label: Описание проекта, widget: text }
      - { name: cover_image, label: Обложка (фото), widget: image }
      - { name: gallery_images, label: Галерея (фото), widget: list, field: { name: image, label: Фото, widget: image }, required: false }
      - { name: meta_title, label: "SEO: заголовок страницы", widget: string, required: false }
      - { name: meta_description, label: "SEO: описание страницы", widget: text, required: false }
      - { name: is_featured, label: Показывать на главной, widget: boolean, default: false, hint: "На главной выводятся максимум 3 объекта" }
      - { name: created_at, label: Дата завершения, widget: datetime, format: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", hint: "Определяет порядок: новые объекты выше" }

  # ── Услуги ───────────────────────────────────────────────────────────
  - name: services
    label: Услуги
    label_singular: Услуга
    folder: frontend/src/content/services
    format: json
    extension: json
    create: true
    identifier_field: title
    slug: "{{fields.slug}}"
    summary: "{{title}}"
    fields:
      - { name: title, label: Название услуги, widget: string }
      - { name: slug, label: Адрес страницы (латиницей), widget: string, pattern: ["^[a-z0-9-]+$", "только строчные латинские буквы, цифры и дефис"], hint: "После публикации не менять — изменится ссылка на страницу." }
      - { name: short_description, label: Краткое описание (карточка), widget: text }
      - { name: full_description, label: Полное описание (страница услуги), widget: text }
      - { name: cover_image, label: Обложка, widget: image, required: false }
      - { name: meta_title, label: "SEO: заголовок страницы", widget: string, required: false }
      - { name: meta_description, label: "SEO: описание страницы", widget: text, required: false }
      - { name: sort, label: Порядок в списке, widget: number, value_type: int, default: 10 }
      - { name: is_active, label: Показывать на сайте, widget: boolean, default: true }

  # ── Вопросы и ответы ─────────────────────────────────────────────────
  - name: faq
    label: Вопросы и ответы
    label_singular: Вопрос
    folder: frontend/src/content/faq
    format: json
    extension: json
    create: true
    identifier_field: question
    summary: "{{question}}"
    fields:
      - { name: question, label: Вопрос, widget: string }
      - { name: answer, label: Ответ, widget: text }
      - { name: sort, label: Порядок в списке, widget: number, value_type: int, default: 10 }
      - { name: is_active, label: Показывать на сайте, widget: boolean, default: true }

  # ── Отзывы ───────────────────────────────────────────────────────────
  - name: reviews
    label: Отзывы
    label_singular: Отзыв
    folder: frontend/src/content/reviews
    format: json
    extension: json
    create: true
    identifier_field: author_name
    summary: "{{author_name}}"
    fields:
      - { name: author_name, label: Автор (должность, тип компании), widget: string, hint: "Например: Руководитель проекта, строительная компания" }
      - { name: text, label: Текст отзыва, widget: text }
      - { name: rating, label: Оценка (1–5), widget: number, value_type: int, min: 1, max: 5, default: 5 }
      - { name: source, label: Тип заказчика, widget: select, options: ["Генподрядчик", "Коммерческий заказчик", "Частный заказчик", "Застройщик"] }
      - { name: is_active, label: Показывать на сайте, widget: boolean, default: true }

  # ── Настройки сайта (один файл) ──────────────────────────────────────
  - name: settings
    label: Настройки сайта
    files:
      - name: site
        label: Контакты и SEO
        file: frontend/src/content/settings.json
        fields:
          - { name: company_name, label: Название компании (юридическое), widget: string }
          - { name: phone, label: Телефон, widget: string }
          - { name: email, label: Электронная почта, widget: string }
          - { name: telegram, label: Ссылка Telegram, widget: string }
          - { name: whatsapp, label: Ссылка WhatsApp, widget: string }
          - { name: max, label: Ссылка на профиль MAX, widget: string, required: false, hint: "Из приложения MAX: аватар → QR-код → Поделиться. Если пусто — кнопки MAX на сайте скрыты." }
          - { name: address, label: Адрес офиса, widget: string }
          - { name: working_hours, label: Режим работы, widget: string }
          - { name: city, label: Город, widget: string }
          - { name: seo_default_title, label: "SEO: заголовок по умолчанию", widget: string }
          - { name: seo_default_description, label: "SEO: описание по умолчанию", widget: text }
