import { defineConfig } from "tinacms";

// Your hosting provider likely exposes this as an environment variable
const branch =
  process.env.GITHUB_BRANCH ||
  process.env.VERCEL_GIT_COMMIT_REF ||
  process.env.HEAD ||
  "main";

export default defineConfig({
  branch,

  // Get this from tina.io
  clientId: process.env.NEXT_PUBLIC_TINA_CLIENT_ID,
  // Get this from tina.io
  token: process.env.TINA_TOKEN,

  build: {
    outputFolder: "admin",
    publicFolder: "public",
  },
  media: {
    tina: {
      mediaRoot: "",
      publicFolder: "public",
    },
  },
  // See docs on content modeling for more info on how to setup new content models: https://tina.io/docs/schema/
  schema: {
    collections: [
      {
        name: "books",
        label: "Library",
        path: 'content/books',
        match: {
          include: "*"
        },
        format: "md",
        fields: [
          {
            type: "string",
            name: "title",
            label: "Title",
            isTitle: true,
            required: true,
          },
          {
            type: 'string',
            name: "author",
            label: "Author",
            required: true
          },
          {
            type: 'number',
            name: "stars",
            label: "Stars",
            required: true
          },
          {
            type: 'datetime',
            name: "readDate",
            label: "Read date",
            required: false
          },
          {
            type: 'string',
            name: "url",
            label: "URL",
            required: false
          },
          {
            type: 'string',
            name: "thumbnailUrl",
            label: "Thumbnail URL",
            required: false
          },
          {
            type: 'string',
            name: "tags",
            label: "Tags",
            required: true
          },
          {
            type: "rich-text",
            name: "body",
            label: "Body",
            isBody: true,
          },
        ]
      },
      {
        name: "writing",
        label: "Writing",
        path: "content/writing",
        match: {
          include: "*"
        },
        format: "md",
        fields: [
          {
            type: "string",
            name: "title",
            label: "Title",
            isTitle: true,
            required: true,
          },
          {
            type: "datetime",
            name: "pubdate",
            label: "Publish Date",
          },
          {
            type: "string",
            ui: {
              component: "textarea"
            },
            name: "desc",
            label: "Description",
          },
          {
            type: "string",
            name: "tags",
            label: "Tags",
            list: true
          },
          {
            type: "rich-text",
            name: "body",
            label: "Body",
            isBody: true,
          },
        ],
      },
    ],
  },
});
