/* 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; posts: Post; inquiries: Inquiry; redirects: Redirect; "context-files": ContextFile; "crm-accounts": CrmAccount; "crm-contacts": CrmContact; "crm-topics": CrmTopic; "crm-interactions": CrmInteraction; projects: Project; "payload-kv": PayloadKv; "payload-locked-documents": PayloadLockedDocument; "payload-preferences": PayloadPreference; "payload-migrations": PayloadMigration; }; collectionsJoins: { "crm-accounts": { topics: "crm-topics"; contacts: "crm-contacts"; interactions: "crm-interactions"; projects: "projects"; }; "crm-contacts": { interactions: "crm-interactions"; }; "crm-topics": { interactions: "crm-interactions"; }; }; collectionsSelect: { users: UsersSelect | UsersSelect; media: MediaSelect | MediaSelect; posts: PostsSelect | PostsSelect; inquiries: InquiriesSelect | InquiriesSelect; redirects: RedirectsSelect | RedirectsSelect; "context-files": ContextFilesSelect | ContextFilesSelect; "crm-accounts": CrmAccountsSelect | CrmAccountsSelect; "crm-contacts": CrmContactsSelect | CrmContactsSelect; "crm-topics": CrmTopicsSelect | CrmTopicsSelect; "crm-interactions": | CrmInteractionsSelect | CrmInteractionsSelect; projects: ProjectsSelect | ProjectsSelect; "payload-kv": PayloadKvSelect | PayloadKvSelect; "payload-locked-documents": | PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect; "payload-preferences": | PayloadPreferencesSelect | PayloadPreferencesSelect; "payload-migrations": | PayloadMigrationsSelect | PayloadMigrationsSelect; }; db: { defaultIDType: number; }; fallbackLocale: null; globals: { "ai-settings": AiSetting; }; globalsSelect: { "ai-settings": AiSettingsSelect | AiSettingsSelect; }; 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; 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; prefix?: 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; }; tablet?: { 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` "posts". */ export interface Post { id: number; title: string; slug: string; description: string; /** * Set a future date and save as 'Published' to schedule this post. It will not appear on the frontend until this date is reached. */ date: string; tags: { /** * Kategorisiere diesen Post mit einem eindeutigen Tag */ tag?: string | null; id?: string | null; }[]; /** * The main hero image for the blog post. */ featuredImage?: (number | null) | Media; 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; updatedAt: string; createdAt: string; _status?: ("draft" | "published") | null; } /** * Contact form leads and inquiries. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "inquiries". */ export interface Inquiry { id: number; /** * Has this inquiry been converted into a CRM Lead? */ processed?: boolean | null; name: string; email: string; companyName?: string | null; projectType?: string | null; message?: string | null; isFreeText?: boolean | null; /** * The JSON data from the configurator. */ config?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects". */ export interface Redirect { id: number; /** * The old URL slug that should be redirected (e.g. 'old-post-name') */ from: string; /** * The new URL slug to redirect to (e.g. 'new-awesome-post') */ to: string; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "context-files". */ export interface ContextFile { id: number; /** * Exact filename (e.g. 'strategy.md'). The system uses this to identify the document during prompt generation. */ filename: string; /** * The raw markdown/text content of the document. */ content: string; updatedAt: string; createdAt: string; } /** * Accounts represent companies or organizations. They are the central hub linking Contacts and Interactions together. Use this to track the overall relationship status. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-accounts". */ export interface CrmAccount { id: number; /** * Enter the official name of the business or the research project name. */ name: string; /** * The main website of the account. Required for triggering the AI Website Analysis. */ website?: string | null; /** * Current lifecycle stage of this business relation. */ status?: ("lead" | "client" | "partner" | "lost") | null; /** * Indicates how likely this lead is to convert soon. */ leadTemperature?: ("cold" | "warm" | "hot") | null; /** * The internal team member responsible for this account. */ assignedTo?: (number | null) | User; /** * All generated PDF estimates and strategy documents appear here. */ reports?: (number | Media)[] | null; /** * Projects, deals, or specific topics active for this client. */ topics?: { docs?: (number | CrmTopic)[]; hasNextPage?: boolean; totalDocs?: number; }; /** * All contacts associated with this account. */ contacts?: { docs?: (number | CrmContact)[]; hasNextPage?: boolean; totalDocs?: number; }; /** * Timeline of all communication logged against this account. */ interactions?: { docs?: (number | CrmInteraction)[]; hasNextPage?: boolean; totalDocs?: number; }; /** * All high-level projects associated with this account. */ projects?: { docs?: (number | Project)[]; hasNextPage?: boolean; totalDocs?: number; }; updatedAt: string; createdAt: string; } /** * Group your interactions (emails, calls, notes) into Topics. This helps you keep track of specific projects with a client. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-topics". */ export interface CrmTopic { id: number; title: string; /** * Which account does this topic belong to? */ account: number | CrmAccount; status: "active" | "paused" | "won" | "lost"; /** * Optional: What stage is this deal/project currently in? */ stage?: ("discovery" | "proposal" | "negotiation" | "implementation") | null; /** * Timeline of all emails and notes specifically related to this topic. */ interactions?: { docs?: (number | CrmInteraction)[]; hasNextPage?: boolean; totalDocs?: number; }; updatedAt: string; createdAt: string; } /** * Your CRM journal. Log what happened, when, on which channel, and attach any relevant files. This is for summaries and facts — not for sending messages. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-interactions". */ export interface CrmInteraction { id: number; /** * Where did this communication take place? */ type: | "email" | "call" | "meeting" | "whatsapp" | "social" | "document" | "note"; direction?: ("inbound" | "outbound") | null; /** * When did this happen? */ date: string; subject: string; /** * Who was involved? */ contact?: (number | null) | CrmContact; account?: (number | null) | CrmAccount; /** * Optional: Group this entry under a specific project or topic. */ topic?: (number | null) | CrmTopic; /** * Summarize what happened, what was decided, or what the next steps are. */ 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; /** * Attach received documents, screenshots, contracts, or any relevant files. */ attachments?: (number | Media)[] | null; updatedAt: string; createdAt: string; } /** * Contacts are the individual people linked to an Account. A person should only be created once and can be assigned to a company here. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-contacts". */ export interface CrmContact { id: number; fullName?: string | null; firstName: string; lastName: string; /** * Primary email address for communication tracking. */ email: string; phone?: string | null; linkedIn?: string | null; /** * e.g. CEO, Marketing Manager, Technical Lead */ role?: string | null; /** * Link this person to an organization from the Accounts collection. */ account?: (number | null) | CrmAccount; /** * Timeline of all communication logged directly with this person. */ interactions?: { docs?: (number | CrmInteraction)[]; hasNextPage?: boolean; totalDocs?: number; }; updatedAt: string; createdAt: string; } /** * Manage high-level projects for your clients. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "projects". */ export interface Project { id: number; title: string; /** * Which account is this project for? */ account: number | CrmAccount; /** * Key contacts from the client side involved in this project. */ contact?: (number | CrmContact)[] | null; status: "draft" | "in_progress" | "review" | "completed"; startDate?: string | null; targetDate?: string | null; valueMin?: number | null; valueMax?: number | null; /** * Project briefing, requirements, or notes. */ briefing?: { 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; /** * Upload files, documents, or assets related to this project. */ attachments?: (number | Media)[] | null; /** * Granular deliverables or milestones within this project. */ milestones?: | { name: string; status: "todo" | "in_progress" | "done"; priority?: ("low" | "medium" | "high") | null; startDate?: string | null; targetDate?: string | null; /** * Internal team member responsible for this milestone. */ assignee?: (number | null) | User; 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: "posts"; value: number | Post; } | null) | ({ relationTo: "inquiries"; value: number | Inquiry; } | null) | ({ relationTo: "redirects"; value: number | Redirect; } | null) | ({ relationTo: "context-files"; value: number | ContextFile; } | null) | ({ relationTo: "crm-accounts"; value: number | CrmAccount; } | null) | ({ relationTo: "crm-contacts"; value: number | CrmContact; } | null) | ({ relationTo: "crm-topics"; value: number | CrmTopic; } | null) | ({ relationTo: "crm-interactions"; value: number | CrmInteraction; } | null) | ({ relationTo: "projects"; value: number | Project; } | 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 { 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 { alt?: T; prefix?: 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; }; tablet?: | 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` "posts_select". */ export interface PostsSelect { title?: T; slug?: T; description?: T; date?: T; tags?: | T | { tag?: T; id?: T; }; featuredImage?: T; content?: T; updatedAt?: T; createdAt?: T; _status?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "inquiries_select". */ export interface InquiriesSelect { processed?: T; name?: T; email?: T; companyName?: T; projectType?: T; message?: T; isFreeText?: T; config?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects_select". */ export interface RedirectsSelect { from?: T; to?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "context-files_select". */ export interface ContextFilesSelect { filename?: T; content?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-accounts_select". */ export interface CrmAccountsSelect { name?: T; website?: T; status?: T; leadTemperature?: T; assignedTo?: T; reports?: T; topics?: T; contacts?: T; interactions?: T; projects?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-contacts_select". */ export interface CrmContactsSelect { fullName?: T; firstName?: T; lastName?: T; email?: T; phone?: T; linkedIn?: T; role?: T; account?: T; interactions?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-topics_select". */ export interface CrmTopicsSelect { title?: T; account?: T; status?: T; stage?: T; interactions?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "crm-interactions_select". */ export interface CrmInteractionsSelect { type?: T; direction?: T; date?: T; subject?: T; contact?: T; account?: T; topic?: T; content?: T; attachments?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "projects_select". */ export interface ProjectsSelect { title?: T; account?: T; contact?: T; status?: T; startDate?: T; targetDate?: T; valueMin?: T; valueMax?: T; briefing?: T; attachments?: T; milestones?: | T | { name?: T; status?: T; priority?: T; startDate?: T; targetDate?: T; assignee?: 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 { key?: T; data?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents_select". */ export interface PayloadLockedDocumentsSelect { 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 { 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 { name?: T; batch?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "ai-settings". */ export interface AiSetting { id: number; /** * List of trusted B2B/Tech sources (e.g. 'Vercel Blog', 'Fireship', 'Theo - t3.gg') the AI should prioritize when researching facts or videos. This overrides the hardcoded defaults. */ customSources?: | { sourceName: string; id?: string | null; }[] | null; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "ai-settings_select". */ export interface AiSettingsSelect { customSources?: | T | { sourceName?: 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 {} }