- Introduced a new field `lastNobilityAdvanceAt` in the FalukantUser model to track the last time a user advanced in nobility. - Updated the `FalukantService` to enforce a one-week cooldown between nobility advancements, throwing an error if the user attempts to advance too soon. - Ensured the `lastNobilityAdvanceAt` field is updated with the current date upon a successful nobility advancement.
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
import { Model, DataTypes } from 'sequelize';
|
|
import { sequelize } from '../../../utils/sequelize.js';
|
|
import RegionData from './region.js';
|
|
|
|
class FalukantUser extends Model { }
|
|
|
|
FalukantUser.init({
|
|
userId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
references: {
|
|
model: {
|
|
tableName: 'user',
|
|
schema: 'community'
|
|
},
|
|
key: 'id'
|
|
},
|
|
unique: true},
|
|
money: {
|
|
type: DataTypes.DECIMAL(10, 2),
|
|
allowNull: false,
|
|
defaultValue: 0.00},
|
|
creditAmount: {
|
|
type: DataTypes.DECIMAL(10, 2),
|
|
allowNull: false,
|
|
defaultValue: 0.00},
|
|
todayCreditTaken: {
|
|
type: DataTypes.DECIMAL(10, 2),
|
|
allowNull: false,
|
|
defaultValue: 0.00},
|
|
creditInterestRate: {
|
|
type: DataTypes.DECIMAL(5, 2),
|
|
allowNull: false,
|
|
defaultValue: 0.00},
|
|
certificate: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: false,
|
|
defaultValue: 1},
|
|
mainBranchRegionId: {
|
|
type: DataTypes.INTEGER,
|
|
allowNull: true,
|
|
references: {
|
|
model: RegionData,
|
|
key: 'id',
|
|
schema: 'falukant_data'
|
|
}
|
|
},
|
|
lastNobilityAdvanceAt: {
|
|
type: DataTypes.DATE,
|
|
allowNull: true
|
|
}
|
|
}, {
|
|
sequelize,
|
|
modelName: 'FalukantUser',
|
|
tableName: 'falukant_user',
|
|
schema: 'falukant_data',
|
|
timestamps: true,
|
|
underscored: true});
|
|
|
|
export default FalukantUser;
|