UNPKG

rappopo-sob-marine

Version:

Rappopo Sob - Marine

64 lines (59 loc) 1.75 kB
const { _, Sequelize } = require('rappopo-sob').Helper const schema = { siteId: { type: Sequelize.INTEGER, defaultValue: 0 }, name: Sequelize.STRING(50), class: Sequelize.STRING(20), picName: Sequelize.STRING(50), picRole: Sequelize.STRING(50), picPhone: Sequelize.STRING(50), picEmail: Sequelize.STRING(50), lng: Sequelize.DOUBLE, lat: Sequelize.DOUBLE, address1: Sequelize.STRING, address2: Sequelize.STRING, city: Sequelize.STRING(50), zipCode: Sequelize.STRING(10), state: Sequelize.STRING(50), country: Sequelize.STRING(2), phone: Sequelize.STRING(50), email: Sequelize.STRING(100), website: Sequelize.STRING } const fields = _.concat( ['id', 'createdAt', 'updatedAt'], _.keys(schema) ) const entityValidator = { name: { type: 'string', max: 50, trim: true }, address1: { type: 'string', optional: true, trim: true }, address2: { type: 'string', optional: true, trim: true }, city: { type: 'string', max: 50, optional: true, trim: true }, state: { type: 'string', max: 50, optional: true, trim: true }, zipCode: { type: 'string', max: 10, optional: true, trim: true }, country: { type: 'string', empty: false, length: 2, uppercase: true }, phone: { type: 'string', optional: true, trim: true } } module.exports = ({ dbSql }) => { return { mixins: [dbSql], model: { define: schema, options: { underscored: true, indexes: [ { fields: ['name'] }, { fields: ['pic_name'] }, { fields: ['country'] }, { fields: ['city'] }, { fields: ['zip_code'] }, { fields: ['lng'] }, { fields: ['lat'] } ] } }, settings: { fields, entityValidator } } }