Merge branch 'sequelize-models' into develop

This commit is contained in:
dario-cfpt
2019-12-03 11:46:11 +01:00
32 changed files with 765 additions and 3 deletions

View File

@ -1,6 +1,61 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("./Sequelize"); const Sequelize_1 = require("./Sequelize");
const Catalogue_1 = require("./models/Catalogue");
exports.Catalogue = Catalogue_1.Catalogue;
const Character_1 = require("./models/Character");
exports.Character = Character_1.Character;
const CharacterGrowthRate_1 = require("./models/CharacterGrowthRate");
exports.CharacterGrowthRate = CharacterGrowthRate_1.CharacterGrowthRate;
const ClassGrowthRate_1 = require("./models/ClassGrowthRate");
exports.ClassGrowthRate = ClassGrowthRate_1.ClassGrowthRate;
const FE_Class_1 = require("./models/FE_Class");
exports.FE_Class = FE_Class_1.FE_Class;
const Gender_1 = require("./models/Gender");
exports.Gender = Gender_1.Gender;
const House_1 = require("./models/House");
exports.House = House_1.House;
const RestrictedCharacterClass_1 = require("./models/RestrictedCharacterClass");
exports.RestrictedCharacterClass = RestrictedCharacterClass_1.RestrictedCharacterClass;
const Stat_1 = require("./models/Stat");
exports.Stat = Stat_1.Stat;
// Sequelize associations
House_1.House.hasMany(Character_1.Character, {
sourceKey: "id",
foreignKey: "idHouse",
});
Gender_1.Gender.hasMany(Character_1.Character, {
sourceKey: "id",
foreignKey: "idGender",
});
Gender_1.Gender.hasMany(FE_Class_1.FE_Class, {
sourceKey: "id",
foreignKey: "idGender",
});
Character_1.Character.belongsToMany(FE_Class_1.FE_Class, {
foreignKey: { name: "Id_Character" },
through: RestrictedCharacterClass_1.RestrictedCharacterClass,
});
FE_Class_1.FE_Class.belongsToMany(Character_1.Character, {
foreignKey: { name: "Id_Class" },
through: RestrictedCharacterClass_1.RestrictedCharacterClass,
});
Character_1.Character.belongsToMany(Stat_1.Stat, {
foreignKey: { name: "Id_Character" },
through: CharacterGrowthRate_1.CharacterGrowthRate,
});
Stat_1.Stat.belongsToMany(Character_1.Character, {
foreignKey: { name: "Id_Stat" },
through: CharacterGrowthRate_1.CharacterGrowthRate,
});
FE_Class_1.FE_Class.belongsToMany(Stat_1.Stat, {
foreignKey: { name: "Id_Class" },
through: ClassGrowthRate_1.ClassGrowthRate,
});
Stat_1.Stat.belongsToMany(FE_Class_1.FE_Class, {
foreignKey: { name: "Id_Stat" },
through: ClassGrowthRate_1.ClassGrowthRate,
});
// Create tables if not exists // Create tables if not exists
Sequelize_1.sequelize.sync(); Sequelize_1.sequelize.sync();
//# sourceMappingURL=mapping.js.map //# sourceMappingURL=mapping.js.map

View File

