@fabrix/spool-cart
Version:
Spool - eCommerce Spool for Fabrix
213 lines (212 loc) • 6.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Product = {
default: (app) => {
return {
include: [
{
model: app.models['ProductImage'].instance,
as: 'images',
order: [['position', 'ASC']]
},
{
model: app.models['Tag'].instance,
as: 'tags',
attributes: ['name', 'id'],
order: [['name', 'ASC']]
},
{
model: app.models['ProductVariant'].instance,
as: 'variants',
attributes: {
exclude: ['updated_at', 'created_at']
},
include: [
{
model: app.models['Metadata'].instance,
as: 'metadata',
attributes: ['data', 'id']
},
{
model: app.models['ProductImage'].instance,
as: 'images',
order: [['position', 'ASC']],
attributes: {
exclude: ['src', 'updated_at', 'created_at']
}
}
]
},
{
model: app.models['Metadata'].instance,
as: 'metadata',
attributes: ['data', 'id']
},
{
model: app.models['Vendor'].instance,
as: 'vendors',
attributes: ['id', 'handle', 'name']
},
{
model: app.models['Collection'].instance,
as: 'collections',
attributes: [
'id',
'title',
'handle',
'tax_type',
'tax_rate',
'tax_name',
]
}
],
order: [
[
{
model: app.models['ProductVariant'].instance,
as: 'variants'
},
'position', 'ASC'
],
[
{
model: app.models['ProductImage'].instance,
as: 'images'
},
'position', 'ASC'
]
]
};
},
findAllDefault: (app) => {
return {
distinct: true,
include: [
{
model: app.models['ProductImage'].instance,
as: 'images',
},
{
model: app.models['Tag'].instance,
as: 'tags',
attributes: ['name', 'id']
},
{
model: app.models['Collection'].instance,
as: 'collections',
attributes: [
'id',
'title',
'handle',
'tax_type',
'tax_rate',
'tax_name',
]
},
{
model: app.models['Vendor'].instance,
as: 'vendors',
attributes: [
'id',
'handle',
'name'
]
}
],
order: [
[
{
model: app.models['ProductImage'].instance,
as: 'images'
},
'position', 'ASC'
]
]
};
},
collections: (app) => {
return {
include: [
{
model: app.models['Collection'].instance,
as: 'collections',
attributes: [
'id',
'title',
'handle',
'tax_type',
'tax_rate',
'tax_name',
]
}
]
};
},
images: (app) => {
return {
include: [
{
model: app.models['ProductImage'].instance,
as: 'images'
}
],
order: [
[
{
model: app.models['ProductImage'].instance,
as: 'images'
},
'position', 'ASC'
]
]
};
},
tags: (app) => {
return {
include: [
{
model: app.models['Tag'].instance,
as: 'tags',
attributes: ['name', 'id']
}
],
order: [
[
{
model: app.models['Tag'].instance,
as: 'tags'
},
'name', 'ASC'
]
]
};
},
variants: (app) => {
return {
include: [
{
model: app.models['ProductVariant'].instance,
as: 'variants',
attributes: {
exclude: ['updated_at', 'created_at']
},
include: [
{
model: app.models['Metadata'].instance,
as: 'metadata',
attributes: ['data', 'id']
},
{
model: app.models['ProductImage'].instance,
as: 'images',
order: [['position', 'ASC']],
attributes: {
exclude: ['src', 'updated_at', 'created_at']
}
}
]
}
]
};
}
};