phase 1-2 done
This commit is contained in:
51
sanity/schemas/project.ts
Normal file
51
sanity/schemas/project.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { defineField, defineType } from "sanity";
|
||||
|
||||
export const project = defineType({
|
||||
name: "project",
|
||||
title: "Project",
|
||||
type: "document",
|
||||
fields: [
|
||||
defineField({ name: "title", title: "عنوان", type: "string", validation: (r) => r.required() }),
|
||||
defineField({ name: "slug", title: "Slug", type: "slug", options: { source: "title" }, validation: (r) => r.required() }),
|
||||
defineField({ name: "locale", title: "زبان", type: "string", options: { list: [{ value: "fa", title: "فارسی" }, { value: "en", title: "English" }] }, initialValue: "fa" }),
|
||||
defineField({
|
||||
name: "projectType",
|
||||
title: "نوع پروژه",
|
||||
type: "string",
|
||||
options: {
|
||||
list: [
|
||||
{ value: "product", title: "محصول" },
|
||||
{ value: "brand-system", title: "سیستم برند" },
|
||||
{ value: "open-source", title: "متنباز" },
|
||||
{ value: "creative-work", title: "اثر خلاقانه" },
|
||||
],
|
||||
},
|
||||
validation: (r) => r.required(),
|
||||
}),
|
||||
defineField({ name: "description", title: "توضیح کوتاه", type: "text", rows: 2 }),
|
||||
defineField({ name: "coverImage", title: "تصویر کاور", type: "image", options: { hotspot: true }, fields: [defineField({ name: "alt", type: "string", title: "Alt text" })] }),
|
||||
defineField({ name: "gallery", title: "گالری", type: "array", of: [{ type: "image", options: { hotspot: true }, fields: [defineField({ name: "alt", type: "string", title: "Alt text" })] }] }),
|
||||
defineField({
|
||||
name: "body",
|
||||
title: "محتوا",
|
||||
type: "array",
|
||||
of: [{ type: "block" }, { type: "image", options: { hotspot: true } }],
|
||||
}),
|
||||
defineField({ name: "techStack", title: "تکنولوژیها", type: "array", of: [{ type: "string" }] }),
|
||||
defineField({ name: "toolsUsed", title: "ابزارها", type: "array", of: [{ type: "string" }] }),
|
||||
defineField({ name: "liveUrl", title: "لینک زنده", type: "url" }),
|
||||
defineField({ name: "githubUrl", title: "GitHub", type: "url" }),
|
||||
defineField({ name: "featured", title: "برگزیده", type: "boolean", initialValue: false }),
|
||||
defineField({
|
||||
name: "seo",
|
||||
title: "SEO",
|
||||
type: "object",
|
||||
fields: [
|
||||
defineField({ name: "title", type: "string", title: "عنوان SEO" }),
|
||||
defineField({ name: "description", type: "text", title: "توضیحات", rows: 2 }),
|
||||
defineField({ name: "ogImage", type: "image", title: "تصویر OG" }),
|
||||
],
|
||||
}),
|
||||
],
|
||||
preview: { select: { title: "title", subtitle: "projectType", media: "coverImage" } },
|
||||
});
|
||||
Reference in New Issue
Block a user