Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 6s
Build & Deploy / 🧪 QA (push) Successful in 2m1s
Build & Deploy / 🏗️ Build (push) Failing after 15s
Build & Deploy / 🚀 Deploy (push) Has been skipped
Build & Deploy / 🧪 Post-Deploy Verification (push) Has been skipped
Build & Deploy / 🔔 Notify (push) Successful in 1s
66 lines
1.4 KiB
TypeScript
66 lines
1.4 KiB
TypeScript
import type { CollectionConfig } from "payload";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
import { replicateMediaHandler } from "@mintel/payload-ai/endpoints/replicateMediaEndpoint.js";
|
|
|
|
const filename = fileURLToPath(import.meta.url);
|
|
const dirname = path.dirname(filename);
|
|
|
|
export const Media: CollectionConfig = {
|
|
slug: "media",
|
|
admin: {
|
|
useAsTitle: "alt",
|
|
defaultColumns: ["filename", "alt", "updatedAt"],
|
|
},
|
|
access: {
|
|
read: () => true, // Publicly readable
|
|
},
|
|
endpoints: [
|
|
{
|
|
path: "/:id/ai-process",
|
|
method: "post",
|
|
handler: replicateMediaHandler as any,
|
|
},
|
|
],
|
|
upload: {
|
|
staticDir: path.resolve(dirname, "../../../../public/media"),
|
|
adminThumbnail: "thumbnail",
|
|
imageSizes: [
|
|
{
|
|
name: "thumbnail",
|
|
width: 400,
|
|
height: 300,
|
|
position: "centre",
|
|
},
|
|
{
|
|
name: "card",
|
|
width: 768,
|
|
height: 1024,
|
|
position: "centre",
|
|
},
|
|
{
|
|
name: "tablet",
|
|
width: 1024,
|
|
height: undefined,
|
|
position: "centre",
|
|
},
|
|
],
|
|
},
|
|
fields: [
|
|
{
|
|
name: "aiProcessButtons",
|
|
type: "ui",
|
|
admin: {
|
|
components: {
|
|
Field: "@mintel/payload-ai/components/AiMediaButtons#AiMediaButtons",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "alt",
|
|
type: "text",
|
|
required: true,
|
|
},
|
|
],
|
|
};
|