57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
const Sequelize = require("sequelize");
|
||
|
||
/**
|
||
* 业务 API Token(管理端页面:admin/src/views/subscription/tokens.vue)
|
||
* 动态路由 component 与 admin/src/router/component-map.js 中
|
||
* subscription/token 或 subscription/biz_api_token 对应。
|
||
*/
|
||
module.exports = (db) => {
|
||
const biz_api_token = db.define(
|
||
"biz_api_token",
|
||
{
|
||
|
||
user_id: {
|
||
type: Sequelize.BIGINT.UNSIGNED,
|
||
allowNull: false,
|
||
},
|
||
plan_id: {
|
||
type: Sequelize.BIGINT.UNSIGNED,
|
||
allowNull: true,
|
||
},
|
||
token_name: {
|
||
type: Sequelize.STRING(100),
|
||
allowNull: false,
|
||
defaultValue: "",
|
||
},
|
||
key: {
|
||
type: Sequelize.STRING(128),
|
||
allowNull: true,
|
||
},
|
||
token_hash: {
|
||
type: Sequelize.STRING(64),
|
||
allowNull: false,
|
||
unique: true,
|
||
},
|
||
secret_cipher: {
|
||
type: Sequelize.TEXT,
|
||
allowNull: true,
|
||
},
|
||
status: {
|
||
type: Sequelize.ENUM("active", "revoked", "expired"),
|
||
allowNull: false,
|
||
defaultValue: "active",
|
||
},
|
||
expire_at: { type: Sequelize.DATE, allowNull: false },
|
||
last_used_at: { type: Sequelize.DATE, allowNull: true },
|
||
},
|
||
{
|
||
tableName: "biz_api_token",
|
||
freezeTableName: true,
|
||
timestamps: false,
|
||
underscored: true,
|
||
}
|
||
);
|
||
//biz_api_token.sync({ force: true });
|
||
return biz_api_token;
|
||
};
|