60 lines
1.5 KiB
JavaScript
60 lines
1.5 KiB
JavaScript
const { DataTypes } = require('sequelize');
|
||
const sequelize = require('../config/database');
|
||
|
||
const ShareCodeLog = sequelize.define('ShareCodeLog', {
|
||
id: {
|
||
type: DataTypes.INTEGER,
|
||
primaryKey: true,
|
||
autoIncrement: true,
|
||
comment: '主键',
|
||
},
|
||
mac_addr: {
|
||
type: DataTypes.STRING(17),
|
||
allowNull: false,
|
||
comment: '设备 MAC 地址,如 AA:BB:CC:DD:EE:FF',
|
||
},
|
||
share_code: {
|
||
type: DataTypes.CHAR(5),
|
||
allowNull: false,
|
||
comment: '分享码(5位字符)',
|
||
},
|
||
action: {
|
||
type: DataTypes.ENUM('export', 'import'),
|
||
allowNull: false,
|
||
comment: '操作类型:export=导出分享码,import=导入分享码',
|
||
},
|
||
ip_addr: {
|
||
type: DataTypes.STRING(45),
|
||
allowNull: false,
|
||
defaultValue: '',
|
||
comment: '用户 IP 地址(支持 IPv4/IPv6)',
|
||
},
|
||
eq_data: {
|
||
type: DataTypes.JSON,
|
||
allowNull: false,
|
||
comment: 'EQ 数据快照(JSON)',
|
||
},
|
||
expire_at: {
|
||
type: DataTypes.DATE,
|
||
allowNull: true,
|
||
comment: '分享码到期时间(导出时快照,导入可为空)',
|
||
},
|
||
create_at: {
|
||
type: DataTypes.DATE,
|
||
allowNull: false,
|
||
defaultValue: DataTypes.NOW,
|
||
comment: '操作时间',
|
||
},
|
||
}, {
|
||
tableName: 'share_code_log',
|
||
comment: '分享码流水表',
|
||
indexes: [
|
||
{ name: 'idx_mac_addr', fields: ['mac_addr'] },
|
||
{ name: 'idx_share_code', fields: ['share_code'] },
|
||
{ name: 'idx_create_at', fields: ['create_at'] },
|
||
],
|
||
});
|
||
|
||
module.exports = ShareCodeLog;
|
||
|