@ -1 +1 @@
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AAEtC,8BAA8B;AAC9B,qBAAS,CAAC,IAAI,EAAE,CAAC"} {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":";;AAAA,2CAAsC;AACtC,kDAA6C;AAyDrC,oBAzDA,qBAAS,CAyDA;AAxDjB,kDAA6C;AAwD1B,oBAxDX,qBAAS,CAwDW;AAvD5B,sEAAiE;AAuDnC,8BAvDtB,yCAAmB,CAuDsB;AAtDjD,8DAAyD;AAsDN,0BAtD3C,iCAAe,CAsD2C;AArDlE,gDAA2C;AAqDyB,mBArD5D,mBAAQ,CAqD4D;AApD5E,4CAAuC;AAoDuC,iBApDtE,eAAM,CAoDsE;AAnDpF,0CAAqC;AAmDiD,gBAnD9E,aAAK,CAmD8E;AAlD3F,gFAA2E;AAkDwB,mCAlD3F,mDAAwB,CAkD2F;AAjD3H,wCAAmC;AAiD0D,eAjDrF,WAAI,CAiDqF;AA/CjG,yBAAyB;AAEzB,aAAK,CAAC,OAAO,CAAC,qBAAS,EAAE;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,SAAS;CACxB,CAAC,CAAC;AAEH,eAAM,CAAC,OAAO,CAAC,qBAAS,EAAE;IACtB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,UAAU;CACzB,CAAC,CAAC;AAEH,eAAM,CAAC,OAAO,CAAC,mBAAQ,EAAE;IACrB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,UAAU;CACzB,CAAC,CAAC;AAEH,qBAAS,CAAC,aAAa,CAAC,mBAAQ,EAAE;IAC9B,UAAU,EAAE,EAAC,IAAI,EAAE,cAAc,EAAC;IAClC,OAAO,EAAE,mDAAwB;CACpC,CAAC,CAAC;AACH,mBAAQ,CAAC,aAAa,CAAC,qBAAS,EAAE;IAC9B,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;IAC9B,OAAO,EAAE,mDAAwB;CACpC,CAAC,CAAC;AAEH,qBAAS,CAAC,aAAa,CAAC,WAAI,EAAE;IAC1B,UAAU,EAAE,EAAC,IAAI,EAAE,cAAc,EAAC;IAClC,OAAO,EAAE,yCAAmB;CAC/B,CAAC,CAAC;AACH,WAAI,CAAC,aAAa,CAAC,qBAAS,EAAE;IAC1B,UAAU,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;IAC7B,OAAO,EAAE,yCAAmB;CAC/B,CAAC,CAAC;AAEH,mBAAQ,CAAC,aAAa,CAAC,WAAI,EAAE;IACzB,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;IAC9B,OAAO,EAAE,iCAAe;CAC3B,CAAC,CAAC;AACH,WAAI,CAAC,aAAa,CAAC,mBAAQ,EAAE;IACzB,UAAU,EAAE,EAAC,IAAI,EAAE,SAAS,EAAC;IAC7B,OAAO,EAAE,iCAAe;CAC3B,CAAC,CAAC;AAEH,8BAA8B;AAC9B,qBAAS,CAAC,IAAI,EAAE,CAAC"}

36
server/dist/models/Catalogue.js vendored Normal file
View File

