Extender modelos
Introducci贸n
Es frecuente tener que extender los modelos de la capa de servicios debida a la l贸gica propia del negocio. En este caso vamos a ver como extender el modelo de CategoryType
para a帽adir un atributo nuevo.
1. Agregar atributo en la configuraci贸n
Modificamos el fichero con la config de Mercury mercury.config.js
para a帽adir el nuevo atributo.
const configs = {
storefront: [
{ locale: 'es', storeCode: 'default' }
],
components: { ... },
models: {
+ category: {
+ extraFields: [
+ {
+ field: 'tet_category_thumbnail',
+ property: 'thumbnail',
+ type: 'string'
+ }
+ ]
+ }
},
tailwind: { ... }
}
Por cada atributo nuevo que queramos a帽adir, tendremos que a帽adir un objeto en el array extraFields
con los siguientes atributos:
field
: Nombre del atributo con el que proviene de la APIproperty
: Nombre del atributo que queremos que tenga en el modelotype
: Tipo de dato del atributo (string, number, boolean, etc)
2. Extender type del modelo
Para extender el modelo de CategoryType
siguiendo el ejemplo anterior, creamos un fichero catalog.d.ts
en la carpeta src/types
con el siguiente contenido:
import type { CategoryType } from '@mercury/models'
declare module '@mercury/models' {
export interface CategoryType {
thumbnail: string
}
}
CategoryType.protoype.thumbnail = ''