volleyballsimtypes 0.0.191 → 0.0.192

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.
Files changed (29) hide show
  1. package/dist/cjs/src/data/init-models.js +2 -18
  2. package/dist/cjs/src/data/models/division.d.ts +12 -23
  3. package/dist/cjs/src/data/models/index.d.ts +0 -1
  4. package/dist/cjs/src/data/models/index.js +0 -1
  5. package/dist/cjs/src/data/models/team.d.ts +8 -18
  6. package/dist/cjs/src/data/models/team.js +8 -0
  7. package/dist/cjs/src/data/transformers/division.js +3 -1
  8. package/dist/cjs/src/data/transformers/team.js +4 -2
  9. package/dist/cjs/src/service/competition/division.d.ts +4 -1
  10. package/dist/cjs/src/service/competition/division.js +2 -1
  11. package/dist/cjs/src/service/team/team.d.ts +3 -1
  12. package/dist/cjs/src/service/team/team.js +2 -1
  13. package/dist/esm/src/data/init-models.js +3 -19
  14. package/dist/esm/src/data/models/division.d.ts +12 -23
  15. package/dist/esm/src/data/models/index.d.ts +0 -1
  16. package/dist/esm/src/data/models/index.js +0 -1
  17. package/dist/esm/src/data/models/team.d.ts +8 -18
  18. package/dist/esm/src/data/models/team.js +8 -0
  19. package/dist/esm/src/data/transformers/division.js +3 -1
  20. package/dist/esm/src/data/transformers/team.js +4 -2
  21. package/dist/esm/src/service/competition/division.d.ts +4 -1
  22. package/dist/esm/src/service/competition/division.js +2 -1
  23. package/dist/esm/src/service/team/team.d.ts +3 -1
  24. package/dist/esm/src/service/team/team.js +2 -1
  25. package/package.json +1 -1
  26. package/dist/cjs/src/data/models/division-teams.d.ts +0 -23
  27. package/dist/cjs/src/data/models/division-teams.js +0 -43
  28. package/dist/esm/src/data/models/division-teams.d.ts +0 -23
  29. package/dist/esm/src/data/models/division-teams.js +0 -39
@@ -15,7 +15,6 @@ 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);
19
18
  const Match = models_1.MatchModel.initModel(sequelize);
20
19
  const MatchRating = models_1.MatchRatingModel.initModel(sequelize);
21
20
  const MatchResult = models_1.MatchResultModel.initModel(sequelize);
@@ -60,24 +59,10 @@ function initModels(sequelize) {
60
59
  League.hasMany(Division, { as: 'Divisions', foreignKey: 'league_id' });
61
60
  Division.belongsTo(League, { as: 'league', foreignKey: 'league_id' });
62
61
  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
+ Division.hasMany(Team, { as: 'Teams', foreignKey: 'division_id' });
70
63
  DivisionSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
71
64
  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
- });
65
+ Team.belongsTo(Division, { as: 'Division', foreignKey: 'division_id' });
81
66
  Match.belongsTo(Team, { as: 'AwayTeam', foreignKey: 'away_team' });
82
67
  Match.belongsTo(Team, { as: 'HomeTeam', foreignKey: 'home_team' });
