Files
nxxmdata/bank-backend/models/SupervisionTask.js

167 lines
3.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 监管任务模型
* @file SupervisionTask.js
* @description 监管任务数据模型定义
*/
const { DataTypes } = require('sequelize');
const BaseModel = require('./BaseModel');
const { sequelize } = require('../config/database');
class SupervisionTask extends BaseModel {}
SupervisionTask.init({
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
applicationNumber: {
type: DataTypes.STRING(50),
allowNull: false,
unique: true,
comment: '申请单号'
},
contractNumber: {
type: DataTypes.STRING(50),
allowNull: false,
unique: true,
comment: '放款合同编号'
},
productName: {
type: DataTypes.STRING(100),
allowNull: false,
comment: '产品名称'
},
customerName: {
type: DataTypes.STRING(50),
allowNull: false,
comment: '客户姓名'
},
idType: {
type: DataTypes.ENUM('id_card', 'passport', 'other'),
allowNull: false,
defaultValue: 'id_card',
comment: '证件类型id_card-身份证passport-护照other-其他'
},
idNumber: {
type: DataTypes.STRING(50),
allowNull: false,
comment: '证件号码'
},
assetType: {
type: DataTypes.ENUM('cattle', 'sheep', 'pig', 'poultry', 'other'),
allowNull: false,
defaultValue: 'cattle',
comment: '养殖生资种类cattle-牛sheep-羊pig-猪poultry-家禽other-其他'
},
assetQuantity: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
comment: '监管生资数量'
},
supervisionStatus: {
type: DataTypes.ENUM('pending', 'supervising', 'completed', 'suspended'),
allowNull: false,
defaultValue: 'pending',
comment: '监管状态pending-待监管supervising-监管中completed-已完成suspended-已暂停'
},
importTime: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW,
comment: '任务导入时间'
},
startTime: {
type: DataTypes.DATEONLY,
allowNull: false,
comment: '监管起始时间'
},
endTime: {
type: DataTypes.DATEONLY,
allowNull: false,
comment: '监管结束时间'
},
loanAmount: {
type: DataTypes.DECIMAL(15, 2),
allowNull: true,
defaultValue: 0.00,
comment: '贷款金额'
},
interestRate: {
type: DataTypes.DECIMAL(5, 4),
allowNull: true,
defaultValue: 0.0000,
comment: '利率'
},
loanTerm: {
type: DataTypes.INTEGER,
allowNull: true,
defaultValue: 12,
comment: '贷款期限(月)'
},
supervisorName: {
type: DataTypes.STRING(50),
allowNull: true,
comment: '监管员姓名'
},
supervisorPhone: {
type: DataTypes.STRING(20),
allowNull: true,
comment: '监管员电话'
},
farmAddress: {
type: DataTypes.STRING(200),
allowNull: true,
comment: '养殖场地址'
},
remarks: {
type: DataTypes.TEXT,
allowNull: true,
comment: '备注'
},
createdBy: {
type: DataTypes.INTEGER,
allowNull: true,
comment: '创建人ID'
},
updatedBy: {
type: DataTypes.INTEGER,
allowNull: true,
comment: '更新人ID'
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
}
}, {
sequelize,
modelName: 'SupervisionTask',
tableName: 'supervision_tasks',
timestamps: true,
underscored: true,
createdAt: 'createdAt',
updatedAt: 'updatedAt',
comment: '监管任务表'
});
// 定义关联关系
SupervisionTask.associate = (models) => {
SupervisionTask.belongsTo(models.User, {
foreignKey: 'createdBy',
as: 'creator'
});
SupervisionTask.belongsTo(models.User, {
foreignKey: 'updatedBy',
as: 'updater'
});
};
module.exports = SupervisionTask;