UNPKG

rappopo-sob-marine

Version:

Rappopo Sob - Marine

132 lines (127 loc) 3.86 kB
const { _, Sequelize } = require('rappopo-sob').Helper const schema = { siteId: { type: Sequelize.INTEGER, defaultValue: 0 }, name: Sequelize.STRING(50), loCode: 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), wpiIdx: Sequelize.INTEGER, wpiRegion: Sequelize.INTEGER, wpiPub: Sequelize.STRING(20), chart: Sequelize.STRING(20), harborSize: Sequelize.STRING(10), harborType: Sequelize.STRING(10), shelter: Sequelize.STRING(10), entryTide: Sequelize.BOOLEAN, entrySwell: Sequelize.BOOLEAN, entryIce: Sequelize.BOOLEAN, entryOther: Sequelize.BOOLEAN, overhdLim: Sequelize.BOOLEAN, chanDepth: Sequelize.STRING(10), anchDepth: Sequelize.STRING(10), cargoDepth: Sequelize.STRING(10), oilDepth: Sequelize.STRING(10), tideRange: Sequelize.DOUBLE, maxVessel: Sequelize.STRING(10), holdGround: Sequelize.BOOLEAN, turnBasin: Sequelize.BOOLEAN, portOfEntry: Sequelize.BOOLEAN, usRep: Sequelize.BOOLEAN, etaMsg: Sequelize.BOOLEAN, pilotReqd: Sequelize.BOOLEAN, pilotAvail: Sequelize.BOOLEAN, pilotLocAssist: Sequelize.BOOLEAN, pilotAdvsd: Sequelize.BOOLEAN, tugSalvage: Sequelize.BOOLEAN, tugAssist: Sequelize.BOOLEAN, quarPratq: Sequelize.BOOLEAN, quarSsccCert: Sequelize.BOOLEAN, quarOther: Sequelize.BOOLEAN, commPhone: Sequelize.BOOLEAN, commFax: Sequelize.BOOLEAN, commRadio: Sequelize.BOOLEAN, commVhf: Sequelize.BOOLEAN, commAir: Sequelize.BOOLEAN, commRail: Sequelize.BOOLEAN, cargWharv: Sequelize.BOOLEAN, cargAnch: Sequelize.BOOLEAN, cargMedMoor: Sequelize.BOOLEAN, cargBeachMoor: Sequelize.BOOLEAN, cargIceMoor: Sequelize.BOOLEAN, medFacil: Sequelize.BOOLEAN, garbDisp: Sequelize.BOOLEAN, degaus: Sequelize.BOOLEAN, drtyBallst: Sequelize.BOOLEAN, craneFix: Sequelize.BOOLEAN, craneMobil: Sequelize.BOOLEAN, craneFloat: Sequelize.BOOLEAN, lift100: Sequelize.BOOLEAN, lift50: Sequelize.BOOLEAN, lift25: Sequelize.BOOLEAN, lift0: Sequelize.BOOLEAN, svcLongsh: Sequelize.BOOLEAN, svcElectr: Sequelize.BOOLEAN, svcSteam: Sequelize.BOOLEAN, svcNavEquip: Sequelize.BOOLEAN, svcElecRepair: Sequelize.BOOLEAN, supProv: Sequelize.BOOLEAN, supWater: Sequelize.BOOLEAN, supFuelOil: Sequelize.BOOLEAN, supDiesel: Sequelize.BOOLEAN, supDeck: Sequelize.BOOLEAN, supEng: Sequelize.BOOLEAN, repair: Sequelize.STRING(10), drydock: Sequelize.STRING(10), railway: Sequelize.STRING(10) } const fields = _.concat( ['id', 'createdAt', 'updatedAt'], _.keys(schema) ) const entityValidator = { name: { type: 'string', max: 50, trim: true }, address1: { type: 'string', trim: true }, address2: { type: 'string', trim: true }, city: { type: 'string', max: 50, trim: true }, state: { type: 'string', max: 50, trim: true }, zipCode: { type: 'string', max: 10, trim: true }, country: { type: 'string', empty: false, length: 2, uppercase: true }, phone: { type: 'string', trim: true } } module.exports = ({ dbSql }) => { return { mixins: [dbSql], model: { define: schema, options: { underscored: true, indexes: [ { fields: ['name'] }, { fields: ['lo_code'] }, { fields: ['pic_name'] }, { fields: ['country'] }, { fields: ['city'] }, { fields: ['zip_code'] }, { fields: ['wpi_idx'] }, { fields: ['wpi_region'] } ] } }, settings: { fields, entityValidator } } }