83
68
  Match.belongsToMany(Team, {
@@ -191,7 +176,6 @@ function initModels(sequelize) {
191
176
  MatchSet,
192
177
  BoxScore,
193
178
  PerformanceStats,
194
- DivisionTeams,
195
179
  Player,
196
180
  PlayerTeam,
197
181
  Rally,
@@ -1,13 +1,13 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
- import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, LeagueId, LeagueModel, TeamId, TeamModel } from '.';
3
+ import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, LeagueId, LeagueModel, TeamAttributes, 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
+ Teams?: TeamAttributes[];
11
11
  }
12
12
  export type DivisionPk = 'division_id';
13
13
  export type DivisionId = DivisionModel[DivisionPk];
@@ -32,27 +32,16 @@ export declare class DivisionModel extends Model<DivisionAttributes, DivisionCre
32
32
  hasDivisionSeason: Sequelize.HasManyHasAssociationMixin<DivisionSeasonModel, DivisionSeasonId>;
33
33
  hasDivisionSeasons: Sequelize.HasManyHasAssociationsMixin<DivisionSeasonModel, DivisionSeasonId>;
34
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
35
  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;
36
+ getTeams: Sequelize.HasManyGetAssociationsMixin<TeamModel>;
37
+ setTeams: Sequelize.HasManySetAssociationsMixin<TeamModel, TeamId>;
38
+ addTeam: Sequelize.HasManyAddAssociationMixin<TeamModel, TeamId>;
39
+ addTeams: Sequelize.HasManyAddAssociationsMixin<TeamModel, TeamId>;
40
+ createTeam: Sequelize.HasManyCreateAssociationMixin<TeamModel>;
41
+ removeTeam: Sequelize.HasManyRemoveAssociationMixin<TeamModel, TeamId>;
42
+ removeTeams: Sequelize.HasManyRemoveAssociationsMixin<TeamModel, TeamId>;
43
+ hasTeam: Sequelize.HasManyHasAssociationMixin<TeamModel, TeamId>;
44
+ hasTeams: Sequelize.HasManyHasAssociationsMixin<TeamModel, TeamId>;
45
+ countTeams: Sequelize.HasManyCountAssociationsMixin;
57
46
  static initModel(sequelize: Sequelize.Sequelize): typeof DivisionModel;
58
47
  }
@@ -11,7 +11,6 @@ export * from './iteration';
11
11
  export * from './league';
12
12
  export * from './division';
13
13
  export * from './division-season';
14
- export * from './division-teams';
15
14
  export * from './match';
16
15
  export * from './match-rating';
17
16
  export * from './match-result';
@@ -27,7 +27,6 @@ __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);
31
30
  __exportStar(require("./match"), exports);
32
31
  __exportStar(require("./match-rating"), exports);
33
32
  __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, DivisionAttributes, DivisionId, DivisionModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, 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, 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;
@@ -8,10 +8,10 @@ export interface TeamAttributes {
8
8
  rating: number;
9
9
  coach_id?: string;
10
10
  country_id?: string;
11
+ division_id: string;
11
12
  coach?: CoachAttributes;
12
13
  Players?: PlayerAttributes[];
13
- DivisionTeams?: DivisionTeamsAttributes;
14
- Divisions?: DivisionAttributes[];
14
+ Division?: DivisionAttributes;
15
15
  }
16
16
  export type TeamPk = 'team_id';
17
17
  export type TeamId = TeamModel[TeamPk];
@@ -24,6 +24,7 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
24
24
  short_name: string;
25
25
  country_id: string;
26
26
  rating: number;
27
+ division_id: string;
27
28
  coach: CoachModel;
28
29
  getCoach: Sequelize.BelongsToGetAssociationMixin<CoachModel>;
29
30
  setCoach: Sequelize.BelongsToSetAssociationMixin<CoachModel, CoachId>;
@@ -109,21 +110,10 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
109
110
  hasRatingMatch: Sequelize.BelongsToManyHasAssociationMixin<MatchModel, MatchId>;
110
111
  hasRatingMatches: Sequelize.BelongsToManyHasAssociationsMixin<MatchModel, MatchId>;
111
112
  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;
113
+ Division: DivisionModel;
114
+ getDivision: Sequelize.BelongsToGetAssociationMixin<DivisionModel>;
115
+ setDivision: Sequelize.BelongsToSetAssociationMixin<DivisionModel, DivisionId>;
116
+ createDivision: Sequelize.BelongsToCreateAssociationMixin<DivisionModel>;
127
117
  MatchRatings: MatchRatingModel[];
128
118
  getMatchRatings: Sequelize.HasManyGetAssociationsMixin<MatchRatingModel>;
129
119
  setMatchRatings: Sequelize.HasManySetAssociationsMixin<MatchRatingModel, MatchRatingId>;
@@ -34,6 +34,14 @@ class TeamModel extends sequelize_1.Model {
34
34
  key: 'country_id'
35
35
  }
36
36
  },
