summaryrefslogtreecommitdiff
path: root/src/payload/collections/Posts.ts
blob: 6ecf898b93fb56b3f72be1452b65584d2d402274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import type { CollectionConfig } from 'payload';

export const Posts: CollectionConfig = {
  slug: 'posts',
  labels: {
    singular: 'posts',
    plural: 'posts',
  },
  admin: {
    useAsTitle: 'title',
    defaultColumns: ['title', 'status', 'publishedAt', 'updatedAt'],
  },
  access: {
    read: () => true,
  },
  fields: [
    {
      name: 'title',
      label: 'title',
      type: 'text',
      required: true,
    },
    {
      name: 'slug',
      label: 'slug',
      type: 'text',
      required: true,
      unique: true,
      admin: {
        description: 'example:my-first-post',
      },
    },
    {
      name: 'description',
      label: 'description',
      type: 'textarea',
    },
    {
      name: 'content',
      label: 'content',
      type: 'richText',
      required: true,
    },
    {
      name: 'featuredImage',
      label: 'image',
      type: 'upload',
      relationTo: 'media',
    },
    {
      name: 'author',
      label: 'author',
      type: 'text',
      defaultValue: 'Admin',
    },
    {
      name: 'tags',
      label: 'tag',
      type: 'array',
      fields: [
        {
          name: 'tag',
          label: 'tag',
          type: 'text',
        },
      ],
    },
    {
      name: 'status',
      label: 'status',
      type: 'select',
      defaultValue: 'draft',
      options: [
        { label: 'draft', value: 'draft' },
        { label: 'published', value: 'published' },
      ],
      admin: {
        position: 'sidebar',
      },
    },
    {
      name: 'publishedAt',
      label: 'publishedAt',
      type: 'date',
      admin: {
        position: 'sidebar',
        date: {
          pickerAppearance: 'dayAndTime',
        },
      },
    },
  ],
};