giganet_conecta
Version:
Aplicação com o fim de facilitar conexões com APi's e Banco de Dados (MySql, Mongo e Elasticsearch).
105 lines (100 loc) • 2.33 kB
JavaScript
const { Model, DataTypes, fn } = require("sequelize");
module.exports = Vendedores;
async function Vendedores(sequelize) {
class Vendedor extends Model {}
Vendedor.init(
{
id: {
autoIncrement: true,
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
},
nome: {
type: DataTypes.STRING(100),
allowNull: false,
},
comissao: {
type: DataTypes.DECIMAL(15, 2),
allowNull: false,
},
endereco: {
type: DataTypes.STRING(200),
allowNull: true,
},
bairro: {
type: DataTypes.STRING(100),
allowNull: true,
},
id_cidade: {
type: DataTypes.INTEGER,
allowNull: true,
references: {
model: "cidade",
key: "id",
},
},
telefone: {
type: DataTypes.STRING(30),
allowNull: true,
},
celular: {
type: DataTypes.STRING(30),
allowNull: true,
},
cnpj_cpf: {
type: DataTypes.STRING(30),
allowNull: true,
},
ie_rg: {
type: DataTypes.STRING(30),
allowNull: true,
},
email: {
type: DataTypes.STRING(200),
allowNull: true,
},
status: {
type: DataTypes.ENUM("A", "I"),
allowNull: false,
},
comissao_v: {
type: DataTypes.DECIMAL(10, 2),
allowNull: true,
},
comissao_perc_recebimento: {
type: DataTypes.DECIMAL(5, 2),
allowNull: false,
defaultValue: 0.0,
},
pipe_id_usuario: {
type: DataTypes.INTEGER,
allowNull: true,
},
ultima_atualizacao: {
type: DataTypes.DATE,
allowNull: true,
defaultValue: fn("current_timestamp"),
},
},
{
sequelize,
tableName: "vendedor",
timestamps: false,
indexes: [
{
name: "PRIMARY",
unique: true,
using: "BTREE",
fields: [{ name: "id" }],
},
{
name: "id_cidade",
using: "BTREE",
fields: [{ name: "id_cidade" }],
},
],
}
);
return Vendedor;
}