749 lines
22 KiB
JSON
749 lines
22 KiB
JSON
{
|
|
"collections": [
|
|
{
|
|
"collection": "artworks",
|
|
"meta": {
|
|
"collection": "artworks",
|
|
"icon": "palette",
|
|
"note": "Main artwork/painting catalog",
|
|
"display_template": "{{title}} ({{year}})",
|
|
"archive_field": "status",
|
|
"archive_value": "archived",
|
|
"unarchive_value": "draft",
|
|
"sort_field": "sort"
|
|
},
|
|
"schema": {
|
|
"name": "artworks"
|
|
},
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "status",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Draft", "value": "draft" },
|
|
{ "text": "Published", "value": "published" },
|
|
{ "text": "Sold", "value": "sold" },
|
|
{ "text": "Archived", "value": "archived" }
|
|
]}
|
|
},
|
|
"schema": { "default_value": "draft" }
|
|
},
|
|
{
|
|
"field": "sort",
|
|
"type": "integer",
|
|
"meta": { "hidden": true, "interface": "input" }
|
|
},
|
|
{
|
|
"field": "title",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "slug",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "options": { "slug": true } }
|
|
},
|
|
{
|
|
"field": "year",
|
|
"type": "integer",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "medium",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "note": "e.g., Oil on canvas, Acrylic" }
|
|
},
|
|
{
|
|
"field": "dimensions",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "note": "e.g., 24 x 36 inches" }
|
|
},
|
|
{
|
|
"field": "price",
|
|
"type": "decimal",
|
|
"meta": { "width": "half", "interface": "input", "options": { "min": 0 } }
|
|
},
|
|
{
|
|
"field": "description",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-rich-text-html" }
|
|
},
|
|
{
|
|
"field": "image",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "file-image", "special": ["file"] }
|
|
},
|
|
{
|
|
"field": "gallery",
|
|
"type": "alias",
|
|
"meta": { "width": "full", "interface": "files", "special": ["files"] }
|
|
},
|
|
{
|
|
"field": "series",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "select-dropdown-m2o", "special": ["m2o"] }
|
|
},
|
|
{
|
|
"field": "tags",
|
|
"type": "alias",
|
|
"meta": { "width": "half", "interface": "list-m2m", "special": ["m2m"] }
|
|
},
|
|
{
|
|
"field": "zettle_product_id",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "note": "Zettle POS product ID for e-commerce sync" }
|
|
},
|
|
{
|
|
"field": "lightroom_id",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "note": "Original Lightroom catalog UUID" }
|
|
},
|
|
{
|
|
"field": "date_created",
|
|
"type": "timestamp",
|
|
"meta": { "hidden": true, "readonly": true, "special": ["date-created"] }
|
|
},
|
|
{
|
|
"field": "date_updated",
|
|
"type": "timestamp",
|
|
"meta": { "hidden": true, "readonly": true, "special": ["date-updated"] }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "series",
|
|
"meta": {
|
|
"collection": "series",
|
|
"icon": "collections",
|
|
"note": "Artwork series/collections",
|
|
"display_template": "{{name}}"
|
|
},
|
|
"schema": { "name": "series" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "name",
|
|
"type": "string",
|
|
"meta": { "width": "full", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "slug",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "options": { "slug": true } }
|
|
},
|
|
{
|
|
"field": "description",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-rich-text-html" }
|
|
},
|
|
{
|
|
"field": "cover_image",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "file-image", "special": ["file"] }
|
|
},
|
|
{
|
|
"field": "artworks",
|
|
"type": "alias",
|
|
"meta": { "width": "full", "interface": "list-o2m", "special": ["o2m"] }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "tags",
|
|
"meta": {
|
|
"collection": "tags",
|
|
"icon": "local_offer",
|
|
"note": "Tags for categorizing artworks"
|
|
},
|
|
"schema": { "name": "tags" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "name",
|
|
"type": "string",
|
|
"meta": { "width": "full", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "slug",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "events",
|
|
"meta": {
|
|
"collection": "events",
|
|
"icon": "event",
|
|
"note": "Exhibitions and events"
|
|
},
|
|
"schema": { "name": "events" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "status",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Draft", "value": "draft" },
|
|
{ "text": "Published", "value": "published" },
|
|
{ "text": "Past", "value": "past" }
|
|
]}
|
|
},
|
|
"schema": { "default_value": "draft" }
|
|
},
|
|
{
|
|
"field": "title",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "start_date",
|
|
"type": "date",
|
|
"meta": { "width": "half", "interface": "datetime" }
|
|
},
|
|
{
|
|
"field": "end_date",
|
|
"type": "date",
|
|
"meta": { "width": "half", "interface": "datetime" }
|
|
},
|
|
{
|
|
"field": "location",
|
|
"type": "string",
|
|
"meta": { "width": "full", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "description",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-rich-text-html" }
|
|
},
|
|
{
|
|
"field": "image",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "file-image", "special": ["file"] }
|
|
},
|
|
{
|
|
"field": "featured_artworks",
|
|
"type": "alias",
|
|
"meta": { "width": "full", "interface": "list-m2m", "special": ["m2m"] }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "pages",
|
|
"meta": {
|
|
"collection": "pages",
|
|
"icon": "article",
|
|
"note": "Website pages (About, Contact, etc.)"
|
|
},
|
|
"schema": { "name": "pages" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "status",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Draft", "value": "draft" },
|
|
{ "text": "Published", "value": "published" }
|
|
]}
|
|
},
|
|
"schema": { "default_value": "draft" }
|
|
},
|
|
{
|
|
"field": "title",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "slug",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "content",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-rich-text-html" }
|
|
},
|
|
{
|
|
"field": "seo_title",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "seo_description",
|
|
"type": "text",
|
|
"meta": { "width": "half", "interface": "input-multiline" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "testimonials",
|
|
"meta": {
|
|
"collection": "testimonials",
|
|
"icon": "format_quote",
|
|
"note": "Client testimonials and quotes"
|
|
},
|
|
"schema": { "name": "testimonials" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "status",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Draft", "value": "draft" },
|
|
{ "text": "Published", "value": "published" }
|
|
]}
|
|
},
|
|
"schema": { "default_value": "draft" }
|
|
},
|
|
{
|
|
"field": "quote",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-multiline", "required": true }
|
|
},
|
|
{
|
|
"field": "author",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "role",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "note": "e.g., Collector, Gallery Owner" }
|
|
},
|
|
{
|
|
"field": "sort",
|
|
"type": "integer",
|
|
"meta": { "hidden": true, "interface": "input" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "wisdom_words",
|
|
"meta": {
|
|
"collection": "wisdom_words",
|
|
"icon": "auto_awesome",
|
|
"note": "Inspirational quotes/wisdom gallery (from existing site)"
|
|
},
|
|
"schema": { "name": "wisdom_words" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "status",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Draft", "value": "draft" },
|
|
{ "text": "Published", "value": "published" }
|
|
]}
|
|
},
|
|
"schema": { "default_value": "draft" }
|
|
},
|
|
{
|
|
"field": "quote",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-multiline" }
|
|
},
|
|
{
|
|
"field": "author",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "image",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "file-image", "special": ["file"] }
|
|
},
|
|
{
|
|
"field": "sort",
|
|
"type": "integer",
|
|
"meta": { "hidden": true, "interface": "input" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "site_settings",
|
|
"meta": {
|
|
"collection": "site_settings",
|
|
"icon": "settings",
|
|
"note": "Global site configuration",
|
|
"singleton": true
|
|
},
|
|
"schema": { "name": "site_settings" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "integer",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input" },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "site_title",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "tagline",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "logo",
|
|
"type": "uuid",
|
|
"meta": { "width": "half", "interface": "file-image", "special": ["file"] }
|
|
},
|
|
{
|
|
"field": "footer_text",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-multiline" }
|
|
},
|
|
{
|
|
"field": "social_links",
|
|
"type": "json",
|
|
"meta": {
|
|
"width": "full",
|
|
"interface": "list",
|
|
"options": {
|
|
"template": "{{platform}}: {{url}}",
|
|
"fields": [
|
|
{ "field": "platform", "name": "Platform", "type": "string", "meta": { "interface": "input", "width": "half" }},
|
|
{ "field": "url", "name": "URL", "type": "string", "meta": { "interface": "input", "width": "half" }}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"field": "newsletter_enabled",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean" },
|
|
"schema": { "default_value": true }
|
|
},
|
|
{
|
|
"field": "store_enabled",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean" },
|
|
"schema": { "default_value": true }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "locations",
|
|
"meta": {
|
|
"collection": "locations",
|
|
"icon": "store",
|
|
"note": "Galleries, venues, and locations where art is displayed/sold",
|
|
"display_template": "{{name}} ({{type}})"
|
|
},
|
|
"schema": { "name": "locations" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "name",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "type",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Gallery", "value": "gallery" },
|
|
{ "text": "Auction", "value": "auction" },
|
|
{ "text": "Studio", "value": "studio" },
|
|
{ "text": "Private", "value": "private" },
|
|
{ "text": "Other", "value": "other" }
|
|
]}
|
|
}
|
|
},
|
|
{
|
|
"field": "is_active",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean" },
|
|
"schema": { "default_value": true }
|
|
},
|
|
{
|
|
"field": "contact_name",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "email",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "phone",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "website",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "street",
|
|
"type": "string",
|
|
"meta": { "width": "full", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "city",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "county",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "postcode",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "country",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "sale_cut_percent",
|
|
"type": "decimal",
|
|
"meta": { "width": "half", "interface": "input", "note": "Gallery's percentage cut on sales" }
|
|
},
|
|
{
|
|
"field": "notes",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-multiline" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "contacts",
|
|
"meta": {
|
|
"collection": "contacts",
|
|
"icon": "contacts",
|
|
"note": "Customers, collectors, press contacts, and organizations",
|
|
"display_template": "{{first_name}} {{last_name}}"
|
|
},
|
|
"schema": { "name": "contacts" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "first_name",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "last_name",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "organisation",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "email",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "phone",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "website",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "street",
|
|
"type": "string",
|
|
"meta": { "width": "full", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "city",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "county",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "postcode",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "country",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input" }
|
|
},
|
|
{
|
|
"field": "contact_type",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Customer", "value": "customer" },
|
|
{ "text": "Collector", "value": "collector" },
|
|
{ "text": "Press", "value": "press" },
|
|
{ "text": "Gallery", "value": "gallery" },
|
|
{ "text": "Other", "value": "other" }
|
|
]}
|
|
}
|
|
},
|
|
{
|
|
"field": "is_press_contact",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean" },
|
|
"schema": { "default_value": false }
|
|
},
|
|
{
|
|
"field": "has_purchased",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean" },
|
|
"schema": { "default_value": false }
|
|
},
|
|
{
|
|
"field": "no_mailouts",
|
|
"type": "boolean",
|
|
"meta": { "width": "half", "interface": "boolean", "note": "Opt out of marketing emails" },
|
|
"schema": { "default_value": false }
|
|
},
|
|
{
|
|
"field": "notes",
|
|
"type": "text",
|
|
"meta": { "width": "full", "interface": "input-multiline" }
|
|
},
|
|
{
|
|
"field": "airtable_id",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "hidden": true, "note": "Original Airtable record ID" }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"collection": "pricing_bands",
|
|
"meta": {
|
|
"collection": "pricing_bands",
|
|
"icon": "attach_money",
|
|
"note": "Standard pricing tiers for art and products",
|
|
"display_template": "{{name}} - ${{price_usd}}"
|
|
},
|
|
"schema": { "name": "pricing_bands" },
|
|
"fields": [
|
|
{
|
|
"field": "id",
|
|
"type": "uuid",
|
|
"meta": { "hidden": true, "readonly": true, "interface": "input", "special": ["uuid"] },
|
|
"schema": { "is_primary_key": true }
|
|
},
|
|
{
|
|
"field": "name",
|
|
"type": "string",
|
|
"meta": { "width": "half", "interface": "input", "required": true }
|
|
},
|
|
{
|
|
"field": "category",
|
|
"type": "string",
|
|
"meta": {
|
|
"width": "half",
|
|
"interface": "select-dropdown",
|
|
"options": { "choices": [
|
|
{ "text": "Fine Art", "value": "fine_art" },
|
|
{ "text": "Products", "value": "products" }
|
|
]}
|
|
}
|
|
},
|
|
{
|
|
"field": "price_usd",
|
|
"type": "decimal",
|
|
"meta": { "width": "half", "interface": "input", "options": { "min": 0 } }
|
|
},
|
|
{
|
|
"field": "sort",
|
|
"type": "integer",
|
|
"meta": { "hidden": true, "interface": "input" }
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"relations": [
|
|
{
|
|
"collection": "artworks",
|
|
"field": "series",
|
|
"related_collection": "series",
|
|
"meta": { "one_field": "artworks" },
|
|
"schema": { "on_delete": "SET NULL" }
|
|
}
|
|
]
|
|
}
|