Sanity Schema
agilex / production
siteSettings singleton
defineType({
name: 'siteSettings',
type: 'document',
fields: [
{ name: 'firmName', type: 'string' },
{ name: 'tagline', type: 'string' },
{ name: 'brandColor', type: 'string' },
{ name: 'navLinks', type: 'array' },
{ name: 'ctaLabel', type: 'string' },
{ name: 'footerColumns', type: 'array' },
{ name: 'socialLinks', type: 'array' },
]
})
heroSlide
defineType({
name: 'heroSlide',
type: 'document',
fields: [
{ name: 'headline', type: 'string' },
{ name: 'subheadline', type: 'text' },
{ name: 'image', type: 'image',
options: { hotspot: true } },
{ name: 'ctaLabel', type: 'string' },
{ name: 'ctaUrl', type: 'string' },
]
})
clientLogo
defineType({
name: 'clientLogo',
type: 'document',
fields: [
{ name: 'name', type: 'string' },
{ name: 'logo', type: 'image' },
{ name: 'order', type: 'number' },
]
})
jobPosting
defineType({
name: 'jobPosting',
type: 'document',
fields: [
{ name: 'title', type: 'string',
validation: R => R.required() },
{ name: 'industry', type: 'reference',
to: [{ type: 'industry' }] },
{ name: 'location', type: 'string' },
{ name: 'type', type: 'string',
options: { list: [
'Permanent','Contract','Executive'
]}},
{ name: 'description',
type: 'array',
of: [{ type: 'block' }] },
{ name: 'isActive', type: 'boolean',
initialValue: true },
{ name: 'publishedAt', type: 'datetime' },
]
})
service
defineType({
name: 'service',
type: 'document',
fields: [
{ name: 'name', type: 'string' },
{ name: 'description', type: 'text' },
{ name: 'order', type: 'number' },
]
})
teamMember
defineType({
name: 'teamMember',
type: 'document',
fields: [
{ name: 'name', type: 'string' },
{ name: 'role', type: 'string' },
{ name: 'photo', type: 'image',
options: { hotspot: true } },
{ name: 'bio', type: 'text' },
]
})