@ -0,0 +1,36 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class Catalogue extends Sequelize_1.Model {
}
exports.Catalogue = Catalogue;
const versionField = "No_Version";
Catalogue.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Catalogue",
},
version: {
type: Sequelize_1.DataTypes.STRING(16),
allowNull: false,
field: versionField
},
lastUpdate: {
type: Sequelize_1.DataTypes.DATE,
allowNull: false,
field: "Dttm_Last_Update"
},
}, {
indexes: [
{
unique: true,
fields: [versionField],
},
],
timestamps: false,
tableName: 'Tbl_Catalogue',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=Catalogue.js.map

1
server/dist/models/Catalogue.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"Catalogue.js","sourceRoot":"","sources":["../../src/models/Catalogue.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,SAAU,SAAQ,iBAAK;CAI5B;AAiCO,8BAAS;AA/BjB,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,SAAS,CAAC,IAAI,CAAC;IACX,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,cAAc;KACxB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,YAAY;KACtB;IACD,UAAU,EAAE;QACR,IAAI,EAAE,qBAAS,CAAC,IAAI;QACpB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,kBAAkB;KAC5B;CACJ,EAAE;IACC,OAAO,EAAE;QACL;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,YAAY,CAAC;SACzB;KACJ;IACD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

44
server/dist/models/Character.js vendored Normal file
View File

@ -0,0 +1,44 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class Character extends Sequelize_1.Model {
}
exports.Character = Character;
Character.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Character",
},
firstName: {
type: Sequelize_1.DataTypes.STRING(32),
allowNull: true,
field: "Nm_First",
},
lastName: {
type: Sequelize_1.DataTypes.STRING(32),
allowNull: true,
field: "Nm_Last",
},
imgFileName: {
type: Sequelize_1.DataTypes.STRING(64),
allowNull: true,
field: "Nm_File_Img",
},
idHouse: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_House",
},
idGender: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Gender",
},
}, {
timestamps: false,
tableName: 'Tbl_Character',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=Character.js.map

1
server/dist/models/Character.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"Character.js","sourceRoot":"","sources":["../../src/models/Character.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,SAAU,SAAQ,iBAAK;CAO5B;AAwCO,8BAAS;AAtCjB,SAAS,CAAC,IAAI,CAAC;IACX,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,cAAc;KACxB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,UAAU;KACpB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,SAAS;KACnB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,aAAa;KACvB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACrB;CACJ,EAAE;IACC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

View File

@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class CharacterGrowthRate extends Sequelize_1.Model {
}
exports.CharacterGrowthRate = CharacterGrowthRate;
CharacterGrowthRate.init({
value: {
type: Sequelize_1.DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
field: "Nb_Value",
},
idCharacter: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Character",
},
idStat: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Stat",
},
}, {
timestamps: false,
tableName: 'Tbl_Character_Growth_Rate',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=CharacterGrowthRate.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"CharacterGrowthRate.js","sourceRoot":"","sources":["../../src/models/CharacterGrowthRate.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,mBAAoB,SAAQ,iBAAK;CAItC;AAyBO,kDAAmB;AAvB3B,mBAAmB,CAAC,IAAI,CAAC;IACrB,KAAK,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACxB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;CACJ,EAAE;IACC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

29
server/dist/models/ClassGrowthRate.js vendored Normal file
View File

@ -0,0 +1,29 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class ClassGrowthRate extends Sequelize_1.Model {
}
exports.ClassGrowthRate = ClassGrowthRate;
ClassGrowthRate.init({
value: {
type: Sequelize_1.DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
field: "Nb_Value",
},
idClass: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Class",
},
idStat: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Stat",
},
}, {
timestamps: false,
tableName: 'Tbl_Class_Growth_Rate',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=ClassGrowthRate.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"ClassGrowthRate.js","sourceRoot":"","sources":["../../src/models/ClassGrowthRate.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,eAAgB,SAAQ,iBAAK;CAIlC;AAyBO,0CAAe;AAvBvB,eAAe,CAAC,IAAI,CAAC;IACjB,KAAK,EAAE;QACH,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,MAAM,EAAE;QACJ,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;CACJ,EAAE;IACC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

41
server/dist/models/FE_Class.js vendored Normal file
View File

@ -0,0 +1,41 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class FE_Class extends Sequelize_1.Model {
}
exports.FE_Class = FE_Class;
const nameField = "Nm_Class";
FE_Class.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Class",
},
name: {
type: Sequelize_1.DataTypes.STRING(32),
allowNull: false,
field: nameField,
},
isAvailableForAll: {
type: Sequelize_1.DataTypes.BOOLEAN,
allowNull: false,
field: "Is_Available_For_All",
},
idGender: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Gender",
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
},
],
timestamps: false,
tableName: 'Tbl_Class',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=FE_Class.js.map

1
server/dist/models/FE_Class.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"FE_Class.js","sourceRoot":"","sources":["../../src/models/FE_Class.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,QAAS,SAAQ,iBAAK;CAK3B;AAsCO,4BAAQ;AApChB,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,QAAQ,CAAC,IAAI,CAAC;IACV,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;IACD,iBAAiB,EAAE;QACf,IAAI,EAAE,qBAAS,CAAC,OAAO;QACvB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,sBAAsB;KAChC;IACD,QAAQ,EAAE;QACN,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,WAAW;KACrB;CACJ,EAAE;IACC,OAAO,EAAE;QACL;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,SAAS,CAAC;SACtB;KACJ;IACD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

31
server/dist/models/Gender.js vendored Normal file
View File

@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class Gender extends Sequelize_1.Model {
}
exports.Gender = Gender;
const nameField = "Nm_Gender";
Gender.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Gender",
},
name: {
type: Sequelize_1.DataTypes.STRING(16),
allowNull: false,
field: nameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
}
],
timestamps: false,
tableName: 'Tbl_Gender',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=Gender.js.map