37
+ division_id: {
38
+ type: sequelize_1.DataTypes.UUID,
39
+ allowNull: false,
40
+ references: {
41
+ model: 'Division',
42
+ key: 'division_id'
43
+ }
44
+ },
37
45
  rating: {
38
46
  type: sequelize_1.DataTypes.REAL,
39
47
  allowNull: false,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformFromDivision = exports.transformToDivision = void 0;
4
4
  const service_1 = require("../../service");
5
5
  const season_1 = require("./season");
6
+ const team_1 = require("./team");
6
7
  function transformToAttributes(division, leagueId) {
7
8
  return {
8
9
  division_id: division.id,
@@ -17,7 +18,8 @@ function transformToObject(model) {
17
18
  id: model.division_id,
18
19
  name: model.name,
19
20
  tier: model.tier,
20
- seasons: (model.DivisionSeasons ?? []).map((ds) => (0, season_1.transformToSeason)(ds.competition))
21
+ seasons: (model.DivisionSeasons ?? []).map((ds) => (0, season_1.transformToSeason)(ds.competition)),
22
+ teams: model.Teams != null ? model.Teams.map(team_1.transformToTeam) : undefined
21
23
  });
22
24
  }
23
25
  exports.transformToDivision = transformToObject;
@@ -11,7 +11,8 @@ function transformToAttributes(team) {
11
11
  coach_id: team.coach?.id,
12
12
  country_id: team.country?.id,
13
13
  coach: team.coach != null ? (0, _1.transformFromCoach)(team.coach) : undefined,
14
- rating: team.rating
14
+ rating: team.rating,
15
+ division_id: team.divisionId
15
16
  };
16
17
  }
17
18
  exports.transformFromTeam = transformToAttributes;
@@ -23,7 +24,8 @@ function transformToObject(model) {
23
24
  country: model.country != null ? (0, _1.transformToCountry)(model.country) : undefined,
24
25
  coach: model.coach != null ? (0, _1.transformToCoach)(model.coach) : undefined,
25
26
  roster: (model.PlayerTeams ?? []).map((pt) => (0, _1.transformToPlayer)(pt.player)),
26
- rating: model.rating
27
+ rating: model.rating,
28
+ divisionId: model.division_id
27
29
  });
28
30
  }
29
31
  exports.transformToTeam = transformToObject;
@@ -1,15 +1,18 @@
1
1
  import { Season } from './season';
2
+ import { Team } from '../team';
2
3
  interface DivisionOpts {
3
4
  readonly id: string;
4
5
  readonly name: string;
5
6
  readonly tier: number;
6
7
  readonly seasons: Season[];
8
+ readonly teams?: Team[];
7
9
  }
8
10
  export declare class Division {
9
11
  readonly id: string;
10
12
  readonly name: string;
11
13
  readonly tier: number;
12
14
  readonly seasons: Season[];
13
- constructor({ id, name, tier, seasons }: DivisionOpts);
15
+ readonly teams?: Team[];
16
+ constructor({ id, name, tier, seasons, teams }: DivisionOpts);
14
17
  }
