Implemented houses

This commit is contained in:
Torsten Schulz
2025-05-08 17:38:51 +02:00
parent b15d93a798
commit a9e6c82275
17 changed files with 1129 additions and 156 deletions

View File

@@ -62,6 +62,9 @@ import PromotionalGiftMood from './falukant/predefine/promotional_gift_mood.js';
import RelationshipType from './falukant/type/relationship.js';
import Relationship from './falukant/data/relationship.js';
import PromotionalGiftLog from './falukant/log/promotional_gift.js';
import HouseType from './falukant/type/house.js';
import BuyableHouse from './falukant/data/buyable_house.js';
import UserHouse from './falukant/data/user_house.js';
export default function setupAssociations() {
// UserParam related associations
@@ -352,4 +355,16 @@ export default function setupAssociations() {
PromotionalGiftCharacterTrait.belongsTo(PromotionalGift, { foreignKey: 'gift_id', as: 'promotionalgiftcharactertrait' });
PromotionalGiftMood.belongsTo(PromotionalGift, { foreignKey: 'gift_id', as: 'promotionalgiftcharactermood' });
HouseType.hasMany(BuyableHouse, { foreignKey: 'houseTypeId', as: 'buyableHouses' });
BuyableHouse.belongsTo(HouseType, { foreignKey: 'houseTypeId', as: 'houseType' });
HouseType.hasMany(UserHouse, { foreignKey: 'houseTypeId', as: 'userHouses' });
UserHouse.belongsTo(HouseType, { foreignKey: 'houseTypeId', as: 'houseType' });
FalukantUser.hasOne(UserHouse, { foreignKey: 'userId', as: 'userHouse' });
UserHouse.belongsTo(FalukantUser, { foreignKey: 'userId', as: 'houseUser' });
TitleOfNobility.hasMany(HouseType, { foreignKey: 'minimumNobleTitle', as: 'houseTypes' });
HouseType.belongsTo(TitleOfNobility, { foreignKey: 'minimumNobleTitle', as: 'titleOfNobility' });
}

View File

@@ -0,0 +1,40 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class BuyableHouse extends Model { }
BuyableHouse.init({
roofCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
floorCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
wallCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
windowCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
houseTypeId: {
type: DataTypes.INTEGER,
allowNull: false,
}
}, {
sequelize,
modelName: 'BuyableHouse',
tableName: 'buyable_house',
schema: 'falukant_data',
timestamps: false,
underscored: true,
});
export default BuyableHouse;

View File

@@ -0,0 +1,46 @@
import { Model, DataTypes } from 'sequelize';
import { sequelize } from '../../../utils/sequelize.js';
class UserHouse extends Model { }
UserHouse.init({
roofCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
floorCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
wallCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
windowCondition: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 100
},
houseTypeId: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 1
},
userId: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 1
}
}, {
sequelize,
modelName: 'UserHouse',
tableName: 'user_house',
schema: 'falukant_data',
timestamps: false,
underscored: true,
});
export default UserHouse;

View File

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

View File

@@ -66,6 +66,9 @@ import PromotionalGiftCharacterTrait from './falukant/predefine/promotional_gift
import PromotionalGiftMood from './falukant/predefine/promotional_gift_mood.js';
import Relationship from './falukant/data/relationship.js';
import PromotionalGiftLog from './falukant/log/promotional_gift.js';
import HouseType from './falukant/type/house.js';
import BuyableHouse from './falukant/data/buyable_house.js';
import UserHouse from './falukant/data/user_house.js';
const models = {
SettingsType,
@@ -136,6 +139,9 @@ const models = {
PromotionalGiftCharacterTrait,
PromotionalGiftMood,
PromotionalGiftLog,
HouseType,
BuyableHouse,
UserHouse,
};
export default models;