Axil_website/src/payload-types.ts
Vadym Samoilenko 3f6dfe36b1 feat: full CMS integration — connect all content to Payload admin panel
- Connect homepage, blog, services, header, footer to Payload CMS via local API
- Add HomePage global with 7 editorial sections (hero, painPoints, solution, whyAxil, audience, process, finalCta)
- Add ServerHeader/ServerFooter async wrappers with unstable_cache + tag-based ISR revalidation
- Rewrite blog/[slug] and services/[slug] pages to fetch from CMS with fallbacks
- Add seed script (src/lib/seed.ts) to populate all collections and globals from hardcoded defaults
- Restructure app into (site)/ route group to fix Payload admin hydration conflicts
- Make root layout a passthrough; (site)/layout.tsx owns html/body/fonts
- Restrict user creation/update/delete to admin role only
- Fix migration imports: type MigrateUpArgs/Down from @payloadcms/db-postgres
- Wrap revalidateTag dynamic imports in try/catch for seed/CLI compatibility
- Skip migrations in dev mode (Payload handles schema push automatically)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 21:19:44 +00:00

1696 lines
37 KiB
TypeScript

/* tslint:disable */
/* eslint-disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
/**
* Supported timezones in IANA format.
*
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "supportedTimezones".
*/
export type SupportedTimezones =
| 'Pacific/Midway'
| 'Pacific/Niue'
| 'Pacific/Honolulu'
| 'Pacific/Rarotonga'
| 'America/Anchorage'
| 'Pacific/Gambier'
| 'America/Los_Angeles'
| 'America/Tijuana'
| 'America/Denver'
| 'America/Phoenix'
| 'America/Chicago'
| 'America/Guatemala'
| 'America/New_York'
| 'America/Bogota'
| 'America/Caracas'
| 'America/Santiago'
| 'America/Buenos_Aires'
| 'America/Sao_Paulo'
| 'Atlantic/South_Georgia'
| 'Atlantic/Azores'
| 'Atlantic/Cape_Verde'
| 'Europe/London'
| 'Europe/Berlin'
| 'Africa/Lagos'
| 'Europe/Athens'
| 'Africa/Cairo'
| 'Europe/Moscow'
| 'Asia/Riyadh'
| 'Asia/Dubai'
| 'Asia/Baku'
| 'Asia/Karachi'
| 'Asia/Tashkent'
| 'Asia/Calcutta'
| 'Asia/Dhaka'
| 'Asia/Almaty'
| 'Asia/Jakarta'
| 'Asia/Bangkok'
| 'Asia/Shanghai'
| 'Asia/Singapore'
| 'Asia/Tokyo'
| 'Asia/Seoul'
| 'Australia/Brisbane'
| 'Australia/Sydney'
| 'Pacific/Guam'
| 'Pacific/Noumea'
| 'Pacific/Auckland'
| 'Pacific/Fiji';
export interface Config {
auth: {
users: UserAuthOperations;
};
blocks: {};
collections: {
users: User;
media: Media;
services: Service;
categories: Category;
posts: Post;
'team-members': TeamMember;
testimonials: Testimonial;
faqs: Faq;
forms: Form;
'form-submissions': FormSubmission;
'payload-kv': PayloadKv;
'payload-locked-documents': PayloadLockedDocument;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
collectionsJoins: {};
collectionsSelect: {
users: UsersSelect<false> | UsersSelect<true>;
media: MediaSelect<false> | MediaSelect<true>;
services: ServicesSelect<false> | ServicesSelect<true>;
categories: CategoriesSelect<false> | CategoriesSelect<true>;
posts: PostsSelect<false> | PostsSelect<true>;
'team-members': TeamMembersSelect<false> | TeamMembersSelect<true>;
testimonials: TestimonialsSelect<false> | TestimonialsSelect<true>;
faqs: FaqsSelect<false> | FaqsSelect<true>;
forms: FormsSelect<false> | FormsSelect<true>;
'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>;
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
'payload-locked-documents':
| PayloadLockedDocumentsSelect<false>
| PayloadLockedDocumentsSelect<true>;
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
};
db: {
defaultIDType: number;
};
fallbackLocale: null;
globals: {
navigation: Navigation;
footer: Footer;
'site-settings': SiteSetting;
'home-page': HomePage;
};
globalsSelect: {
navigation: NavigationSelect<false> | NavigationSelect<true>;
footer: FooterSelect<false> | FooterSelect<true>;
'site-settings': SiteSettingsSelect<false> | SiteSettingsSelect<true>;
'home-page': HomePageSelect<false> | HomePageSelect<true>;
};
locale: null;
user: User;
jobs: {
tasks: unknown;
workflows: unknown;
};
}
export interface UserAuthOperations {
forgotPassword: {
email: string;
password: string;
};
login: {
email: string;
password: string;
};
registerFirstUser: {
email: string;
password: string;
};
unlock: {
email: string;
password: string;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: number;
name: string;
role: 'admin' | 'editor';
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string | null;
resetPasswordExpiration?: string | null;
salt?: string | null;
hash?: string | null;
loginAttempts?: number | null;
lockUntil?: string | null;
sessions?:
| {
id: string;
createdAt?: string | null;
expiresAt: string;
}[]
| null;
password?: string | null;
collection: 'users';
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media".
*/
export interface Media {
id: number;
alt: string;
caption?: string | null;
updatedAt: string;
createdAt: string;
url?: string | null;
thumbnailURL?: string | null;
filename?: string | null;
mimeType?: string | null;
filesize?: number | null;
width?: number | null;
height?: number | null;
focalX?: number | null;
focalY?: number | null;
sizes?: {
thumbnail?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
card?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
hero?: {
url?: string | null;
width?: number | null;
height?: number | null;
mimeType?: string | null;
filesize?: number | null;
filename?: string | null;
};
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "services".
*/
export interface Service {
id: number;
title: string;
/**
* URL-friendly identifier (auto-generated from title)
*/
slug: string;
icon: 'bookkeeping' | 'tax' | 'payroll' | 'vat';
/**
* Short subtitle shown on cards and hero
*/
tagline?: string | null;
description?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
whatsIncluded?:
| {
item: string;
id?: string | null;
}[]
| null;
whoItsFor?:
| {
audience?: ('sole-trader' | 'limited-company' | 'startup' | 'other') | null;
description?: string | null;
id?: string | null;
}[]
| null;
howItWorks?:
| {
step: number;
title: string;
description: string;
id?: string | null;
}[]
| null;
faq?:
| {
question: string;
answer?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
}[]
| null;
relatedTestimonials?: (number | Testimonial)[] | null;
seo?: {
metaTitle?: string | null;
metaDescription?: string | null;
ogImage?: (number | null) | Media;
};
publishedAt?: string | null;
status?: ('draft' | 'published') | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "testimonials".
*/
export interface Testimonial {
id: number;
clientName: string;
businessName?: string | null;
businessType?: ('sole-trader' | 'limited-company' | 'startup' | 'other') | null;
rating?: ('1' | '2' | '3' | '4' | '5') | null;
quote: string;
photo?: (number | null) | Media;
source?: ('google' | 'manual') | null;
service?: (number | null) | Service;
/**
* Show in homepage carousel
*/
featured?: boolean | null;
publishedAt?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "categories".
*/
export interface Category {
id: number;
name: string;
slug: string;
/**
* Hex colour for tag display (e.g. #3CC68A)
*/
colour?: string | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "posts".
*/
export interface Post {
id: number;
title: string;
slug: string;
author?: (number | null) | User;
category?: (number | null) | Category;
coverImage?: (number | null) | Media;
/**
* Short summary shown on listing pages (max 150 chars)
*/
excerpt?: string | null;
content?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
/**
* Auto-calculated on save (minutes)
*/
readingTime?: number | null;
publishedAt?: string | null;
status?: ('draft' | 'published' | 'scheduled') | null;
tags?:
| {
tag?: string | null;
id?: string | null;
}[]
| null;
seo?: {
metaTitle?: string | null;
metaDescription?: string | null;
ogImage?: (number | null) | Media;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "team-members".
*/
export interface TeamMember {
id: number;
name: string;
role?: string | null;
/**
* e.g. "ACCA, MAAT"
*/
qualifications?: string | null;
bio?: string | null;
photo?: (number | null) | Media;
linkedIn?: string | null;
/**
* Display order (lower = first)
*/
order?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "faqs".
*/
export interface Faq {
id: number;
question: string;
answer?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
service?: (number | null) | Service;
/**
* Show on generic FAQ sections (not service-specific)
*/
global?: boolean | null;
order?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "forms".
*/
export interface Form {
id: number;
title: string;
fields?:
| (
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
defaultValue?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'checkbox';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'country';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'email';
}
| {
message?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
blockName?: string | null;
blockType: 'message';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'number';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
placeholder?: string | null;
options?:
| {
label: string;
value: string;
id?: string | null;
}[]
| null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'select';
}
| {
name: string;
label?: string | null;
width?: number | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'state';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'text';
}
| {
name: string;
label?: string | null;
width?: number | null;
defaultValue?: string | null;
required?: boolean | null;
id?: string | null;
blockName?: string | null;
blockType: 'textarea';
}
)[]
| null;
submitButtonLabel?: string | null;
/**
* Choose whether to display an on-page message or redirect to a different page after they submit the form.
*/
confirmationType?: ('message' | 'redirect') | null;
confirmationMessage?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
redirect?: {
url: string;
};
/**
* Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email.
*/
emails?:
| {
emailTo?: string | null;
cc?: string | null;
bcc?: string | null;
replyTo?: string | null;
emailFrom?: string | null;
subject: string;
/**
* Enter the message that should be sent in this email.
*/
message?: {
root: {
type: string;
children: {
type: any;
version: number;
[k: string]: unknown;
}[];
direction: ('ltr' | 'rtl') | null;
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
indent: number;
version: number;
};
[k: string]: unknown;
} | null;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "form-submissions".
*/
export interface FormSubmission {
id: number;
form: number | Form;
submissionData?:
| {
field: string;
value: string;
id?: string | null;
}[]
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv".
*/
export interface PayloadKv {
id: number;
key: string;
data:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents".
*/
export interface PayloadLockedDocument {
id: number;
document?:
| ({
relationTo: 'users';
value: number | User;
} | null)
| ({
relationTo: 'media';
value: number | Media;
} | null)
| ({
relationTo: 'services';
value: number | Service;
} | null)
| ({
relationTo: 'categories';
value: number | Category;
} | null)
| ({
relationTo: 'posts';
value: number | Post;
} | null)
| ({
relationTo: 'team-members';
value: number | TeamMember;
} | null)
| ({
relationTo: 'testimonials';
value: number | Testimonial;
} | null)
| ({
relationTo: 'faqs';
value: number | Faq;
} | null)
| ({
relationTo: 'forms';
value: number | Form;
} | null)
| ({
relationTo: 'form-submissions';
value: number | FormSubmission;
} | null);
globalSlug?: string | null;
user: {
relationTo: 'users';
value: number | User;
};
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences".
*/
export interface PayloadPreference {
id: number;
user: {
relationTo: 'users';
value: number | User;
};
key?: string | null;
value?:
| {
[k: string]: unknown;
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations".
*/
export interface PayloadMigration {
id: number;
name?: string | null;
batch?: number | null;
updatedAt: string;
createdAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users_select".
*/
export interface UsersSelect<T extends boolean = true> {
name?: T;
role?: T;
updatedAt?: T;
createdAt?: T;
email?: T;
resetPasswordToken?: T;
resetPasswordExpiration?: T;
salt?: T;
hash?: T;
loginAttempts?: T;
lockUntil?: T;
sessions?:
| T
| {
id?: T;
createdAt?: T;
expiresAt?: T;
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "media_select".
*/
export interface MediaSelect<T extends boolean = true> {
alt?: T;
caption?: T;
updatedAt?: T;
createdAt?: T;
url?: T;
thumbnailURL?: T;
filename?: T;
mimeType?: T;
filesize?: T;
width?: T;
height?: T;
focalX?: T;
focalY?: T;
sizes?:
| T
| {
thumbnail?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
card?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
hero?:
| T
| {
url?: T;
width?: T;
height?: T;
mimeType?: T;
filesize?: T;
filename?: T;
};
};
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "services_select".
*/
export interface ServicesSelect<T extends boolean = true> {
title?: T;
slug?: T;
icon?: T;
tagline?: T;
description?: T;
whatsIncluded?:
| T
| {
item?: T;
id?: T;
};
whoItsFor?:
| T
| {
audience?: T;
description?: T;
id?: T;
};
howItWorks?:
| T
| {
step?: T;
title?: T;
description?: T;
id?: T;
};
faq?:
| T
| {
question?: T;
answer?: T;
id?: T;
};
relatedTestimonials?: T;
seo?:
| T
| {
metaTitle?: T;
metaDescription?: T;
ogImage?: T;
};
publishedAt?: T;
status?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "categories_select".
*/
export interface CategoriesSelect<T extends boolean = true> {
name?: T;
slug?: T;
colour?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "posts_select".
*/
export interface PostsSelect<T extends boolean = true> {
title?: T;
slug?: T;
author?: T;
category?: T;
coverImage?: T;
excerpt?: T;
content?: T;
readingTime?: T;
publishedAt?: T;
status?: T;
tags?:
| T
| {
tag?: T;
id?: T;
};
seo?:
| T
| {
metaTitle?: T;
metaDescription?: T;
ogImage?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "team-members_select".
*/
export interface TeamMembersSelect<T extends boolean = true> {
name?: T;
role?: T;
qualifications?: T;
bio?: T;
photo?: T;
linkedIn?: T;
order?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "testimonials_select".
*/
export interface TestimonialsSelect<T extends boolean = true> {
clientName?: T;
businessName?: T;
businessType?: T;
rating?: T;
quote?: T;
photo?: T;
source?: T;
service?: T;
featured?: T;
publishedAt?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "faqs_select".
*/
export interface FaqsSelect<T extends boolean = true> {
question?: T;
answer?: T;
service?: T;
global?: T;
order?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "forms_select".
*/
export interface FormsSelect<T extends boolean = true> {
title?: T;
fields?:
| T
| {
checkbox?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
defaultValue?: T;
id?: T;
blockName?: T;
};
country?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
email?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
message?:
| T
| {
message?: T;
id?: T;
blockName?: T;
};
number?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
select?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
placeholder?: T;
options?:
| T
| {
label?: T;
value?: T;
id?: T;
};
required?: T;
id?: T;
blockName?: T;
};
state?:
| T
| {
name?: T;
label?: T;
width?: T;
required?: T;
id?: T;
blockName?: T;
};
text?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
textarea?:
| T
| {
name?: T;
label?: T;
width?: T;
defaultValue?: T;
required?: T;
id?: T;
blockName?: T;
};
};
submitButtonLabel?: T;
confirmationType?: T;
confirmationMessage?: T;
redirect?:
| T
| {
url?: T;
};
emails?:
| T
| {
emailTo?: T;
cc?: T;
bcc?: T;
replyTo?: T;
emailFrom?: T;
subject?: T;
message?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "form-submissions_select".
*/
export interface FormSubmissionsSelect<T extends boolean = true> {
form?: T;
submissionData?:
| T
| {
field?: T;
value?: T;
id?: T;
};
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-kv_select".
*/
export interface PayloadKvSelect<T extends boolean = true> {
key?: T;
data?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-locked-documents_select".
*/
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
document?: T;
globalSlug?: T;
user?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-preferences_select".
*/
export interface PayloadPreferencesSelect<T extends boolean = true> {
user?: T;
key?: T;
value?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "payload-migrations_select".
*/
export interface PayloadMigrationsSelect<T extends boolean = true> {
name?: T;
batch?: T;
updatedAt?: T;
createdAt?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "navigation".
*/
export interface Navigation {
id: number;
items?:
| {
label: string;
href?: string | null;
isDropdown?: boolean | null;
children?:
| {
label: string;
href: string;
icon?: string | null;
description?: string | null;
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "footer".
*/
export interface Footer {
id: number;
columns?:
| {
heading: string;
links?:
| {
label: string;
href: string;
id?: string | null;
}[]
| null;
id?: string | null;
}[]
| null;
contactInfo?: {
address?: string | null;
phone?: string | null;
email?: string | null;
};
socialLinks?: {
linkedIn?: string | null;
facebook?: string | null;
instagram?: string | null;
};
legalLinks?:
| {
label: string;
href: string;
id?: string | null;
}[]
| null;
copyrightText?: string | null;
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings".
*/
export interface SiteSetting {
id: number;
brand?: {
siteName?: string | null;
tagline?: string | null;
logo?: (number | null) | Media;
logoDark?: (number | null) | Media;
favicon?: (number | null) | Media;
};
contact?: {
address?: string | null;
phone?: string | null;
email?: string | null;
officeHours?: string | null;
};
social?: {
linkedIn?: string | null;
facebook?: string | null;
instagram?: string | null;
};
analytics?: {
googleAnalyticsId?: string | null;
googleTagManagerId?: string | null;
facebookPixelId?: string | null;
};
booking?: {
calendlyUrl?: string | null;
calendlyInline?: boolean | null;
};
chatBot?: {
chatBotMode?: ('disabled' | 'ai' | 'livechat' | 'leadcapture') | null;
chatBotCustomCode?: string | null;
};
webhooks?:
| {
name: string;
url: string;
active?: boolean | null;
id?: string | null;
}[]
| null;
notificationEmail?: string | null;
seoDefaults?: {
defaultMetaTitle?: string | null;
defaultMetaDescription?: string | null;
defaultOgImage?: (number | null) | Media;
};
scripts?: {
headerScripts?: string | null;
footerScripts?: string | null;
};
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "home-page".
*/
export interface HomePage {
id: number;
hero?: {
eyebrow?: string | null;
body?: string | null;
ctaPrimary?: string | null;
ctaSecondary?: string | null;
statsRating?: string | null;
statsSource?: string | null;
trustItems?:
| {
item: string;
id?: string | null;
}[]
| null;
trustStrip?:
| {
item: string;
id?: string | null;
}[]
| null;
};
painPoints?: {
overline?: string | null;
headline?: string | null;
statValue?: string | null;
statDescription?: string | null;
statSource?: string | null;
pains?:
| {
title: string;
body: string;
id?: string | null;
}[]
| null;
};
solution?: {
overline?: string | null;
headline?: string | null;
body?: string | null;
checklist?:
| {
item: string;
id?: string | null;
}[]
| null;
features?:
| {
title: string;
body: string;
id?: string | null;
}[]
| null;
};
whyAxil?: {
overline?: string | null;
headline?: string | null;
stats?:
| {
prefix?: string | null;
value: number;
suffix?: string | null;
label: string;
id?: string | null;
}[]
| null;
usps?:
| {
icon?: ('shield-check' | 'receipt' | 'person-circle' | 'cloud') | null;
title: string;
body: string;
id?: string | null;
}[]
| null;
};
audience?: {
overline?: string | null;
headline?: string | null;
cards?:
| {
title: string;
tagline?: string | null;
body?: string | null;
perks?:
| {
perk: string;
id?: string | null;
}[]
| null;
featured?: boolean | null;
href?: string | null;
cta?: string | null;
id?: string | null;
}[]
| null;
};
process?: {
overline?: string | null;
headline?: string | null;
body?: string | null;
ctaLabel?: string | null;
steps?:
| {
icon?: ('phone' | 'zap' | 'file-check' | 'trending-up') | null;
title: string;
description: string;
id?: string | null;
}[]
| null;
};
finalCta?: {
overline?: string | null;
headline?: string | null;
body?: string | null;
ctaPrimary?: string | null;
ctaSecondary?: string | null;
reassurances?:
| {
item: string;
id?: string | null;
}[]
| null;
};
updatedAt?: string | null;
createdAt?: string | null;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "navigation_select".
*/
export interface NavigationSelect<T extends boolean = true> {
items?:
| T
| {
label?: T;
href?: T;
isDropdown?: T;
children?:
| T
| {
label?: T;
href?: T;
icon?: T;
description?: T;
id?: T;
};
id?: T;
};
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "footer_select".
*/
export interface FooterSelect<T extends boolean = true> {
columns?:
| T
| {
heading?: T;
links?:
| T
| {
label?: T;
href?: T;
id?: T;
};
id?: T;
};
contactInfo?:
| T
| {
address?: T;
phone?: T;
email?: T;
};
socialLinks?:
| T
| {
linkedIn?: T;
facebook?: T;
instagram?: T;
};
legalLinks?:
| T
| {
label?: T;
href?: T;
id?: T;
};
copyrightText?: T;
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "site-settings_select".
*/
export interface SiteSettingsSelect<T extends boolean = true> {
brand?:
| T
| {
siteName?: T;
tagline?: T;
logo?: T;
logoDark?: T;
favicon?: T;
};
contact?:
| T
| {
address?: T;
phone?: T;
email?: T;
officeHours?: T;
};
social?:
| T
| {
linkedIn?: T;
facebook?: T;
instagram?: T;
};
analytics?:
| T
| {
googleAnalyticsId?: T;
googleTagManagerId?: T;
facebookPixelId?: T;
};
booking?:
| T
| {
calendlyUrl?: T;
calendlyInline?: T;
};
chatBot?:
| T
| {
chatBotMode?: T;
chatBotCustomCode?: T;
};
webhooks?:
| T
| {
name?: T;
url?: T;
active?: T;
id?: T;
};
notificationEmail?: T;
seoDefaults?:
| T
| {
defaultMetaTitle?: T;
defaultMetaDescription?: T;
defaultOgImage?: T;
};
scripts?:
| T
| {
headerScripts?: T;
footerScripts?: T;
};
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "home-page_select".
*/
export interface HomePageSelect<T extends boolean = true> {
hero?:
| T
| {
eyebrow?: T;
body?: T;
ctaPrimary?: T;
ctaSecondary?: T;
statsRating?: T;
statsSource?: T;
trustItems?:
| T
| {
item?: T;
id?: T;
};
trustStrip?:
| T
| {
item?: T;
id?: T;
};
};
painPoints?:
| T
| {
overline?: T;
headline?: T;
statValue?: T;
statDescription?: T;
statSource?: T;
pains?:
| T
| {
title?: T;
body?: T;
id?: T;
};
};
solution?:
| T
| {
overline?: T;
headline?: T;
body?: T;
checklist?:
| T
| {
item?: T;
id?: T;
};
features?:
| T
| {
title?: T;
body?: T;
id?: T;
};
};
whyAxil?:
| T
| {
overline?: T;
headline?: T;
stats?:
| T
| {
prefix?: T;
value?: T;
suffix?: T;
label?: T;
id?: T;
};
usps?:
| T
| {
icon?: T;
title?: T;
body?: T;
id?: T;
};
};
audience?:
| T
| {
overline?: T;
headline?: T;
cards?:
| T
| {
title?: T;
tagline?: T;
body?: T;
perks?:
| T
| {
perk?: T;
id?: T;
};
featured?: T;
href?: T;
cta?: T;
id?: T;
};
};
process?:
| T
| {
overline?: T;
headline?: T;
body?: T;
ctaLabel?: T;
steps?:
| T
| {
icon?: T;
title?: T;
description?: T;
id?: T;
};
};
finalCta?:
| T
| {
overline?: T;
headline?: T;
body?: T;
ctaPrimary?: T;
ctaSecondary?: T;
reassurances?:
| T
| {
item?: T;
id?: T;
};
};
updatedAt?: T;
createdAt?: T;
globalType?: T;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "auth".
*/
export interface Auth {
[k: string]: unknown;
}
declare module 'payload' {
export interface GeneratedTypes extends Config {}
}