Authors.ts 977 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import type { CollectionConfig } from 'payload'
  2. export const Authors: CollectionConfig = {
  3. slug: 'authors',
  4. admin: {
  5. useAsTitle: 'name',
  6. defaultColumns: ['name', 'socialMediaLink'],
  7. },
  8. access: {
  9. read: () => true, // Public read
  10. create: ({ req: { user } }) => Boolean(user), // Only authenticated users (admin)
  11. update: ({ req: { user } }) => Boolean(user), // Only authenticated users (admin)
  12. delete: ({ req: { user } }) => Boolean(user), // Only authenticated users (admin)
  13. },
  14. fields: [
  15. {
  16. name: 'name',
  17. label: 'Author',
  18. type: 'text',
  19. required: true,
  20. },
  21. {
  22. name: 'image',
  23. label: 'Profile Image',
  24. type: 'upload',
  25. relationTo: 'media',
  26. required: true,
  27. },
  28. {
  29. name: 'description',
  30. label: 'Description',
  31. type: 'textarea',
  32. required: true,
  33. },
  34. {
  35. name: 'socialMediaLink',
  36. label: 'Social Media URL',
  37. type: 'text',
  38. },
  39. ],
  40. }