1
server/dist/models/Gender.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"Gender.js","sourceRoot":"","sources":["../../src/models/Gender.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,MAAO,SAAQ,iBAAK;CAGzB;AA4BO,wBAAM;AA1Bd,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,MAAM,CAAC,IAAI,CAAC;IACR,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,WAAW;KACrB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;CACJ,EAAE;IACC,OAAO,EAAE;QACL;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,SAAS,CAAC;SACtB;KACJ;IACD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

31
server/dist/models/House.js vendored Normal file
View File

@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class House extends Sequelize_1.Model {
}
exports.House = House;
const nameField = "Nm_House";
House.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_House",
},
name: {
type: Sequelize_1.DataTypes.STRING(64),
allowNull: false,
field: nameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
}
],
timestamps: false,
tableName: 'Tbl_House',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=House.js.map

1
server/dist/models/House.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"House.js","sourceRoot":"","sources":["../../src/models/House.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,KAAM,SAAQ,iBAAK;CAGxB;AA4BO,sBAAK;AA1Bb,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,KAAK,CAAC,IAAI,CAAC;IACP,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;CACJ,EAAE;IACC,OAAO,EAAE;QACL;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,SAAS,CAAC;SACtB;KACJ;IACD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

View File

@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class RestrictedCharacterClass extends Sequelize_1.Model {
}
exports.RestrictedCharacterClass = RestrictedCharacterClass;
RestrictedCharacterClass.init({
idClass: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Class",
},
idCharacter: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Character",
},
}, {
timestamps: false,
tableName: 'Tbl_Character_Class',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=RestrictedCharacterClass.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"RestrictedCharacterClass.js","sourceRoot":"","sources":["../../src/models/RestrictedCharacterClass.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,wBAAyB,SAAQ,iBAAK;CAG3C;AAmBO,4DAAwB;AAjBhC,wBAAwB,CAAC,IAAI,CAAC;IAC1B,OAAO,EAAE;QACL,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,UAAU;KACpB;IACD,WAAW,EAAE;QACT,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACxB;CACJ,EAAE;IACC,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,qBAAqB;IAChC,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

41
server/dist/models/Stat.js vendored Normal file
View File

@ -0,0 +1,41 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Sequelize_1 = require("../Sequelize");
class Stat extends Sequelize_1.Model {
}
exports.Stat = Stat;
const nameField = "Nm_Stat";
const shortNameField = "Nm_Short";
Stat.init({
id: {
type: Sequelize_1.DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Stat",
},
name: {
type: Sequelize_1.DataTypes.STRING(16),
allowNull: false,
field: nameField,
},
shortName: {
type: Sequelize_1.DataTypes.STRING(3),
allowNull: false,
field: shortNameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
},
{
unique: true,
fields: [shortNameField],
}
],
timestamps: false,
tableName: 'Tbl_Stat',
sequelize: Sequelize_1.sequelize,
});
//# sourceMappingURL=Stat.js.map

1
server/dist/models/Stat.js.map vendored Normal file
View File

@ -0,0 +1 @@
{"version":3,"file":"Stat.js","sourceRoot":"","sources":["../../src/models/Stat.ts"],"names":[],"mappings":";;AAAA,4CAAyD;AAEzD,MAAM,IAAK,SAAQ,iBAAK;CAIvB;AAsCO,oBAAI;AApCZ,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,IAAI,CAAC,IAAI,CAAC;IACN,EAAE,EAAE;QACA,IAAI,EAAE,qBAAS,CAAC,OAAO,CAAC,QAAQ;QAChC,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,SAAS;KACnB;IACD,IAAI,EAAE;QACF,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,SAAS;KACnB;IACD,SAAS,EAAE;QACP,IAAI,EAAE,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,cAAc;KACxB;CACJ,EAAE;IACC,OAAO,EAAE;QACL;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,SAAS,CAAC;SACtB;QACD;YACI,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,CAAC,cAAc,CAAC;SAC3B;KACJ;IACD,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,qBAAS;CACvB,CAAC,CAAC"}

View File

@ -1,6 +1,6 @@
{ {
"name": "fe-charts", "name": "fe-charts",
"version": "0.0.1", "version": "0.1.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@ -1,6 +1,6 @@
{ {
"name": "fe-charts", "name": "fe-charts",
"version": "0.0.1", "version": "0.1.0",
"description": "API for Fire Emblem Three Houses", "description": "API for Fire Emblem Three Houses",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -1,4 +1,59 @@
import {sequelize} from "./Sequelize"; import {sequelize} from "./Sequelize";
import {Catalogue} from "./models/Catalogue";
import {Character} from "./models/Character";
import {CharacterGrowthRate} from "./models/CharacterGrowthRate";
import {ClassGrowthRate} from "./models/ClassGrowthRate";
import {FE_Class} from "./models/FE_Class";
import {Gender} from "./models/Gender";
import {House} from "./models/House";
import {RestrictedCharacterClass} from "./models/RestrictedCharacterClass";
import {Stat} from "./models/Stat";
// Sequelize associations
House.hasMany(Character, {
sourceKey: "id",
foreignKey: "idHouse",
});
Gender.hasMany(Character, {
sourceKey: "id",
foreignKey: "idGender",
});
Gender.hasMany(FE_Class, {
sourceKey: "id",
foreignKey: "idGender",
});
Character.belongsToMany(FE_Class, {
foreignKey: {name: "Id_Character"},
through: RestrictedCharacterClass,
});
FE_Class.belongsToMany(Character, {
foreignKey: {name: "Id_Class"},
through: RestrictedCharacterClass,
});
Character.belongsToMany(Stat, {
foreignKey: {name: "Id_Character"},
through: CharacterGrowthRate,
});
Stat.belongsToMany(Character, {
foreignKey: {name: "Id_Stat"},
through: CharacterGrowthRate,
});
FE_Class.belongsToMany(Stat, {
foreignKey: {name: "Id_Class"},
through: ClassGrowthRate,
});
Stat.belongsToMany(FE_Class, {
foreignKey: {name: "Id_Stat"},
through: ClassGrowthRate,
});
// Create tables if not exists // Create tables if not exists
sequelize.sync(); sequelize.sync();
export {Catalogue, Character, CharacterGrowthRate, ClassGrowthRate, FE_Class, Gender, House, Stat, RestrictedCharacterClass};

View File

@ -0,0 +1,40 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class Catalogue extends Model {
public id!: number;
public version!: string;
public lastUpdate!: Date;
}
const versionField = "No_Version";
Catalogue.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Catalogue",
},
version: {
type: DataTypes.STRING(16),
allowNull: false,
field: versionField
},
lastUpdate: {
type: DataTypes.DATE,
allowNull: false,
field: "Dttm_Last_Update"
},
}, {
indexes: [
{
unique: true,
fields: [versionField],
},
],
timestamps: false,
tableName: 'Tbl_Catalogue',
sequelize: sequelize,
});
export {Catalogue}

View File

@ -0,0 +1,50 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class Character extends Model {
public id!: number;
public firstName: string;
public lastName: string;
public imgFileName: string;
public idHouse!: number;
public idGender!: number;
}
Character.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Character",
},
firstName: {
type: DataTypes.STRING(32),
allowNull: true,
field: "Nm_First",
},
lastName: {
type: DataTypes.STRING(32),
allowNull: true,
field: "Nm_Last",
},
imgFileName: {
type: DataTypes.STRING(64),
allowNull: true,
field: "Nm_File_Img",
},
idHouse: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_House",
},
idGender: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Gender",
},
}, {
timestamps: false,
tableName: 'Tbl_Character',
sequelize: sequelize,
});
export {Character}