15
18
  export {};
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Division = void 0;
4
4
  class Division {
5
- constructor({ id, name, tier, seasons }) {
5
+ constructor({ id, name, tier, seasons, teams }) {
6
6
  this.id = id;
7
7
  this.name = name;
8
8
  this.tier = tier;
9
9
  this.seasons = seasons;
10
+ this.teams = teams;
10
11
  }
11
12
  }
12
13
  exports.Division = Division;
@@ -6,6 +6,7 @@ interface TeamParams {
6
6
  readonly rating: number;
7
7
  readonly name: string;
8
8
  readonly shortName: string;
9
+ readonly divisionId: string;
9
10
  readonly roster: Player[];
10
11
  readonly country?: Country;
11
12
  readonly coach?: Coach;
@@ -15,10 +16,11 @@ export declare class Team {
15
16
  readonly roster: Player[];
16
17
  readonly name: string;
17
18
  readonly shortName: string;
19
+ readonly divisionId: string;
18
20
  readonly coach?: Coach;
19
21
  readonly country?: Country;
20
22
  private _rating;
21
- constructor({ id, rating, name, shortName, country, roster, coach }: TeamParams);
23
+ constructor({ id, rating, name, shortName, divisionId, country, roster, coach }: TeamParams);
22
24
  get rating(): number;
23
25
  set rating(value: number);
24
26
  isPlayerInRoster(player: Player): boolean;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Team = void 0;
4
4
  const utils_1 = require("../utils");
5
5
  class Team {
6
- constructor({ id, rating, name, shortName, country, roster, coach }) {
6
+ constructor({ id, rating, name, shortName, divisionId, country, roster, coach }) {
7
7
  (0, utils_1.validateUUID)(id);
8
8
  this.id = id;
9
9
  this._rating = rating;
@@ -11,6 +11,7 @@ class Team {
11
11
  this.coach = coach;
12
12
  this.name = name;
13
13
  this.shortName = shortName;
14
+ this.divisionId = divisionId;
14
15
  this.country = country;
15
16
  }
16
17
  get rating() {
@@ -1,4 +1,4 @@
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';
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';
2
2
  export function initModels(sequelize) {
3
3
  const Coach = CoachModel.initModel(sequelize);
4
4
  const Country = CountryModel.initModel(sequelize);
@@ -12,7 +12,6 @@ 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);
16
15
  const Match = MatchModel.initModel(sequelize);
17
16
  const MatchRating = MatchRatingModel.initModel(sequelize);
18
17
  const MatchResult = MatchResultModel.initModel(sequelize);
@@ -57,24 +56,10 @@ export function initModels(sequelize) {
57
56
  League.hasMany(Division, { as: 'Divisions', foreignKey: 'league_id' });
58
57
  Division.belongsTo(League, { as: 'league', foreignKey: 'league_id' });
59
58
  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
+ Division.hasMany(Team, { as: 'Teams', foreignKey: 'division_id' });
67
60
  DivisionSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
68
61
  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
- });
62
+ Team.belongsTo(Division, { as: 'Division', foreignKey: 'division_id' });
78
63
  Match.belongsTo(Team, { as: 'AwayTeam', foreignKey: 'away_team' });
79
64
  Match.belongsTo(Team, { as: 'HomeTeam', foreignKey: 'home_team' });
80
65
  Match.belongsToMany(Team, {
@@ -188,7 +173,6 @@ export function initModels(sequelize) {
188
173
  MatchSet,
189
174
  BoxScore,
190
175
  PerformanceStats,
191
- DivisionTeams,
192
176
  Player,
193
177
  PlayerTeam,
194
178
  Rally,
@@ -1,13 +1,13 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
- import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, LeagueId, LeagueModel, TeamId, TeamModel } from '.';
3
+ import { DivisionSeasonAttributes, DivisionSeasonId, DivisionSeasonModel, LeagueId, LeagueModel, TeamAttributes, 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
+ Teams?: TeamAttributes[];
11
11
  }
12
12
  export type DivisionPk = 'division_id';
13
13
  export type DivisionId = DivisionModel[DivisionPk];
@@ -32,27 +32,16 @@ export declare class DivisionModel extends Model<DivisionAttributes, DivisionCre
32
32
  hasDivisionSeason: Sequelize.HasManyHasAssociationMixin<DivisionSeasonModel, DivisionSeasonId>;
33
33
  hasDivisionSeasons: Sequelize.HasManyHasAssociationsMixin<DivisionSeasonModel, DivisionSeasonId>;
34
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
35
  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;
36
+ getTeams: Sequelize.HasManyGetAssociationsMixin<TeamModel>;
37
+ setTeams: Sequelize.HasManySetAssociationsMixin<TeamModel, TeamId>;
38
+ addTeam: Sequelize.HasManyAddAssociationMixin<TeamModel, TeamId>;
39
+ addTeams: Sequelize.HasManyAddAssociationsMixin<TeamModel, TeamId>;
40
+ createTeam: Sequelize.HasManyCreateAssociationMixin<TeamModel>;
41
+ removeTeam: Sequelize.HasManyRemoveAssociationMixin<TeamModel, TeamId>;
42
+ removeTeams: Sequelize.HasManyRemoveAssociationsMixin<TeamModel, TeamId>;
43
+ hasTeam: Sequelize.HasManyHasAssociationMixin<TeamModel, TeamId>;
44
+ hasTeams: Sequelize.HasManyHasAssociationsMixin<TeamModel, TeamId>;
45
+ countTeams: Sequelize.HasManyCountAssociationsMixin;
57
46
  static initModel(sequelize: Sequelize.Sequelize): typeof DivisionModel;
58
47
  }
@@ -11,7 +11,6 @@ export * from './iteration';
11
11
  export * from './league';
12
12
  export * from './division';
13
13
  export * from './division-season';
14
- export * from './division-teams';
15
14
  export * from './match';
16
15
  export * from './match-rating';
17
16
  export * from './match-result';
@@ -11,7 +11,6 @@ export * from './iteration';
11
11
  export * from './league';
12
12
  export * from './division';
13
13
  export * from './division-season';
14
- export * from './division-teams';
15
14
  export * from './match';
16
15
  export * from './match-rating';
17
16
  export * from './match-result';
@@ -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, DivisionAttributes, DivisionId, DivisionModel, DivisionTeamsAttributes, DivisionTeamsId, DivisionTeamsModel, 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, 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;
@@ -8,10 +8,10 @@ export interface TeamAttributes {
8
8
  rating: number;
9
9
  coach_id?: string;
10
10
  country_id?: string;
11
+ division_id: string;
11
12
  coach?: CoachAttributes;
12
13
  Players?: PlayerAttributes[];
13
- DivisionTeams?: DivisionTeamsAttributes;
14
- Divisions?: DivisionAttributes[];
14
+ Division?: DivisionAttributes;
15
15
  }
16
16
  export type TeamPk = 'team_id';
17
17
  export type TeamId = TeamModel[TeamPk];
@@ -24,6 +24,7 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
24
24
  short_name: string;
25
25
  country_id: string;
26
26
  rating: number;
27
+ division_id: string;
27
28
  coach: CoachModel;
28
29
  getCoach: Sequelize.BelongsToGetAssociationMixin<CoachModel>;
29
30
  setCoach: Sequelize.BelongsToSetAssociationMixin<CoachModel, CoachId>;
@@ -109,21 +110,10 @@ export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttribu
109
110
  hasRatingMatch: Sequelize.BelongsToManyHasAssociationMixin<MatchModel, MatchId>;
110
111
  hasRatingMatches: Sequelize.BelongsToManyHasAssociationsMixin<MatchModel, MatchId>;
111
112
  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;
113
+ Division: DivisionModel;
114
+ getDivision: Sequelize.BelongsToGetAssociationMixin<DivisionModel>;
115
+ setDivision: Sequelize.BelongsToSetAssociationMixin<DivisionModel, DivisionId>;
116
+ createDivision: Sequelize.BelongsToCreateAssociationMixin<DivisionModel>;
127
117
  MatchRatings: MatchRatingModel[];
128
118
  getMatchRatings: Sequelize.HasManyGetAssociationsMixin<MatchRatingModel>;
129
119
  setMatchRatings: Sequelize.HasManySetAssociationsMixin<MatchRatingModel, MatchRatingId>;
@@ -31,6 +31,14 @@ export class TeamModel extends Model {
31
31
  key: 'country_id'
32
32
  }
33
33
  },
34
+ division_id: {
35
+ type: DataTypes.UUID,
36
+ allowNull: false,
37
+ references: {
38
+ model: 'Division',
39
+ key: 'division_id'
40
+ }
41
+ },
34
42
  rating: {
35
43
  type: DataTypes.REAL,
36
44
  allowNull: false,
@@ -1,5 +1,6 @@
1
1
  import { Division } from '../../service';
2
2
  import { transformToSeason } from './season';
3
+ import { transformToTeam } from './team';
3
4
  function transformToAttributes(division, leagueId) {
4
5
  return {
5
6
  division_id: division.id,
@@ -13,7 +14,8 @@ function transformToObject(model) {
13
14
  id: model.division_id,
14
15
  name: model.name,
15
16
  tier: model.tier,
16
- seasons: (model.DivisionSeasons ?? []).map((ds) => transformToSeason(ds.competition))
17
+ seasons: (model.DivisionSeasons ?? []).map((ds) => transformToSeason(ds.competition)),
18
+ teams: model.Teams != null ? model.Teams.map(transformToTeam) : undefined
17
19
  });
18
20
  }
19
21
  export { transformToObject as transformToDivision, transformToAttributes as transformFromDivision };
@@ -8,7 +8,8 @@ function transformToAttributes(team) {
8
8
  coach_id: team.coach?.id,
9
9
  country_id: team.country?.id,
10
10
  coach: team.coach != null ? transformFromCoach(team.coach) : undefined,
11
- rating: team.rating
11
+ rating: team.rating,
12
+ division_id: team.divisionId
12
13
  };
13
14
  }
14
15
  function transformToObject(model) {
@@ -19,7 +20,8 @@ function transformToObject(model) {
19
20
  country: model.country != null ? transformToCountry(model.country) : undefined,
20
21
  coach: model.coach != null ? transformToCoach(model.coach) : undefined,
21
22
  roster: (model.PlayerTeams ?? []).map((pt) => transformToPlayer(pt.player)),
22
- rating: model.rating
23
+ rating: model.rating,
24
+ divisionId: model.division_id
23
25
  });
24
26
  }
25
27
  export { transformToObject as transformToTeam, transformToAttributes as transformFromTeam };
@@ -1,15 +1,18 @@
1
1
  import { Season } from './season';
2
+ import { Team } from '../team';
2
3
  interface DivisionOpts {
3
4
  readonly id: string;
4
5
  readonly name: string;
5
6
  readonly tier: number;
6
7
  readonly seasons: Season[];
8
+ readonly teams?: Team[];
7
9
  }
8
10
  export declare class Division {
9
11
  readonly id: string;
10
12
  readonly name: string;
11
13
  readonly tier: number;
12
14
  readonly seasons: Season[];
13
- constructor({ id, name, tier, seasons }: DivisionOpts);
15
+ readonly teams?: Team[];
16
+ constructor({ id, name, tier, seasons, teams }: DivisionOpts);
14
17
  }
15
18
  export {};
@@ -1,8 +1,9 @@
1
1
  export class Division {
2
- constructor({ id, name, tier, seasons }) {
2
+ constructor({ id, name, tier, seasons, teams }) {
3
3
  this.id = id;
4
4
  this.name = name;
5
5
  this.tier = tier;
6
6
  this.seasons = seasons;
7
+ this.teams = teams;
7
8
  }
8
9
  }
@@ -6,6 +6,7 @@ interface TeamParams {
6
6
  readonly rating: number;
7
7
  readonly name: string;
8
8
  readonly shortName: string;
9
+ readonly divisionId: string;
9
10
  readonly roster: Player[];
10
11
  readonly country?: Country;
11
12
  readonly coach?: Coach;
@@ -15,10 +16,11 @@ export declare class Team {
15
16
  readonly roster: Player[];
16
17
  readonly name: string;
17
18
  readonly shortName: string;
19
+ readonly divisionId: string;
18
20
  readonly coach?: Coach;
19
21
  readonly country?: Country;
20
22
  private _rating;
21
- constructor({ id, rating, name, shortName, country, roster, coach }: TeamParams);
23
+ constructor({ id, rating, name, shortName, divisionId, country, roster, coach }: TeamParams);
22
24
  get rating(): number;
23
25
  set rating(value: number);
24
26
  isPlayerInRoster(player: Player): boolean;
@@ -1,6 +1,6 @@
1
1
  import { validateUUID } from '../utils';
2
2
  export class Team {
3
- constructor({ id, rating, name, shortName, country, roster, coach }) {
3
+ constructor({ id, rating, name, shortName, divisionId, country, roster, coach }) {
4
4
  validateUUID(id);
5
5
  this.id = id;
6
6
  this._rating = rating;
@@ -8,6 +8,7 @@ export class Team {
8
8
  this.coach = coach;
9
9
  this.name = name;
10
10
  this.shortName = shortName;
11
+ this.divisionId = divisionId;
11
12
  this.country = country;
12
13
  }
13
14
  get rating() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.191",
3
+ "version": "0.0.192",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -1,23 +0,0 @@
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
- }
@@ -1,43 +0,0 @@
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,23 +0,0 @@
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
- }
@@ -1,39 +0,0 @@
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
- }