volleyballsimtypes 0.0.190 → 0.0.191
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/data/init-models.js +18 -0
- package/dist/cjs/src/data/models/division-teams.d.ts +23 -0
- package/dist/cjs/src/data/models/division-teams.js +43 -0
- package/dist/cjs/src/data/models/division.d.ts +24 -1
- package/dist/cjs/src/data/models/index.d.ts +1 -0
- package/dist/cjs/src/data/models/index.js +1 -0
- package/dist/cjs/src/data/models/team.d.ts +18 -1
- package/dist/cjs/src/data/transformers/league.js +2 -2
- package/dist/cjs/src/service/competition/league.d.ts +3 -3
- package/dist/cjs/src/service/competition/league.js +2 -2
- package/dist/esm/src/data/init-models.js +19 -1
- package/dist/esm/src/data/models/division-teams.d.ts +23 -0
- package/dist/esm/src/data/models/division-teams.js +39 -0
- package/dist/esm/src/data/models/division.d.ts +24 -1
- package/dist/esm/src/data/models/index.d.ts +1 -0
- package/dist/esm/src/data/models/index.js +1 -0
- package/dist/esm/src/data/models/team.d.ts +18 -1
- package/dist/esm/src/data/transformers/league.js +2 -2
- package/dist/esm/src/service/competition/league.d.ts +3 -3
- package/dist/esm/src/service/competition/league.js +2 -2
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ function initModels(sequelize) {
|
|
|
15
15
|
const League = models_1.LeagueModel.initModel(sequelize);
|
|
16
16
|
const Division = models_1.DivisionModel.initModel(sequelize);
|
|
17
17
|
const DivisionSeason = models_1.DivisionSeasonModel.initModel(sequelize);
|
|
18
|
+
const DivisionTeams = models_1.DivisionTeamsModel.initModel(sequelize);
|
|
18
19
|
const Match = models_1.MatchModel.initModel(sequelize);
|
|
19
20
|
const MatchRating = models_1.MatchRatingModel.initModel(sequelize);
|
|
20
21
|
const MatchResult = models_1.MatchResultModel.initModel(sequelize);
|
|
@@ -59,8 +60,24 @@ function initModels(sequelize) {
|
|
|
59
60
|
League.hasMany(Division, { as: 'Divisions', foreignKey: 'league_id' });
|
|
60
61
|
Division.belongsTo(League, { as: 'league', foreignKey: 'league_id' });
|
|
61
62
|
Division.hasMany(DivisionSeason, { as: 'DivisionSeasons', foreignKey: 'division_id' });
|
|
63
|
+
Division.hasMany(DivisionTeams, { as: 'DivisionTeams', foreignKey: 'division_id' });
|
|
64
|
+
Division.belongsToMany(Team, {
|
|
65
|
+
as: 'Teams',
|
|
66
|
+
through: DivisionTeams,
|
|
67
|
+
foreignKey: 'division_id',
|
|
68
|
+
otherKey: 'team_id'
|
|
69
|
+
});
|
|
62
70
|
DivisionSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
|
|
63
71
|
DivisionSeason.belongsTo(Division, { as: 'division', foreignKey: 'division_id' });
|
|
72
|
+
DivisionTeams.belongsTo(Division, { as: 'division', foreignKey: 'division_id' });
|
|
73
|
+
DivisionTeams.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
|
|
74
|
+
Team.hasOne(DivisionTeams, { as: 'DivisionTeams', foreignKey: 'team_id' });
|
|
75
|
+
Team.belongsToMany(Division, {
|
|
76
|
+
as: 'Divisions',
|
|
77
|
+
through: DivisionTeams,
|
|
78
|
+
foreignKey: 'team_id',
|
|
79
|
+
otherKey: 'division_id'
|
|
80
|
+
});
|
|
64
81
|
Match.belongsTo(Team, { as: 'AwayTeam', foreignKey: 'away_team' });
|
|
65
82
|
Match.belongsTo(Team, { as: 'HomeTeam', foreignKey: 'home_team' });
|
|
66
83
|
Match.belongsToMany(Team, {
|
|
@@ -174,6 +191,7 @@ function initModels(sequelize) {
|
|
|
174
191
|
MatchSet,
|
|
175
192
|
BoxScore,
|
|
176
193
|
PerformanceStats,
|
|
194
|
+
DivisionTeams,
|
|
177
195
|
Player,
|
|
178
196
|
PlayerTeam,
|
|
179
197
|
Rally,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model } from 'sequelize';
|
|
3
|
+
import { DivisionId, DivisionModel, TeamId, TeamModel } from '.';
|
|
4
|
+
export interface DivisionTeamsAttributes {
|
|
5
|
+
team_id: string;
|
|
6
|
+
division_id: string;
|
|
7
|
+
}
|
|
8
|
+
export type DivisionTeamsPk = 'team_id';
|
|
9
|
+
export type DivisionTeamsId = DivisionTeamsModel[DivisionTeamsPk];
|
|
10
|
+
export type DivisionTeamsCreationAttributes = DivisionTeamsAttributes;
|
|
11
|
+
export declare class DivisionTeamsModel extends Model<DivisionTeamsAttributes, DivisionTeamsCreationAttributes> implements DivisionTeamsAttributes {
|
|
12
|
+
team_id: string;
|
|
13
|
+
division_id: string;
|
|
14
|
+
team: TeamModel;
|
|
15
|
+
getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
16
|
+
setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
17
|
+
createTeam: Sequelize.BelongsToCreateAssociationMixin<TeamModel>;
|
|
18
|
+
division: DivisionModel;
|
|
19
|
+
getDivision: Sequelize.BelongsToGetAssociationMixin<DivisionModel>;
|
|
20
|
+
setDivision: Sequelize.BelongsToSetAssociationMixin<DivisionModel, DivisionId>;
|
|
21
|
+
createDivision: Sequelize.BelongsToCreateAssociationMixin<DivisionModel>;
|
|
22
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof DivisionTeamsModel;
|
|
23
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DivisionTeamsModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
class DivisionTeamsModel extends sequelize_1.Model {
|
|
6
|
+
static initModel(sequelize) {
|
|
7
|
+
return DivisionTeamsModel.init({
|
|
8
|
+
team_id: {
|
|
9
|
+
type: sequelize_1.DataTypes.UUID,
|
|
10
|
+
allowNull: false,
|
|
11
|
+
primaryKey: true,
|
|
12
|
+
references: {
|
|
13
|
+
model: 'Team',
|
|
14
|
+
key: 'team_id'
|
|
15
|
+
},
|
|
16
|
+
onDelete: 'CASCADE'
|
|
17
|
+
},
|
|
18
|
+
division_id: {
|
|
19
|
+
type: sequelize_1.DataTypes.UUID,
|
|
20
|
+
allowNull: false,
|
|
21
|
+
references: {
|
|
22
|
+
model: 'Division',
|
|
23
|
+
key: 'division_id'
|
|
24
|
+
},
|
|
25
|
+
onDelete: 'RESTRICT'
|
|
26
|
+
}
|
|
27
|
+
}, {
|
|
28
|
+
sequelize,
|
|
29
|
+
tableName: 'DivisionTeams',
|
|
30
|
+
schema: 'public',
|
|
31
|
+
timestamps: false,
|
|
32
|
+
indexes: [{
|
|
33
|
+
name: 'divisionteams_pk',
|
|
34
|
+
unique: true,
|
|
35
|
+
fields: [{ name: 'team_id' }]
|
|
36
|
+
}, {
|
|
37
|
+
name: 'idx_divisionteams_division_id',
|
|
38
|
+
fields: [{ name: 'division_id' }]
|
|
39
|
+
}]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DivisionTeamsModel = DivisionTeamsModel;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, LeagueId, LeagueModel } from '.';
|
|
3
|
+
import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, LeagueId, LeagueModel, TeamId, TeamModel } from '.';
|
|
4
4
|
export interface DivisionAttributes {
|
|
5
5
|
division_id: string;
|
|
6
6
|
league_id: string;
|
|
7
7
|
tier: number;
|
|
8
8
|
name: string;
|
|
9
9
|
DivisionSeasons?: DivisionSeasonAttributes[];
|
|
10
|
+
DivisionTeams?: DivisionTeamsAttributes[];
|
|
10
11
|
}
|
|
11
12
|
export type DivisionPk = 'division_id';
|
|
12
13
|
export type DivisionId = DivisionModel[DivisionPk];
|
|
@@ -31,5 +32,27 @@ export declare class DivisionModel extends Model<DivisionAttributes, DivisionCre
|
|
|
31
32
|
hasDivisionSeason: Sequelize.HasManyHasAssociationMixin<DivisionSeasonModel, DivisionSeasonId>;
|
|
32
33
|
hasDivisionSeasons: Sequelize.HasManyHasAssociationsMixin<DivisionSeasonModel, DivisionSeasonId>;
|
|
33
34
|
countDivisionSeasons: Sequelize.HasManyCountAssociationsMixin;
|
|
35
|
+
DivisionTeams: DivisionTeamsModel[];
|
|
36
|
+
getDivisionTeams: Sequelize.HasManyGetAssociationsMixin<DivisionTeamsModel>;
|
|
37
|
+
setDivisionTeams: Sequelize.HasManySetAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
38
|
+
addDivisionTeam: Sequelize.HasManyAddAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
39
|
+
addDivisionTeams: Sequelize.HasManyAddAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
40
|
+
createDivisionTeam: Sequelize.HasManyCreateAssociationMixin<DivisionTeamsModel>;
|
|
41
|
+
removeDivisionTeam: Sequelize.HasManyRemoveAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
42
|
+
removeDivisionTeams: Sequelize.HasManyRemoveAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
43
|
+
hasDivisionTeam: Sequelize.HasManyHasAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
44
|
+
hasDivisionTeams: Sequelize.HasManyHasAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
45
|
+
countDivisionTeams: Sequelize.HasManyCountAssociationsMixin;
|
|
46
|
+
Teams: TeamModel[];
|
|
47
|
+
getTeams: Sequelize.BelongsToManyGetAssociationsMixin<TeamModel>;
|
|
48
|
+
setTeams: Sequelize.BelongsToManySetAssociationsMixin<TeamModel, TeamId>;
|
|
49
|
+
addTeam: Sequelize.BelongsToManyAddAssociationMixin<TeamModel, TeamId>;
|
|
50
|
+
addTeams: Sequelize.BelongsToManyAddAssociationsMixin<TeamModel, TeamId>;
|
|
51
|
+
createTeam: Sequelize.BelongsToManyCreateAssociationMixin<TeamModel>;
|
|
52
|
+
removeTeam: Sequelize.BelongsToManyRemoveAssociationMixin<TeamModel, TeamId>;
|
|
53
|
+
removeTeams: Sequelize.BelongsToManyRemoveAssociationsMixin<TeamModel, TeamId>;
|
|
54
|
+
hasTeam: Sequelize.BelongsToManyHasAssociationMixin<TeamModel, TeamId>;
|
|
55
|
+
hasTeams: Sequelize.BelongsToManyHasAssociationsMixin<TeamModel, TeamId>;
|
|
56
|
+
countTeams: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
34
57
|
static initModel(sequelize: Sequelize.Sequelize): typeof DivisionModel;
|
|
35
58
|
}
|
|
@@ -27,6 +27,7 @@ __exportStar(require("./iteration"), exports);
|
|
|
27
27
|
__exportStar(require("./league"), exports);
|
|
28
28
|
__exportStar(require("./division"), exports);
|
|
29
29
|
__exportStar(require("./division-season"), exports);
|
|
30
|
+
__exportStar(require("./division-teams"), exports);
|
|
30
31
|
__exportStar(require("./match"), exports);
|
|
31
32
|
__exportStar(require("./match-rating"), exports);
|
|
32
33
|
__exportStar(require("./match-result"), exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { CoachAttributes, CoachId, CoachModel, CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DraftPickId, DraftPickModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel } from '.';
|
|
3
|
+
import { CoachAttributes, CoachId, CoachModel, CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DraftPickId, DraftPickModel, DivisionAttributes, DivisionId, DivisionModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel } from '.';
|
|
4
4
|
export interface TeamAttributes {
|
|
5
5
|
team_id: string;
|
|
6
6
|
name: string;
|
|
@@ -10,6 +10,8 @@ export interface TeamAttributes {
|
|
|
10
10
|
country_id?: string;
|
|
11
11
|
coach?: CoachAttributes;
|
|
12
12
|
Players?: PlayerAttributes[];
|
|
13
|
+
DivisionTeams?: DivisionTeamsAttributes;
|
|
14
|
+
Divisions?: DivisionAttributes[];
|
|
13
15
|
}
|
|
14
16
|
export type TeamPk = 'team_id';
|
|
15
17
|
export type TeamId = TeamModel[TeamPk];
|
|
@@ -107,6 +109,21 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
|
|
|
107
109
|
hasRatingMatch: Sequelize.BelongsToManyHasAssociationMixin<MatchModel, MatchId>;
|
|
108
110
|
hasRatingMatches: Sequelize.BelongsToManyHasAssociationsMixin<MatchModel, MatchId>;
|
|
109
111
|
countRatingMatches: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
112
|
+
DivisionTeams: DivisionTeamsModel;
|
|
113
|
+
getDivisionTeams: Sequelize.HasOneGetAssociationMixin<DivisionTeamsModel>;
|
|
114
|
+
setDivisionTeams: Sequelize.HasOneSetAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
115
|
+
createDivisionTeams: Sequelize.HasOneCreateAssociationMixin<DivisionTeamsModel>;
|
|
116
|
+
Divisions: DivisionModel[];
|
|
117
|
+
getDivisions: Sequelize.BelongsToManyGetAssociationsMixin<DivisionModel>;
|
|
118
|
+
setDivisions: Sequelize.BelongsToManySetAssociationsMixin<DivisionModel, DivisionId>;
|
|
119
|
+
addDivision: Sequelize.BelongsToManyAddAssociationMixin<DivisionModel, DivisionId>;
|
|
120
|
+
addDivisions: Sequelize.BelongsToManyAddAssociationsMixin<DivisionModel, DivisionId>;
|
|
121
|
+
createDivision: Sequelize.BelongsToManyCreateAssociationMixin<DivisionModel>;
|
|
122
|
+
removeDivision: Sequelize.BelongsToManyRemoveAssociationMixin<DivisionModel, DivisionId>;
|
|
123
|
+
removeDivisions: Sequelize.BelongsToManyRemoveAssociationsMixin<DivisionModel, DivisionId>;
|
|
124
|
+
hasDivision: Sequelize.BelongsToManyHasAssociationMixin<DivisionModel, DivisionId>;
|
|
125
|
+
hasDivisions: Sequelize.BelongsToManyHasAssociationsMixin<DivisionModel, DivisionId>;
|
|
126
|
+
countDivisions: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
110
127
|
MatchRatings: MatchRatingModel[];
|
|
111
128
|
getMatchRatings: Sequelize.HasManyGetAssociationsMixin<MatchRatingModel>;
|
|
112
129
|
setMatchRatings: Sequelize.HasManySetAssociationsMixin<MatchRatingModel, MatchRatingId>;
|
|
@@ -4,7 +4,7 @@ exports.transformFromLeague = exports.transformToLeague = void 0;
|
|
|
4
4
|
const service_1 = require("../../service");
|
|
5
5
|
const _1 = require(".");
|
|
6
6
|
function transformToAttributes(league) {
|
|
7
|
-
const Divisions = league.
|
|
7
|
+
const Divisions = league.divisions?.map(div => (0, _1.transformFromDivision)(div, league.id));
|
|
8
8
|
return {
|
|
9
9
|
league_id: league.id,
|
|
10
10
|
country_id: league.country.id,
|
|
@@ -18,7 +18,7 @@ function transformToObject(model) {
|
|
|
18
18
|
id: model.league_id,
|
|
19
19
|
name: model.name,
|
|
20
20
|
country: (0, _1.transformToCountry)(model.country),
|
|
21
|
-
|
|
21
|
+
divisions: (model.Divisions ?? []).map((division) => (0, _1.transformToDivision)(division))
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
exports.transformToLeague = transformToObject;
|
|
@@ -4,13 +4,13 @@ interface LeagueOpts {
|
|
|
4
4
|
readonly id: string;
|
|
5
5
|
readonly name: string;
|
|
6
6
|
readonly country: Country;
|
|
7
|
-
readonly
|
|
7
|
+
readonly divisions: Division[];
|
|
8
8
|
}
|
|
9
9
|
export declare class League {
|
|
10
10
|
readonly id: string;
|
|
11
11
|
readonly name: string;
|
|
12
|
-
readonly
|
|
12
|
+
readonly divisions: Division[];
|
|
13
13
|
readonly country: Country;
|
|
14
|
-
constructor({ id, name, country,
|
|
14
|
+
constructor({ id, name, country, divisions }: LeagueOpts);
|
|
15
15
|
}
|
|
16
16
|
export {};
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.League = void 0;
|
|
4
4
|
class League {
|
|
5
|
-
constructor({ id, name, country,
|
|
5
|
+
constructor({ id, name, country, divisions }) {
|
|
6
6
|
this.id = id;
|
|
7
7
|
this.name = name;
|
|
8
8
|
this.country = country;
|
|
9
|
-
this.
|
|
9
|
+
this.divisions = divisions;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
exports.League = League;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoxScoreModel, CoachModel, CompetitionChampionModel, CompetitionMatchModel, CompetitionModel, CompetitionTeamsModel, CountryModel, DivisionModel, DivisionSeasonModel, DraftModel, DraftPickModel, IterationModel, LeagueModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, RallyModel, SetPositionModel, TeamModel, UserModel } from './models';
|
|
1
|
+
import { BoxScoreModel, CoachModel, CompetitionChampionModel, CompetitionMatchModel, CompetitionModel, CompetitionTeamsModel, CountryModel, DivisionModel, DivisionSeasonModel, DivisionTeamsModel, DraftModel, DraftPickModel, IterationModel, LeagueModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, RallyModel, SetPositionModel, TeamModel, UserModel } from './models';
|
|
2
2
|
export function initModels(sequelize) {
|
|
3
3
|
const Coach = CoachModel.initModel(sequelize);
|
|
4
4
|
const Country = CountryModel.initModel(sequelize);
|
|
@@ -12,6 +12,7 @@ export function initModels(sequelize) {
|
|
|
12
12
|
const League = LeagueModel.initModel(sequelize);
|
|
13
13
|
const Division = DivisionModel.initModel(sequelize);
|
|
14
14
|
const DivisionSeason = DivisionSeasonModel.initModel(sequelize);
|
|
15
|
+
const DivisionTeams = DivisionTeamsModel.initModel(sequelize);
|
|
15
16
|
const Match = MatchModel.initModel(sequelize);
|
|
16
17
|
const MatchRating = MatchRatingModel.initModel(sequelize);
|
|
17
18
|
const MatchResult = MatchResultModel.initModel(sequelize);
|
|
@@ -56,8 +57,24 @@ export function initModels(sequelize) {
|
|
|
56
57
|
League.hasMany(Division, { as: 'Divisions', foreignKey: 'league_id' });
|
|
57
58
|
Division.belongsTo(League, { as: 'league', foreignKey: 'league_id' });
|
|
58
59
|
Division.hasMany(DivisionSeason, { as: 'DivisionSeasons', foreignKey: 'division_id' });
|
|
60
|
+
Division.hasMany(DivisionTeams, { as: 'DivisionTeams', foreignKey: 'division_id' });
|
|
61
|
+
Division.belongsToMany(Team, {
|
|
62
|
+
as: 'Teams',
|
|
63
|
+
through: DivisionTeams,
|
|
64
|
+
foreignKey: 'division_id',
|
|
65
|
+
otherKey: 'team_id'
|
|
66
|
+
});
|
|
59
67
|
DivisionSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
|
|
60
68
|
DivisionSeason.belongsTo(Division, { as: 'division', foreignKey: 'division_id' });
|
|
69
|
+
DivisionTeams.belongsTo(Division, { as: 'division', foreignKey: 'division_id' });
|
|
70
|
+
DivisionTeams.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
|
|
71
|
+
Team.hasOne(DivisionTeams, { as: 'DivisionTeams', foreignKey: 'team_id' });
|
|
72
|
+
Team.belongsToMany(Division, {
|
|
73
|
+
as: 'Divisions',
|
|
74
|
+
through: DivisionTeams,
|
|
75
|
+
foreignKey: 'team_id',
|
|
76
|
+
otherKey: 'division_id'
|
|
77
|
+
});
|
|
61
78
|
Match.belongsTo(Team, { as: 'AwayTeam', foreignKey: 'away_team' });
|
|
62
79
|
Match.belongsTo(Team, { as: 'HomeTeam', foreignKey: 'home_team' });
|
|
63
80
|
Match.belongsToMany(Team, {
|
|
@@ -171,6 +188,7 @@ export function initModels(sequelize) {
|
|
|
171
188
|
MatchSet,
|
|
172
189
|
BoxScore,
|
|
173
190
|
PerformanceStats,
|
|
191
|
+
DivisionTeams,
|
|
174
192
|
Player,
|
|
175
193
|
PlayerTeam,
|
|
176
194
|
Rally,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { Model } from 'sequelize';
|
|
3
|
+
import { DivisionId, DivisionModel, TeamId, TeamModel } from '.';
|
|
4
|
+
export interface DivisionTeamsAttributes {
|
|
5
|
+
team_id: string;
|
|
6
|
+
division_id: string;
|
|
7
|
+
}
|
|
8
|
+
export type DivisionTeamsPk = 'team_id';
|
|
9
|
+
export type DivisionTeamsId = DivisionTeamsModel[DivisionTeamsPk];
|
|
10
|
+
export type DivisionTeamsCreationAttributes = DivisionTeamsAttributes;
|
|
11
|
+
export declare class DivisionTeamsModel extends Model<DivisionTeamsAttributes, DivisionTeamsCreationAttributes> implements DivisionTeamsAttributes {
|
|
12
|
+
team_id: string;
|
|
13
|
+
division_id: string;
|
|
14
|
+
team: TeamModel;
|
|
15
|
+
getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
16
|
+
setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
17
|
+
createTeam: Sequelize.BelongsToCreateAssociationMixin<TeamModel>;
|
|
18
|
+
division: DivisionModel;
|
|
19
|
+
getDivision: Sequelize.BelongsToGetAssociationMixin<DivisionModel>;
|
|
20
|
+
setDivision: Sequelize.BelongsToSetAssociationMixin<DivisionModel, DivisionId>;
|
|
21
|
+
createDivision: Sequelize.BelongsToCreateAssociationMixin<DivisionModel>;
|
|
22
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof DivisionTeamsModel;
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { DataTypes, Model } from 'sequelize';
|
|
2
|
+
export class DivisionTeamsModel extends Model {
|
|
3
|
+
static initModel(sequelize) {
|
|
4
|
+
return DivisionTeamsModel.init({
|
|
5
|
+
team_id: {
|
|
6
|
+
type: DataTypes.UUID,
|
|
7
|
+
allowNull: false,
|
|
8
|
+
primaryKey: true,
|
|
9
|
+
references: {
|
|
10
|
+
model: 'Team',
|
|
11
|
+
key: 'team_id'
|
|
12
|
+
},
|
|
13
|
+
onDelete: 'CASCADE'
|
|
14
|
+
},
|
|
15
|
+
division_id: {
|
|
16
|
+
type: DataTypes.UUID,
|
|
17
|
+
allowNull: false,
|
|
18
|
+
references: {
|
|
19
|
+
model: 'Division',
|
|
20
|
+
key: 'division_id'
|
|
21
|
+
},
|
|
22
|
+
onDelete: 'RESTRICT'
|
|
23
|
+
}
|
|
24
|
+
}, {
|
|
25
|
+
sequelize,
|
|
26
|
+
tableName: 'DivisionTeams',
|
|
27
|
+
schema: 'public',
|
|
28
|
+
timestamps: false,
|
|
29
|
+
indexes: [{
|
|
30
|
+
name: 'divisionteams_pk',
|
|
31
|
+
unique: true,
|
|
32
|
+
fields: [{ name: 'team_id' }]
|
|
33
|
+
}, {
|
|
34
|
+
name: 'idx_divisionteams_division_id',
|
|
35
|
+
fields: [{ name: 'division_id' }]
|
|
36
|
+
}]
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, LeagueId, LeagueModel } from '.';
|
|
3
|
+
import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, LeagueId, LeagueModel, TeamId, TeamModel } from '.';
|
|
4
4
|
export interface DivisionAttributes {
|
|
5
5
|
division_id: string;
|
|
6
6
|
league_id: string;
|
|
7
7
|
tier: number;
|
|
8
8
|
name: string;
|
|
9
9
|
DivisionSeasons?: DivisionSeasonAttributes[];
|
|
10
|
+
DivisionTeams?: DivisionTeamsAttributes[];
|
|
10
11
|
}
|
|
11
12
|
export type DivisionPk = 'division_id';
|
|
12
13
|
export type DivisionId = DivisionModel[DivisionPk];
|
|
@@ -31,5 +32,27 @@ export declare class DivisionModel extends Model<DivisionAttributes, DivisionCre
|
|
|
31
32
|
hasDivisionSeason: Sequelize.HasManyHasAssociationMixin<DivisionSeasonModel, DivisionSeasonId>;
|
|
32
33
|
hasDivisionSeasons: Sequelize.HasManyHasAssociationsMixin<DivisionSeasonModel, DivisionSeasonId>;
|
|
33
34
|
countDivisionSeasons: Sequelize.HasManyCountAssociationsMixin;
|
|
35
|
+
DivisionTeams: DivisionTeamsModel[];
|
|
36
|
+
getDivisionTeams: Sequelize.HasManyGetAssociationsMixin<DivisionTeamsModel>;
|
|
37
|
+
setDivisionTeams: Sequelize.HasManySetAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
38
|
+
addDivisionTeam: Sequelize.HasManyAddAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
39
|
+
addDivisionTeams: Sequelize.HasManyAddAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
40
|
+
createDivisionTeam: Sequelize.HasManyCreateAssociationMixin<DivisionTeamsModel>;
|
|
41
|
+
removeDivisionTeam: Sequelize.HasManyRemoveAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
42
|
+
removeDivisionTeams: Sequelize.HasManyRemoveAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
43
|
+
hasDivisionTeam: Sequelize.HasManyHasAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
44
|
+
hasDivisionTeams: Sequelize.HasManyHasAssociationsMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
45
|
+
countDivisionTeams: Sequelize.HasManyCountAssociationsMixin;
|
|
46
|
+
Teams: TeamModel[];
|
|
47
|
+
getTeams: Sequelize.BelongsToManyGetAssociationsMixin<TeamModel>;
|
|
48
|
+
setTeams: Sequelize.BelongsToManySetAssociationsMixin<TeamModel, TeamId>;
|
|
49
|
+
addTeam: Sequelize.BelongsToManyAddAssociationMixin<TeamModel, TeamId>;
|
|
50
|
+
addTeams: Sequelize.BelongsToManyAddAssociationsMixin<TeamModel, TeamId>;
|
|
51
|
+
createTeam: Sequelize.BelongsToManyCreateAssociationMixin<TeamModel>;
|
|
52
|
+
removeTeam: Sequelize.BelongsToManyRemoveAssociationMixin<TeamModel, TeamId>;
|
|
53
|
+
removeTeams: Sequelize.BelongsToManyRemoveAssociationsMixin<TeamModel, TeamId>;
|
|
54
|
+
hasTeam: Sequelize.BelongsToManyHasAssociationMixin<TeamModel, TeamId>;
|
|
55
|
+
hasTeams: Sequelize.BelongsToManyHasAssociationsMixin<TeamModel, TeamId>;
|
|
56
|
+
countTeams: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
34
57
|
static initModel(sequelize: Sequelize.Sequelize): typeof DivisionModel;
|
|
35
58
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { CoachAttributes, CoachId, CoachModel, CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DraftPickId, DraftPickModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel } from '.';
|
|
3
|
+
import { CoachAttributes, CoachId, CoachModel, CompetitionChampionId, CompetitionChampionModel, CompetitionId, CompetitionModel, CompetitionTeamsId, CompetitionTeamsModel, CountryId, CountryModel, DraftPickId, DraftPickModel, DivisionAttributes, DivisionId, DivisionModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, MatchId, MatchModel, MatchRatingId, MatchRatingModel, PlayerAttributes, PlayerId, PlayerModel, PlayerTeamId, PlayerTeamModel, RallyId, RallyModel } from '.';
|
|
4
4
|
export interface TeamAttributes {
|
|
5
5
|
team_id: string;
|
|
6
6
|
name: string;
|
|
@@ -10,6 +10,8 @@ export interface TeamAttributes {
|
|
|
10
10
|
country_id?: string;
|
|
11
11
|
coach?: CoachAttributes;
|
|
12
12
|
Players?: PlayerAttributes[];
|
|
13
|
+
DivisionTeams?: DivisionTeamsAttributes;
|
|
14
|
+
Divisions?: DivisionAttributes[];
|
|
13
15
|
}
|
|
14
16
|
export type TeamPk = 'team_id';
|
|
15
17
|
export type TeamId = TeamModel[TeamPk];
|
|
@@ -107,6 +109,21 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
|
|
|
107
109
|
hasRatingMatch: Sequelize.BelongsToManyHasAssociationMixin<MatchModel, MatchId>;
|
|
108
110
|
hasRatingMatches: Sequelize.BelongsToManyHasAssociationsMixin<MatchModel, MatchId>;
|
|
109
111
|
countRatingMatches: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
112
|
+
DivisionTeams: DivisionTeamsModel;
|
|
113
|
+
getDivisionTeams: Sequelize.HasOneGetAssociationMixin<DivisionTeamsModel>;
|
|
114
|
+
setDivisionTeams: Sequelize.HasOneSetAssociationMixin<DivisionTeamsModel, DivisionTeamsId>;
|
|
115
|
+
createDivisionTeams: Sequelize.HasOneCreateAssociationMixin<DivisionTeamsModel>;
|
|
116
|
+
Divisions: DivisionModel[];
|
|
117
|
+
getDivisions: Sequelize.BelongsToManyGetAssociationsMixin<DivisionModel>;
|
|
118
|
+
setDivisions: Sequelize.BelongsToManySetAssociationsMixin<DivisionModel, DivisionId>;
|
|
119
|
+
addDivision: Sequelize.BelongsToManyAddAssociationMixin<DivisionModel, DivisionId>;
|
|
120
|
+
addDivisions: Sequelize.BelongsToManyAddAssociationsMixin<DivisionModel, DivisionId>;
|
|
121
|
+
createDivision: Sequelize.BelongsToManyCreateAssociationMixin<DivisionModel>;
|
|
122
|
+
removeDivision: Sequelize.BelongsToManyRemoveAssociationMixin<DivisionModel, DivisionId>;
|
|
123
|
+
removeDivisions: Sequelize.BelongsToManyRemoveAssociationsMixin<DivisionModel, DivisionId>;
|
|
124
|
+
hasDivision: Sequelize.BelongsToManyHasAssociationMixin<DivisionModel, DivisionId>;
|
|
125
|
+
hasDivisions: Sequelize.BelongsToManyHasAssociationsMixin<DivisionModel, DivisionId>;
|
|
126
|
+
countDivisions: Sequelize.BelongsToManyCountAssociationsMixin;
|
|
110
127
|
MatchRatings: MatchRatingModel[];
|
|
111
128
|
getMatchRatings: Sequelize.HasManyGetAssociationsMixin<MatchRatingModel>;
|
|
112
129
|
setMatchRatings: Sequelize.HasManySetAssociationsMixin<MatchRatingModel, MatchRatingId>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { League } from '../../service';
|
|
2
2
|
import { transformFromDivision, transformToCountry, transformToDivision } from '.';
|
|
3
3
|
function transformToAttributes(league) {
|
|
4
|
-
const Divisions = league.
|
|
4
|
+
const Divisions = league.divisions?.map(div => transformFromDivision(div, league.id));
|
|
5
5
|
return {
|
|
6
6
|
league_id: league.id,
|
|
7
7
|
country_id: league.country.id,
|
|
@@ -14,7 +14,7 @@ function transformToObject(model) {
|
|
|
14
14
|
id: model.league_id,
|
|
15
15
|
name: model.name,
|
|
16
16
|
country: transformToCountry(model.country),
|
|
17
|
-
|
|
17
|
+
divisions: (model.Divisions ?? []).map((division) => transformToDivision(division))
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
export { transformToObject as transformToLeague, transformToAttributes as transformFromLeague };
|
|
@@ -4,13 +4,13 @@ interface LeagueOpts {
|
|
|
4
4
|
readonly id: string;
|
|
5
5
|
readonly name: string;
|
|
6
6
|
readonly country: Country;
|
|
7
|
-
readonly
|
|
7
|
+
readonly divisions: Division[];
|
|
8
8
|
}
|
|
9
9
|
export declare class League {
|
|
10
10
|
readonly id: string;
|
|
11
11
|
readonly name: string;
|
|
12
|
-
readonly
|
|
12
|
+
readonly divisions: Division[];
|
|
13
13
|
readonly country: Country;
|
|
14
|
-
constructor({ id, name, country,
|
|
14
|
+
constructor({ id, name, country, divisions }: LeagueOpts);
|
|
15
15
|
}
|
|
16
16
|
export {};
|