View File

@ -0,0 +1,32 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class CharacterGrowthRate extends Model {
public value!: number;
public idCharacter!: number;
public idStat!: number;
}
CharacterGrowthRate.init({
value: {
type: DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
field: "Nb_Value",
},
idCharacter: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Character",
},
idStat: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Stat",
},
}, {
timestamps: false,
tableName: 'Tbl_Character_Growth_Rate',
sequelize: sequelize,
});
export {CharacterGrowthRate};

View File

@ -0,0 +1,32 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class ClassGrowthRate extends Model {
public value!: number;
public idClass!: number;
public idStat!: number;
}
ClassGrowthRate.init({
value: {
type: DataTypes.INTEGER,
defaultValue: 0,
allowNull: false,
field: "Nb_Value",
},
idClass: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Class",
},
idStat: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Stat",
},
}, {
timestamps: false,
tableName: 'Tbl_Class_Growth_Rate',
sequelize: sequelize,
});
export {ClassGrowthRate};

View File

@ -0,0 +1,46 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class FE_Class extends Model {
public id!: number;
public name!: string;
public isAvailableForAll!: boolean;
public idGender!: number;
}
const nameField = "Nm_Class";
FE_Class.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Class",
},
name: {
type: DataTypes.STRING(32),
allowNull: false,
field: nameField,
},
isAvailableForAll: {
type: DataTypes.BOOLEAN,
allowNull: false,
field: "Is_Available_For_All",
},
idGender: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Gender",
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
},
],
timestamps: false,
tableName: 'Tbl_Class',
sequelize: sequelize,
});
export {FE_Class}

