- B1: Next.js 15 + Payload CMS 3.0 + Postgres 16, ESLint, Prettier, Husky, Vitest - B2: 9 collections, 6 globals, 12 Page Builder blocks, access control, slugify/revalidate hooks - B3: ezy.com.ua payments, Binotel HMAC webhook, leads API, Telegram bot, Resend email, rate limiting - B4: Tariffs collection with ezy API sync (cron + manual), dynamic pricing source-of-truth - B5: 13 test files covering unit libs and all API routes - B6: Dockerfile multi-stage, docker-compose.prod.yml, nginx.conf SSL, GitHub Actions CI/CD, health endpoint - B7: docs/admin-guide-ua.md (marketer guide), docs/deploy.md (VPS instructions), README quickstart Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
566 B
TypeScript
21 lines
566 B
TypeScript
import type { Block } from 'payload'
|
|
|
|
export const CTABlock: Block = {
|
|
slug: 'cta',
|
|
fields: [
|
|
{ name: 'title', type: 'text', required: true },
|
|
{ name: 'subtitle', type: 'text' },
|
|
{ name: 'ctaLabel', type: 'text', required: true },
|
|
{ name: 'ctaHref', type: 'text', required: true },
|
|
{
|
|
name: 'variant',
|
|
type: 'select',
|
|
defaultValue: 'primary',
|
|
options: [
|
|
{ label: 'Primary', value: 'primary' },
|
|
{ label: 'Secondary', value: 'secondary' },
|
|
{ label: 'Dark', value: 'dark' },
|
|
],
|
|
},
|
|
],
|
|
}
|