feat(cms): clarify sponsor ordering

This commit is contained in:
syntaxbullet
2026-07-31 16:52:49 +02:00
parent 30efb4b36e
commit 95037e9908
5 changed files with 129 additions and 13 deletions

View File

@@ -1,8 +1,14 @@
import type { CollectionConfig } from 'payload'
import type { CollectionConfig, NumberFieldSingleValidation } from 'payload'
import { authenticated } from '@/access/authenticated'
import { authenticatedOrPublished } from '@/access/authenticatedOrPublished'
import { populatePublishedAt } from '@/hooks/populatePublishedAt'
import { sponsorTierNumbers } from '@/spa/sponsorHierarchy'
export const validatePartnerTier: NumberFieldSingleValidation = (value) =>
typeof value === 'number' && sponsorTierNumbers.some((tier) => tier === value)
? true
: 'Tier must be one of 1, 2, or 3.'
export const Partners: CollectionConfig = {
slug: 'partners',
@@ -17,7 +23,15 @@ export const Partners: CollectionConfig = {
update: authenticated,
},
admin: {
defaultColumns: ['name', 'tier', 'sortOrder', 'active', 'showOnHomepage', 'updatedAt'],
defaultColumns: [
'name',
'tier',
'sortOrder',
'_status',
'active',
'showOnHomepage',
'updatedAt',
],
group: 'Inhalte',
useAsTitle: 'name',
},
@@ -40,14 +54,21 @@ export const Partners: CollectionConfig = {
name: 'tier',
type: 'number',
defaultValue: 3,
min: 1,
max: 3,
required: true,
validate: validatePartnerTier,
admin: {
description: 'Only tiers 1, 2, and 3 are supported.',
step: 1,
},
},
{
name: 'sortOrder',
type: 'number',
defaultValue: 100,
admin: {
description: 'Lower numbers appear earlier on partner surfaces.',
description: 'Lower numbers appear earlier within the selected tier on partner surfaces.',
},
},
{
@@ -68,7 +89,8 @@ export const Partners: CollectionConfig = {
relationTo: 'media',
required: true,
admin: {
description: 'Partner logo displayed on partner cards, the detail modal, and the homepage ticker.',
description:
'Partner logo displayed on partner cards, the detail modal, and the homepage ticker.',
},
},
{

View File

@@ -2171,9 +2171,12 @@ export interface Partner {
* Stable machine-readable key used when migrating or matching partner records.
*/
stableId?: string | null;
/**
* Only tiers 1, 2, and 3 are supported.
*/
tier: number;
/**
* Lower numbers appear earlier on partner surfaces.
* Lower numbers appear earlier within the selected tier on partner surfaces.
*/
sortOrder?: number | null;
active?: boolean | null;