View File

@ -0,0 +1,34 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class Gender extends Model {
public id!: number;
public name!: string;
}
const nameField = "Nm_Gender";
Gender.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Gender",
},
name: {
type: DataTypes.STRING(16),
allowNull: false,
field: nameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
}
],
timestamps: false,
tableName: 'Tbl_Gender',
sequelize: sequelize,
});
export {Gender}

View File

@ -0,0 +1,34 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class House extends Model {
public id!: number;
public name!: string;
}
const nameField = "Nm_House";
House.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_House",
},
name: {
type: DataTypes.STRING(64),
allowNull: false,
field: nameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
}
],
timestamps: false,
tableName: 'Tbl_House',
sequelize: sequelize,
});
export {House}

View File

@ -0,0 +1,25 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class RestrictedCharacterClass extends Model {
public idClass!: number;
public idCharacter!: number;
}
RestrictedCharacterClass.init({
idClass: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Class",
},
idCharacter: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
field: "Id_Character",
},
}, {
timestamps: false,
tableName: 'Tbl_Character_Class',
sequelize: sequelize,
});
export {RestrictedCharacterClass};

45
server/src/models/Stat.ts Normal file
View File

@ -0,0 +1,45 @@
import {sequelize, Model, DataTypes} from "../Sequelize";
class Stat extends Model {
public id!: number;
public name!: string;
public shortName!: string;
}
const nameField = "Nm_Stat";
const shortNameField = "Nm_Short";
Stat.init({
id: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true,
field: "Id_Stat",
},
name: {
type: DataTypes.STRING(16),
allowNull: false,
field: nameField,
},
shortName: {
type: DataTypes.STRING(3),
allowNull: false,
field: shortNameField,
},
}, {
indexes: [
{
unique: true,
fields: [nameField],
},
{
unique: true,
fields: [shortNameField],
}
],
timestamps: false,
tableName: 'Tbl_Stat',
sequelize: sequelize,
});
export {Stat}