import { CollectionConfig } from 'payload'; export const FailedPayments: CollectionConfig = { slug: 'failed-payments', admin: { useAsTitle: 'id', defaultColumns: ['stripePaymentIntentId', 'amount', 'errorCode', 'createdAt'], group: 'E-Commerce', }, fields: [ { name: 'stripePaymentIntentId', type: 'text', unique: true, required: true, index: true, admin: { readOnly: true, }, }, { name: 'customerId', type: 'text', index: true, }, { name: 'amount', type: 'number', required: true, admin: { description: 'Amount in cents', }, }, { name: 'currency', type: 'text', required: true, }, { name: 'error', type: 'textarea', required: true, }, { name: 'errorCode', type: 'text', }, { name: 'retryCount', type: 'number', defaultValue: 0, min: 0, }, { name: 'resolved', type: 'checkbox', defaultValue: false, index: true, }, { name: 'resolvedAt', type: 'date', }, { name: 'notes', type: 'textarea', admin: { description: 'Internal notes about this failure', }, }, ], access: { read: ({ req }) => req.user?.role === 'admin' || req.user?.role === 'super-admin', create: ({ req }) => req.user?.role === 'admin' || req.user?.role === 'super-admin', update: ({ req }) => req.user?.role === 'admin' || req.user?.role === 'super-admin', delete: ({ req }) => req.user?.role === 'super-admin', }, };