trptk-sanity/schemaTypes/releaseType.ts
2026-01-09 10:41:29 +01:00

50 lines
1.2 KiB
TypeScript

import {defineField, defineType} from 'sanity'
export const releaseType = defineType({
name: 'release',
title: 'Release',
type: 'document',
fields: [
defineField({ name: 'catalogNo', type: 'string' }),
defineField({ name: 'name', type: 'string' }),
defineField({ name: 'albumArtist', type: 'string' }),
defineField({ name: 'albumCover', type: 'image' }),
defineField({ name: 'label', title: 'Label', type: 'string',
options: {
list: [
{title: 'TRPTK', value: 'trptk'},
{title: 'Other', value: 'other'},
],
},
}),
],
orderings: [
{
title: 'Cat. No. (Asc.)',
name: 'catalogNoAsc',
by: [{field: 'catalogNo', direction: 'asc'}],
},
{
title: 'Cat. No. (Desc.)',
name: 'catalogNoDesc',
by: [{field: 'catalogNo', direction: 'desc'}],
},
],
preview: {
select: {
title: 'name',
artist: 'albumArtist',
catNo: 'catalogNo',
media: 'albumCover',
},
prepare({title, artist, catNo, media}) {
return {
title: `${title}${catNo}` || '(Untitled release)',
subtitle: artist ? artist : '',
media,
}
},
},
})