Start implementation of branches, new form element tabledropdown, model improvements

This commit is contained in:
Torsten Schulz
2024-12-06 23:35:28 +01:00
parent 8c15fb7f2b
commit 1bb2bd49d5
57 changed files with 2176 additions and 170 deletions

View File

@@ -0,0 +1,34 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class Branch extends Model { }
Branch.init({
branchTypeId: {
type: DataTypes.INTEGER,
allowNull: false,
},
regionId: {
type: DataTypes.INTEGER,
allowNull: false,
},
falukantUserId: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
sequelize,
modelName: 'BranchType',
tableName: 'branch',
schema: 'falukant_data',
timestamps: false,
underscored: true,
indexes: [
{
unique: true,
fields: ['region_id', 'falukant_user_id']
}
],
});
export default Branch;

View File

@@ -0,0 +1,49 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class FalukantCharacter extends Model {};
FalukantCharacter.init({
userId: {
type: DataTypes.INTEGER,
allowNull: true,
},
regionId: {
type: DataTypes.INTEGER,
allowNull: false,
},
firstName: {
type: DataTypes.INTEGER,
allowNull: false,
},
lastName: {
type: DataTypes.INTEGER,
allowNull: false,
},
birthdate: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
},
gender: {
type: DataTypes.STRING
},
health: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
titleOfNobility: {
type: DataTypes.INTEGER,
allowNull: false,
}
}, {
sequelize,
modelName: 'FalukantCharacter',
tableName: 'character',
schema: 'falukant_data',
timestamps: true,
underscored: true,
});
export default FalukantCharacter;

View File

@@ -0,0 +1,34 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class Knowledge extends Model { }
Knowledge.init({
productId: {
type: DataTypes.INTEGER,
allowNull: false,
},
characterId: {
type: DataTypes.INTEGER,
allowNull: false,
},
knowledge: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0,
}
}, {
sequelize,
modelName: 'Knowledge',
tableName: 'knowledge',
schema: 'falukant_data',
timestamps: false,
underscored: true,
hooks: {
beforeCreate: (knowledge) => {
knowledge.knowledge = Math.floor(Math.random() * 61) + 20;
}
}
});
export default Knowledge;

View File

@@ -0,0 +1,32 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class FalukantStock extends Model { }
FalukantStock.init({
userId: {
type: DataTypes.INTEGER,
allowNull: false,
},
regionId: {
type: DataTypes.INTEGER,
allowNull: false,
},
stockTypeId: {
type: DataTypes.INTEGER,
allowNull: false,
},
quantity: {
type: DataTypes.INTEGER,
allowNull: false,
},
}, {
sequelize,
modelName: 'StockType',
tableName: 'stock',
schema: 'falukant_data',
timestamps: false,
underscored: true,
});
export default FalukantStock;

View File

@@ -14,7 +14,8 @@ FalukantUser.init({
schema: 'community'
},
key: 'id'
}
},
unique: true,
},
money: {
type: DataTypes.DECIMAL(10, 2),

View File

@@ -0,0 +1,26 @@
import { sequelize } from '../../../utils/sequelize.js';
import { DataTypes } from 'sequelize';
const FalukantPredefineFirstname = sequelize.define('firstname', {
name: {
type: DataTypes.STRING,
allowNull: false
},
gender: {
type: DataTypes.STRING,
allowNull: false
}
}, {
tableName: 'firstname',
schema: 'falukant_predefine',
underscored: true,
timestamps: false,
indexes: [
{
unique: true,
fields: ['name', 'gender']
}
],
});
export default FalukantPredefineFirstname;

View File

@@ -0,0 +1,23 @@
import { sequelize } from '../../../utils/sequelize.js';
import { DataTypes } from 'sequelize';
const FalukantPredefineLastname = sequelize.define('lastname', {
name: {
type: DataTypes.STRING,
length: 1,
allowNull: false
},
}, {
tableName: 'lastname',
schema: 'falukant_predefine',
underscored: true,
timestamps: false,
indexes: [
{
unique: true,
fields: ['name']
}
],
});
export default FalukantPredefineLastname;

View File

@@ -0,0 +1,30 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class BranchType extends Model { }
BranchType.init({
labelTr: {
type: DataTypes.STRING,
allowNull: false,
},
baseCost: {
type: DataTypes.INTEGER,
allowNull: false,
}
}, {
sequelize,
modelName: 'BranchType',
tableName: 'branch',
schema: 'falukant_type',
timestamps: false,
underscored: true,
indexes: [
{
unique: true,
fields: ['label_tr']
}
],
});
export default BranchType;

View File

@@ -0,0 +1,38 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class ProductType extends Model { }
ProductType.init({
labelTr: {
type: DataTypes.STRING,
allowNull: false,
},
category: {
type: DataTypes.INTEGER,
allowNull: false,
},
productionTime: {
type: DataTypes.INTEGER,
allowNull: false,
},
sellCost: {
type: DataTypes.INTEGER,
allowNull: false,
}
}, {
sequelize,
modelName: 'ProductType',
tableName: 'product',
schema: 'falukant_type',
timestamps: false,
underscored: true,
indexes: [
{
unique: true,
fields: ['label_tr']
}
],
});
export default ProductType;

View File

@@ -0,0 +1,24 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class FalukantStockType extends Model { }
FalukantStockType.init({
labelTr: {
type: DataTypes.STRING,
allowNull: false,
},
cost: {
type: DataTypes.INTEGER,
allowNull: false,
}
}, {
sequelize,
modelName: 'StockType',
tableName: 'stock',
schema: 'falukant_type',
timestamps: false,
underscored: true,
});
export default FalukantStockType;

View File

@@ -0,0 +1,20 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class TitleOfNobility extends Model { }
TitleOfNobility.init({
labelTr: {
type: DataTypes.STRING,
allowNull: false,
},
}, {
sequelize,
modelName: 'Title',
tableName: 'title',
schema: 'falukant_type',
timestamps: false,
underscored: true,
});
export default TitleOfNobility;

View File

@@ -0,0 +1,30 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class TitleRequirement extends Model { }
TitleRequirement.init({
titleId: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true,
},
requirementType: {
type: DataTypes.STRING,
allowNull: false,
},
requirementValue: {
type: DataTypes.DECIMAL(14, 2),
allowNull: false,
},
}, {
sequelize,
modelName: 'TitleRequirement',
tableName: 'title_requirement',
schema: 'falukant_type',
timestamps: false,
underscored: true,
});
export default TitleRequirement;