1
This commit is contained in:
97
api/model/pricing_plans.js
Normal file
97
api/model/pricing_plans.js
Normal file
@@ -0,0 +1,97 @@
|
||||
const Sequelize = require('sequelize');
|
||||
|
||||
/**
|
||||
* 价格套餐表模型
|
||||
* 存储各种价格套餐的配置信息,支持管理员在后台配置和管理
|
||||
*/
|
||||
module.exports = (db) => {
|
||||
const pricing_plans = db.define("pricing_plans", {
|
||||
name: {
|
||||
comment: '套餐名称(如:体验套餐、月度套餐等)',
|
||||
type: Sequelize.STRING(100),
|
||||
allowNull: false,
|
||||
defaultValue: ''
|
||||
},
|
||||
duration: {
|
||||
comment: '时长描述(如:7天、30天、永久)',
|
||||
type: Sequelize.STRING(50),
|
||||
allowNull: false,
|
||||
defaultValue: ''
|
||||
},
|
||||
days: {
|
||||
comment: '天数(-1表示永久,0表示无限制)',
|
||||
type: Sequelize.INTEGER,
|
||||
allowNull: false,
|
||||
defaultValue: 0
|
||||
},
|
||||
price: {
|
||||
comment: '售价(元)',
|
||||
type: Sequelize.DECIMAL(10, 2),
|
||||
allowNull: false,
|
||||
defaultValue: 0.00
|
||||
},
|
||||
original_price: {
|
||||
comment: '原价(元),可为空表示无原价',
|
||||
type: Sequelize.DECIMAL(10, 2),
|
||||
allowNull: true,
|
||||
defaultValue: null
|
||||
},
|
||||
unit: {
|
||||
comment: '价格单位',
|
||||
type: Sequelize.STRING(20),
|
||||
allowNull: false,
|
||||
defaultValue: '元'
|
||||
},
|
||||
discount: {
|
||||
comment: '折扣描述(如:8.3折、超值)',
|
||||
type: Sequelize.STRING(50),
|
||||
allowNull: true,
|
||||
defaultValue: null
|
||||
},
|
||||
features: {
|
||||
comment: '功能特性列表(JSON字符串数组)',
|
||||
type: Sequelize.TEXT,
|
||||
allowNull: false,
|
||||
defaultValue: '[]'
|
||||
},
|
||||
featured: {
|
||||
comment: '是否为推荐套餐(1=推荐,0=普通)',
|
||||
type: Sequelize.TINYINT(1),
|
||||
allowNull: false,
|
||||
defaultValue: 0
|
||||
},
|
||||
is_active: {
|
||||
comment: '是否启用(1=启用,0=禁用)',
|
||||
type: Sequelize.TINYINT(1),
|
||||
allowNull: false,
|
||||
defaultValue: 1
|
||||
},
|
||||
sort_order: {
|
||||
comment: '排序顺序(越小越靠前)',
|
||||
type: Sequelize.INTEGER,
|
||||
allowNull: false,
|
||||
defaultValue: 0
|
||||
},
|
||||
|
||||
}, {
|
||||
timestamps: false,
|
||||
indexes: [
|
||||
{
|
||||
unique: false,
|
||||
fields: ['is_active']
|
||||
},
|
||||
{
|
||||
unique: false,
|
||||
fields: ['is_delete']
|
||||
},
|
||||
{
|
||||
unique: false,
|
||||
fields: ['sort_order']
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// pricing_plans.sync({ force: true });
|
||||
|
||||
return pricing_plans;
|
||||
}
|
||||
Reference in New Issue
Block a user