feature: deployment, deps update & more
This commit is contained in:
parent
f645c01ac0
commit
0c7c64f7fc
24 changed files with 1722 additions and 2298 deletions
1
.dockerignore
Normal file
1
.dockerignore
Normal file
|
|
@ -0,0 +1 @@
|
|||
/node_modules
|
||||
925
.yarn/releases/yarn-4.4.0.cjs
vendored
925
.yarn/releases/yarn-4.4.0.cjs
vendored
File diff suppressed because one or more lines are too long
6
.yarnrc
6
.yarnrc
|
|
@ -1,6 +0,0 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"--install.ignore-engines" true
|
||||
yarn-path ".yarn/releases/yarn-1.22.22.cjs"
|
||||
|
|
@ -1,3 +1 @@
|
|||
nodeLinker: node-modules
|
||||
|
||||
yarnPath: .yarn/releases/yarn-4.4.0.cjs
|
||||
|
|
|
|||
69
Dockerfile
69
Dockerfile
|
|
@ -1,69 +1,8 @@
|
|||
# From https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile
|
||||
|
||||
FROM node:18-alpine AS base
|
||||
|
||||
# Install dependencies only when needed
|
||||
FROM base AS deps
|
||||
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
|
||||
FROM node:21-alpine
|
||||
RUN apk add --no-cache libc6-compat
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies based on the preferred package manager
|
||||
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
|
||||
RUN \
|
||||
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
|
||||
elif [ -f package-lock.json ]; then npm ci; \
|
||||
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
|
||||
else echo "Lockfile not found." && exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
# Rebuild the source code only when needed
|
||||
FROM base AS builder
|
||||
WORKDIR /app
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
|
||||
# Next.js collects completely anonymous telemetry data about general usage.
|
||||
# Learn more here: https://nextjs.org/telemetry
|
||||
# Uncomment the following line in case you want to disable telemetry during the build.
|
||||
# ENV NEXT_TELEMETRY_DISABLED 1
|
||||
|
||||
RUN \
|
||||
if [ -f yarn.lock ]; then yarn run build; \
|
||||
elif [ -f package-lock.json ]; then npm run build; \
|
||||
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
|
||||
else echo "Lockfile not found." && exit 1; \
|
||||
fi
|
||||
|
||||
# Production image, copy all the files and run next
|
||||
FROM base AS runner
|
||||
WORKDIR /app
|
||||
|
||||
ENV NODE_ENV production
|
||||
# Uncomment the following line in case you want to disable telemetry during runtime.
|
||||
# ENV NEXT_TELEMETRY_DISABLED 1
|
||||
|
||||
RUN addgroup --system --gid 1001 nodejs
|
||||
RUN adduser --system --uid 1001 nextjs
|
||||
|
||||
COPY --from=builder /app/public ./public
|
||||
|
||||
# Set the correct permission for prerender cache
|
||||
RUN mkdir .next
|
||||
RUN chown nextjs:nodejs .next
|
||||
|
||||
# Automatically leverage output traces to reduce image size
|
||||
# https://nextjs.org/docs/advanced-features/output-file-tracing
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||
|
||||
USER nextjs
|
||||
|
||||
RUN yarn set version stable
|
||||
RUN yarn install --frozen-lockfile
|
||||
EXPOSE 3000
|
||||
|
||||
ENV PORT 3000
|
||||
|
||||
# server.js is created by next build from the standalone output
|
||||
# https://nextjs.org/docs/pages/api-reference/next-config-js/output
|
||||
CMD HOSTNAME="0.0.0.0" node server.js
|
||||
CMD yarn dev
|
||||
70
Dockerfile-old
Normal file
70
Dockerfile-old
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# From https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile
|
||||
|
||||
FROM node:21-alpine AS base
|
||||
|
||||
# Install dependencies only when needed
|
||||
FROM base AS deps
|
||||
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
|
||||
RUN apk add --no-cache libc6-compat
|
||||
WORKDIR /app
|
||||
|
||||
# Install dependencies based on the preferred package manager
|
||||
COPY package.json .yarnrc.yml yarn.lock* package-lock.json* pnpm-lock.yaml* ./
|
||||
RUN yarn set version stable
|
||||
RUN \
|
||||
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
|
||||
elif [ -f package-lock.json ]; then npm ci; \
|
||||
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
|
||||
else echo "Lockfile not found." && exit 1; \
|
||||
fi
|
||||
|
||||
|
||||
# Rebuild the source code only when needed
|
||||
FROM base AS builder
|
||||
WORKDIR /app
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
|
||||
# Next.js collects completely anonymous telemetry data about general usage.
|
||||
# Learn more here: https://nextjs.org/telemetry
|
||||
# Uncomment the following line in case you want to disable telemetry during the build.
|
||||
# ENV NEXT_TELEMETRY_DISABLED 1
|
||||
|
||||
RUN \
|
||||
if [ -f yarn.lock ]; then yarn run build; \
|
||||
elif [ -f package-lock.json ]; then npm run build; \
|
||||
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
|
||||
else echo "Lockfile not found." && exit 1; \
|
||||
fi
|
||||
|
||||
# Production image, copy all the files and run next
|
||||
FROM base AS runner
|
||||
WORKDIR /app
|
||||
|
||||
ENV NODE_ENV production
|
||||
# Uncomment the following line in case you want to disable telemetry during runtime.
|
||||
# ENV NEXT_TELEMETRY_DISABLED 1
|
||||
|
||||
RUN addgroup --system --gid 1001 nodejs
|
||||
RUN adduser --system --uid 1001 nextjs
|
||||
|
||||
COPY --from=builder /app/public ./public
|
||||
|
||||
# Set the correct permission for prerender cache
|
||||
RUN mkdir .next
|
||||
RUN chown nextjs:nodejs .next
|
||||
|
||||
# Automatically leverage output traces to reduce image size
|
||||
# https://nextjs.org/docs/advanced-features/output-file-tracing
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||
|
||||
USER nextjs
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
ENV PORT 3000
|
||||
|
||||
# server.js is created by next build from the standalone output
|
||||
# https://nextjs.org/docs/pages/api-reference/next-config-js/output
|
||||
CMD HOSTNAME="0.0.0.0" node server.js
|
||||
|
|
@ -3,6 +3,11 @@ import { withPayload } from '@payloadcms/next/withPayload'
|
|||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
// Your Next.js config here
|
||||
eslint: {
|
||||
// Warning: This allows production builds to successfully complete even if
|
||||
// your project has ESLint errors.
|
||||
ignoreDuringBuilds: true,
|
||||
},
|
||||
}
|
||||
|
||||
export default withPayload(nextConfig)
|
||||
|
|
|
|||
16
package.json
16
package.json
|
|
@ -16,18 +16,18 @@
|
|||
"build-storybook": "storybook build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@payloadcms/db-mongodb": "beta",
|
||||
"@payloadcms/next": "beta",
|
||||
"@payloadcms/plugin-cloud": "beta",
|
||||
"@payloadcms/richtext-lexical": "beta",
|
||||
"@payloadcms/db-mongodb": "3.0.0-beta.99",
|
||||
"@payloadcms/next": "3.0.0-beta.99",
|
||||
"@payloadcms/plugin-cloud": "3.0.0-beta.99",
|
||||
"@payloadcms/richtext-lexical": "3.0.0-beta.99",
|
||||
"classnames": "^2.5.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"graphql": "^16.8.1",
|
||||
"mapbox-gl": "^3.5.2",
|
||||
"next": "15.0.0-canary.123",
|
||||
"payload": "beta",
|
||||
"react": "^19.0.0-rc-6230622a1a-20240610",
|
||||
"react-dom": "^19.0.0-rc-6230622a1a-20240610",
|
||||
"payload": "3.0.0-beta.99",
|
||||
"react": "19.0.0-rc-f65ac7bd-20240826",
|
||||
"react-dom": "19.0.0-rc-f65ac7bd-20240826",
|
||||
"sharp": "0.32.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
@ -65,5 +65,5 @@
|
|||
"@types/react": "npm:types-react@19.0.0-rc.0",
|
||||
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.0"
|
||||
},
|
||||
"packageManager": "yarn@4.4.0"
|
||||
"packageManager": "yarn@4.4.1"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import type { Metadata } from 'next'
|
|||
import config from '@payload-config'
|
||||
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
||||
import { NotFoundPage, generatePageMetadata } from '@payloadcms/next/views'
|
||||
import { importMap } from '../importMap'
|
||||
|
||||
type Args = {
|
||||
params: {
|
||||
|
|
@ -14,13 +15,10 @@ type Args = {
|
|||
}
|
||||
}
|
||||
|
||||
export const generateMetadata = ({
|
||||
params,
|
||||
searchParams,
|
||||
}: Args): Promise<Metadata> =>
|
||||
export const generateMetadata = ({ params, searchParams }: Args): Promise<Metadata> =>
|
||||
generatePageMetadata({ config, params, searchParams })
|
||||
|
||||
const NotFound = ({ params, searchParams }: Args) =>
|
||||
NotFoundPage({ config, params, searchParams })
|
||||
NotFoundPage({ config, params, searchParams, importMap })
|
||||
|
||||
export default NotFound
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import type { Metadata } from 'next'
|
|||
import config from '@payload-config'
|
||||
/* DO NOT MODIFY IT BECAUSE IT COULD BE REWRITTEN AT ANY TIME. */
|
||||
import { RootPage, generatePageMetadata } from '@payloadcms/next/views'
|
||||
import { importMap } from '../importMap'
|
||||
|
||||
type Args = {
|
||||
params: {
|
||||
|
|
@ -14,13 +15,10 @@ type Args = {
|
|||
}
|
||||
}
|
||||
|
||||
export const generateMetadata = ({
|
||||
params,
|
||||
searchParams,
|
||||
}: Args): Promise<Metadata> =>
|
||||
export const generateMetadata = ({ params, searchParams }: Args): Promise<Metadata> =>
|
||||
generatePageMetadata({ config, params, searchParams })
|
||||
|
||||
const Page = ({ params, searchParams }: Args) =>
|
||||
RootPage({ config, params, searchParams })
|
||||
RootPage({ config, params, searchParams, importMap })
|
||||
|
||||
export default Page
|
||||
|
|
|
|||
1
src/app/(payload)/admin/importMap.js
Normal file
1
src/app/(payload)/admin/importMap.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
export const importMap = {}
|
||||
|
|
@ -1,13 +1,7 @@
|
|||
/* THIS FILE WAS GENERATED AUTOMATICALLY BY PAYLOAD. */
|
||||
/* DO NOT MODIFY it because it could be re-written at any time. */
|
||||
import config from '@payload-config'
|
||||
import {
|
||||
REST_DELETE,
|
||||
REST_GET,
|
||||
REST_OPTIONS,
|
||||
REST_PATCH,
|
||||
REST_POST,
|
||||
} from '@payloadcms/next/routes'
|
||||
import { REST_DELETE, REST_GET, REST_OPTIONS, REST_PATCH, REST_POST } from '@payloadcms/next/routes'
|
||||
|
||||
export const GET = REST_GET(config)
|
||||
export const POST = REST_POST(config)
|
||||
|
|
|
|||
|
|
@ -6,13 +6,16 @@ import { RootLayout } from '@payloadcms/next/layouts'
|
|||
import React from 'react'
|
||||
|
||||
import './custom.scss'
|
||||
import { importMap } from './admin/importMap'
|
||||
|
||||
type Args = {
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
const Layout = ({ children }: Args) => (
|
||||
<RootLayout config={configPromise}>{children}</RootLayout>
|
||||
<RootLayout importMap={importMap} config={configPromise}>
|
||||
{children}
|
||||
</RootLayout>
|
||||
)
|
||||
|
||||
export default Layout
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ export default async function Home() {
|
|||
and: [
|
||||
{
|
||||
date: {
|
||||
greater_than_equal: today.toISOString().substring(0, 10),
|
||||
greater_than_equal: today.toISOString(),
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
@ -71,7 +71,7 @@ export default async function Home() {
|
|||
<>
|
||||
<BannerWithMenu nextMass={nextMass.docs[0]} />
|
||||
<div className={styles.mass}>
|
||||
<h2>Kommen Sie vorbei, in unsere Heilige Messe!</h2>
|
||||
<h2>Kommen Sie zu unserer Heiligen Messe vorbei!</h2>
|
||||
|
||||
<div className={styles.table}>
|
||||
{worshipByDate.map(([date, worships]) => (
|
||||
|
|
|
|||
43
src/collections/Announcements.ts
Normal file
43
src/collections/Announcements.ts
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import { CollectionConfig } from 'payload'
|
||||
import { isAdminOrEmployee } from '@/collections/access/admin'
|
||||
|
||||
export const Announcements: CollectionConfig = {
|
||||
slug: 'vermeldungen',
|
||||
labels: {
|
||||
singular: {
|
||||
de: 'Vermeldung'
|
||||
},
|
||||
plural: {
|
||||
de: 'Vermeldungen'
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'date',
|
||||
type: 'date',
|
||||
required: true,
|
||||
label: {
|
||||
de: 'Datum'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'parish',
|
||||
type: "relationship",
|
||||
relationTo: 'parish',
|
||||
required: true,
|
||||
hasMany: true,
|
||||
label: {
|
||||
de: "Gemeinde"
|
||||
},
|
||||
admin: {
|
||||
allowCreate: false
|
||||
}
|
||||
},
|
||||
],
|
||||
access: {
|
||||
read: () => true,
|
||||
create: isAdminOrEmployee(),
|
||||
update: isAdminOrEmployee(),
|
||||
delete: isAdminOrEmployee(),
|
||||
}
|
||||
}
|
||||
64
src/collections/Blog.ts
Normal file
64
src/collections/Blog.ts
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
import { CollectionConfig } from 'payload'
|
||||
import { isAdminOrEmployee } from '@/collections/access/admin'
|
||||
|
||||
export const Blog: CollectionConfig = {
|
||||
slug: 'blog',
|
||||
labels: {
|
||||
singular: {
|
||||
de: 'Blogpost'
|
||||
},
|
||||
plural: {
|
||||
de: 'Blog'
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'photo',
|
||||
type: 'upload',
|
||||
relationTo: 'media',
|
||||
},
|
||||
{
|
||||
name: 'title',
|
||||
type: 'text',
|
||||
required: true,
|
||||
label: {
|
||||
de: "Titel"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'parish',
|
||||
type: 'relationship',
|
||||
relationTo: 'parish',
|
||||
hasMany: true,
|
||||
label: {
|
||||
de: "Gemeinde"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'isHighlight',
|
||||
type: 'checkbox',
|
||||
required: true,
|
||||
label: {
|
||||
de: "Highlight"
|
||||
},
|
||||
defaultValue: false
|
||||
},
|
||||
{
|
||||
name: 'text',
|
||||
type: 'richText',
|
||||
required: true,
|
||||
label: {
|
||||
de: "Post"
|
||||
}
|
||||
}
|
||||
],
|
||||
admin: {
|
||||
useAsTitle: 'title'
|
||||
},
|
||||
access: {
|
||||
read: () => true,
|
||||
create: isAdminOrEmployee(),
|
||||
update: isAdminOrEmployee(),
|
||||
delete: isAdminOrEmployee(),
|
||||
}
|
||||
}
|
||||
93
src/collections/Pages.ts
Normal file
93
src/collections/Pages.ts
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
import { Block, CollectionConfig } from 'payload'
|
||||
import { isAdmin, isAdminOrEmployee } from '@/collections/access/admin'
|
||||
|
||||
const Content: Block = {
|
||||
slug: 'content',
|
||||
fields: [
|
||||
{
|
||||
name: 'content',
|
||||
type: 'richText',
|
||||
required: true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const Title: Block = {
|
||||
slug: 'title',
|
||||
fields: [
|
||||
{
|
||||
name: 'title',
|
||||
type: 'text',
|
||||
required: true,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
const Testimony: Block = {
|
||||
slug: 'testimony',
|
||||
labels: {
|
||||
singular: {
|
||||
de: 'Zeugnis'
|
||||
},
|
||||
plural: {
|
||||
de: 'Zeugnisse'
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'testimony',
|
||||
type: 'relationship',
|
||||
relationTo: 'testimony',
|
||||
required: true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
export const Pages: CollectionConfig = {
|
||||
slug: 'page',
|
||||
labels: {
|
||||
singular: {
|
||||
de: 'Seite'
|
||||
},
|
||||
plural: {
|
||||
de: "Seiten"
|
||||
},
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: "title",
|
||||
type: "text",
|
||||
required: true,
|
||||
label: {
|
||||
de: "Titel"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'slug',
|
||||
type: 'text',
|
||||
required: true,
|
||||
label: {
|
||||
de: "Slug"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'content',
|
||||
type: 'blocks',
|
||||
required: true,
|
||||
blocks: [
|
||||
Content,
|
||||
Title,
|
||||
Testimony
|
||||
]
|
||||
}
|
||||
],
|
||||
admin: {
|
||||
useAsTitle: "title"
|
||||
},
|
||||
access: {
|
||||
read: () => true,
|
||||
create: isAdminOrEmployee(),
|
||||
update: isAdminOrEmployee(),
|
||||
delete: isAdmin(),
|
||||
}
|
||||
}
|
||||
|
|
@ -20,6 +20,14 @@ export const Parish: CollectionConfig = {
|
|||
type: 'text',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'slug',
|
||||
label: {
|
||||
de: 'URL slug',
|
||||
},
|
||||
type: 'text',
|
||||
required: true
|
||||
},
|
||||
{
|
||||
name: 'churches',
|
||||
label: {
|
||||
|
|
@ -41,7 +49,6 @@ export const Parish: CollectionConfig = {
|
|||
type: 'relationship',
|
||||
relationTo: 'employees',
|
||||
hasMany: true,
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
name: 'contact',
|
||||
|
|
|
|||
39
src/collections/Tweets.ts
Normal file
39
src/collections/Tweets.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import { CollectionConfig } from 'payload'
|
||||
import { isAdminOrEmployee } from '@/collections/access/admin'
|
||||
|
||||
export const Tweets: CollectionConfig = {
|
||||
slug: 'tweet',
|
||||
labels: {
|
||||
singular: {
|
||||
de: "Kurznachricht"
|
||||
},
|
||||
plural: {
|
||||
de: "Kurznachrichten"
|
||||
}
|
||||
},
|
||||
fields: [
|
||||
{
|
||||
name: 'parish',
|
||||
type: 'relationship',
|
||||
relationTo: 'parish',
|
||||
hasMany: true,
|
||||
label: {
|
||||
de: "Gemeinde"
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'text',
|
||||
type: 'textarea',
|
||||
required: true,
|
||||
label: {
|
||||
de: "Nachricht"
|
||||
}
|
||||
}
|
||||
],
|
||||
access: {
|
||||
read: () => true,
|
||||
create: isAdminOrEmployee(),
|
||||
update: isAdminOrEmployee(),
|
||||
delete: isAdminOrEmployee(),
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import MenuIcon from './menu.svg'
|
|||
import Image from 'next/image'
|
||||
import { Worship } from '@/payload-types'
|
||||
import { MenuBaseLayer } from '@/components/MenuBaseLayer/MenuBaseLayer'
|
||||
import classNames from 'classnames'
|
||||
|
||||
type MenuProps = {
|
||||
starClick?: () => void
|
||||
|
|
@ -12,7 +13,7 @@ type MenuProps = {
|
|||
|
||||
export const Menu = (props: MenuProps) => {
|
||||
return (
|
||||
<nav className={styles.nav}>
|
||||
<nav className={classNames(styles.nav, {[styles.white]: typeof props.starClick !== 'undefined'})}>
|
||||
<MenuBaseLayer />
|
||||
<div className={styles.navMobile}>
|
||||
<Image src={MenuIcon} width={25} height={25} alt={'Menu'} />
|
||||
|
|
|
|||
|
|
@ -8,6 +8,10 @@
|
|||
margin-bottom: 2.5em;
|
||||
}
|
||||
|
||||
.white {
|
||||
color: #eeeeee;
|
||||
}
|
||||
|
||||
.navMobile {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,241 +8,342 @@
|
|||
|
||||
export interface Config {
|
||||
auth: {
|
||||
users: UserAuthOperations
|
||||
}
|
||||
users: UserAuthOperations;
|
||||
};
|
||||
collections: {
|
||||
parish: Parish
|
||||
church: Church
|
||||
worship: Worship
|
||||
event: Event
|
||||
group: Group
|
||||
employees: Employee
|
||||
testimony: Testimony
|
||||
users: User
|
||||
media: Media
|
||||
'payload-preferences': PayloadPreference
|
||||
'payload-migrations': PayloadMigration
|
||||
}
|
||||
parish: Parish;
|
||||
church: Church;
|
||||
worship: Worship;
|
||||
vermeldungen: Vermeldungen;
|
||||
blog: Blog;
|
||||
tweet: Tweet;
|
||||
event: Event;
|
||||
group: Group;
|
||||
employees: Employee;
|
||||
testimony: Testimony;
|
||||
page: Page;
|
||||
users: User;
|
||||
media: Media;
|
||||
'payload-preferences': PayloadPreference;
|
||||
'payload-migrations': PayloadMigration;
|
||||
};
|
||||
db: {
|
||||
defaultIDType: string
|
||||
}
|
||||
globals: {}
|
||||
locale: null
|
||||
defaultIDType: string;
|
||||
};
|
||||
globals: {};
|
||||
locale: null;
|
||||
user: User & {
|
||||
collection: 'users'
|
||||
}
|
||||
collection: 'users';
|
||||
};
|
||||
}
|
||||
export interface UserAuthOperations {
|
||||
forgotPassword: {
|
||||
email: string
|
||||
password: string
|
||||
}
|
||||
email: string;
|
||||
password: string;
|
||||
};
|
||||
login: {
|
||||
email: string
|
||||
password: string
|
||||
}
|
||||
email: string;
|
||||
password: string;
|
||||
};
|
||||
registerFirstUser: {
|
||||
email: string
|
||||
password: string
|
||||
}
|
||||
email: string;
|
||||
password: string;
|
||||
};
|
||||
unlock: {
|
||||
email: string
|
||||
password: string
|
||||
}
|
||||
email: string;
|
||||
password: string;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "parish".
|
||||
*/
|
||||
export interface Parish {
|
||||
id: string
|
||||
name: string
|
||||
churches: (string | Church)[]
|
||||
employees: (string | Employee)[]
|
||||
contact: string
|
||||
title: string
|
||||
description: string
|
||||
photo?: string | Media | null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
churches: (string | Church)[];
|
||||
employees?: (string | Employee)[] | null;
|
||||
contact: string;
|
||||
title: string;
|
||||
description: string;
|
||||
photo?: (string | null) | Media;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "church".
|
||||
*/
|
||||
export interface Church {
|
||||
id: string
|
||||
name: string
|
||||
address: string
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
name: string;
|
||||
address: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "employees".
|
||||
*/
|
||||
export interface Employee {
|
||||
id: string
|
||||
photo?: string | Media | null
|
||||
name: string
|
||||
occupation: string
|
||||
email?: string | null
|
||||
telephone?: string | null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
photo?: (string | null) | Media;
|
||||
name: string;
|
||||
occupation: string;
|
||||
email?: string | null;
|
||||
telephone?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "media".
|
||||
*/
|
||||
export interface Media {
|
||||
id: string
|
||||
alt: string
|
||||
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
|
||||
id: string;
|
||||
alt: string;
|
||||
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;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "worship".
|
||||
*/
|
||||
export interface Worship {
|
||||
id: string
|
||||
date: string
|
||||
location: string | Church
|
||||
type: 'MASS' | 'FAMILY' | 'WORD'
|
||||
cancelled: boolean
|
||||
title?: string | null
|
||||
description?: string | null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
date: string;
|
||||
location: string | Church;
|
||||
type: 'MASS' | 'FAMILY' | 'WORD';
|
||||
cancelled: boolean;
|
||||
title?: string | null;
|
||||
description?: string | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "vermeldungen".
|
||||
*/
|
||||
export interface Vermeldungen {
|
||||
id: string;
|
||||
date: string;
|
||||
parish: (string | Parish)[];
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "blog".
|
||||
*/
|
||||
export interface Blog {
|
||||
id: string;
|
||||
photo?: (string | null) | Media;
|
||||
title: string;
|
||||
parish?: (string | Parish)[] | null;
|
||||
isHighlight: boolean;
|
||||
text: {
|
||||
root: {
|
||||
type: string;
|
||||
children: {
|
||||
type: string;
|
||||
version: number;
|
||||
[k: string]: unknown;
|
||||
}[];
|
||||
direction: ('ltr' | 'rtl') | null;
|
||||
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
||||
indent: number;
|
||||
version: number;
|
||||
};
|
||||
[k: string]: unknown;
|
||||
};
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "tweet".
|
||||
*/
|
||||
export interface Tweet {
|
||||
id: string;
|
||||
parish?: (string | Parish)[] | null;
|
||||
text: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "event".
|
||||
*/
|
||||
export interface Event {
|
||||
id: string
|
||||
photo?: string | Media | null
|
||||
title: string
|
||||
datum: string
|
||||
parish?: (string | Parish)[] | null
|
||||
group?: (string | null) | Group
|
||||
shortDescription: string
|
||||
id: string;
|
||||
photo?: (string | null) | Media;
|
||||
title: string;
|
||||
datum: string;
|
||||
parish?: (string | Parish)[] | null;
|
||||
group?: (string | null) | Group;
|
||||
shortDescription: string;
|
||||
description: {
|
||||
root: {
|
||||
type: string
|
||||
type: string;
|
||||
children: {
|
||||
type: string
|
||||
version: number
|
||||
[k: string]: unknown
|
||||
}[]
|
||||
direction: ('ltr' | 'rtl') | null
|
||||
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''
|
||||
indent: number
|
||||
version: number
|
||||
}
|
||||
[k: string]: unknown
|
||||
}
|
||||
cancelled: boolean
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
type: string;
|
||||
version: number;
|
||||
[k: string]: unknown;
|
||||
}[];
|
||||
direction: ('ltr' | 'rtl') | null;
|
||||
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
||||
indent: number;
|
||||
version: number;
|
||||
};
|
||||
[k: string]: unknown;
|
||||
};
|
||||
cancelled: boolean;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "group".
|
||||
*/
|
||||
export interface Group {
|
||||
id: string
|
||||
photo?: string | Media | null
|
||||
name: string
|
||||
description: string
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
photo?: (string | null) | Media;
|
||||
name: string;
|
||||
description: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "testimony".
|
||||
*/
|
||||
export interface Testimony {
|
||||
id: string
|
||||
testimony: string
|
||||
name: string
|
||||
occupation?: string | null
|
||||
category: 'EUCHARIST'
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
testimony: string;
|
||||
name: string;
|
||||
occupation?: string | null;
|
||||
category: 'EUCHARIST';
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "page".
|
||||
*/
|
||||
export interface Page {
|
||||
id: string;
|
||||
title: string;
|
||||
slug: string;
|
||||
content: (
|
||||
| {
|
||||
content: {
|
||||
root: {
|
||||
type: string;
|
||||
children: {
|
||||
type: string;
|
||||
version: number;
|
||||
[k: string]: unknown;
|
||||
}[];
|
||||
direction: ('ltr' | 'rtl') | null;
|
||||
format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
|
||||
indent: number;
|
||||
version: number;
|
||||
};
|
||||
[k: string]: unknown;
|
||||
};
|
||||
id?: string | null;
|
||||
blockName?: string | null;
|
||||
blockType: 'content';
|
||||
}
|
||||
| {
|
||||
title: string;
|
||||
id?: string | null;
|
||||
blockName?: string | null;
|
||||
blockType: 'title';
|
||||
}
|
||||
| {
|
||||
testimony: string | Testimony;
|
||||
id?: string | null;
|
||||
blockName?: string | null;
|
||||
blockType: 'testimony';
|
||||
}
|
||||
)[];
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "users".
|
||||
*/
|
||||
export interface User {
|
||||
id: string
|
||||
name: string
|
||||
roles: 'user' | 'employee' | 'admin'
|
||||
groups?: (string | Group)[] | null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
email: string
|
||||
resetPasswordToken?: string | null
|
||||
resetPasswordExpiration?: string | null
|
||||
salt?: string | null
|
||||
hash?: string | null
|
||||
loginAttempts?: number | null
|
||||
lockUntil?: string | null
|
||||
password?: string | null
|
||||
id: string;
|
||||
name: string;
|
||||
roles: 'user' | 'employee' | 'admin';
|
||||
groups?: (string | Group)[] | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
email: string;
|
||||
resetPasswordToken?: string | null;
|
||||
resetPasswordExpiration?: string | null;
|
||||
salt?: string | null;
|
||||
hash?: string | null;
|
||||
loginAttempts?: number | null;
|
||||
lockUntil?: string | null;
|
||||
password?: string | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "payload-preferences".
|
||||
*/
|
||||
export interface PayloadPreference {
|
||||
id: string
|
||||
id: string;
|
||||
user: {
|
||||
relationTo: 'users'
|
||||
value: string | User
|
||||
}
|
||||
key?: string | null
|
||||
relationTo: 'users';
|
||||
value: string | User;
|
||||
};
|
||||
key?: string | null;
|
||||
value?:
|
||||
| {
|
||||
[k: string]: unknown
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
| null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "payload-migrations".
|
||||
*/
|
||||
export interface PayloadMigration {
|
||||
id: string
|
||||
name?: string | null
|
||||
batch?: number | null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
id: string;
|
||||
name?: string | null;
|
||||
batch?: number | null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "auth".
|
||||
*/
|
||||
export interface Auth {
|
||||
[k: string]: unknown
|
||||
[k: string]: unknown;
|
||||
}
|
||||
|
||||
|
||||
declare module 'payload' {
|
||||
export interface GeneratedTypes extends Config {}
|
||||
}
|
||||
|
|
@ -16,6 +16,10 @@ import { Parish } from '@/collections/Parish'
|
|||
import { Employees } from '@/collections/Employees'
|
||||
import { Groups } from '@/collections/Groups'
|
||||
import { Events } from '@/collections/Events'
|
||||
import { Announcements } from '@/collections/Announcements'
|
||||
import { Blog } from '@/collections/Blog'
|
||||
import { Tweets } from '@/collections/Tweets'
|
||||
import { Pages } from '@/collections/Pages'
|
||||
|
||||
const filename = fileURLToPath(import.meta.url)
|
||||
const dirname = path.dirname(filename)
|
||||
|
|
@ -28,10 +32,14 @@ export default buildConfig({
|
|||
Parish,
|
||||
Churches,
|
||||
Worship,
|
||||
Announcements,
|
||||
Blog,
|
||||
Tweets,
|
||||
Events,
|
||||
Groups,
|
||||
Employees,
|
||||
Testimony,
|
||||
Pages,
|
||||
Users,
|
||||
Media,
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in a new issue