import type { Field } from 'payload' import type { AccessOption } from './modules/access/types.js' import type { ContentOption } from './modules/content/types.js' import type { FormsOption } from './modules/forms/types.js' import type { I18nConfig } from './modules/i18n/types.js' import type { PagesOption } from './modules/pages/types.js' import type { SeoOption } from './modules/seo/types.js' /** * Configuration options for the IPAL plugin. * Passed by the client project in payload.config.ts. */ export type IpalOptions = { /** * Role-based access control. Injects a fixed `roles` field * (admin > editor > user) into the client's auth collection. */ access?: AccessOption /** * Collections whose entries live under an archive page — blog posts, case * studies, anything with a listing. Adds an "archive page" assignment per * collection in SiteSettings; the assigned page's localized slug becomes the * URL segment (/pl/artykuly/moj-post, /en/articles/my-post). Requires `pages`. */ content?: ContentOption /** Disable the plugin without uninstalling (keeps DB schema intact) */ enabled?: boolean /** * Forms — form-builder collections (forms, form-submissions) plus the * callable submitForm (Turnstile + persistence + SMTP-from-panel email). */ forms?: FormsOption /** Internationalization — locales, default locale, fallback behavior */ i18n: I18nConfig /** Additional fields injected into SiteIntegrations global */ integrationsFields?: Field[] /** * System-page assignments (homepage, privacy, cookies) in SiteSettings. * Provide the slug of the client's Pages collection to enable. */ pages?: PagesOption /** * SEO — adds meta fields to chosen collections (via @payloadcms/plugin-seo) * and enables locale-aware metadata helpers. */ seo?: SeoOption /** Additional fields injected into SiteSettings global */ siteSettingsFields?: Field[] }