volleyballsimtypes 0.0.191 → 0.0.193

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 (63) hide show
  1. package/dist/cjs/src/data/init-models.js +6 -24
  2. package/dist/cjs/src/data/models/country.d.ts +1 -12
  3. package/dist/cjs/src/data/models/division.d.ts +12 -23
  4. package/dist/cjs/src/data/models/index.d.ts +1 -2
  5. package/dist/cjs/src/data/models/index.js +1 -2
  6. package/dist/cjs/src/data/models/tactics.d.ts +30 -0
  7. package/dist/cjs/src/data/models/{coach.js → tactics.js} +9 -24
  8. package/dist/cjs/src/data/models/team.d.ts +15 -25
  9. package/dist/cjs/src/data/models/team.js +10 -2
  10. package/dist/cjs/src/data/transformers/division.d.ts +1 -1
  11. package/dist/cjs/src/data/transformers/division.js +14 -4
  12. package/dist/cjs/src/data/transformers/index.d.ts +1 -1
  13. package/dist/cjs/src/data/transformers/index.js +1 -1
  14. package/dist/cjs/src/data/transformers/league.js +1 -1
  15. package/dist/cjs/src/data/transformers/tactics.d.ts +5 -0
  16. package/dist/cjs/src/data/transformers/tactics.js +21 -0
  17. package/dist/cjs/src/data/transformers/team.js +7 -5
  18. package/dist/cjs/src/service/coach/index.d.ts +1 -1
  19. package/dist/cjs/src/service/coach/index.js +1 -1
  20. package/dist/cjs/src/service/coach/tactics.d.ts +13 -0
  21. package/dist/cjs/src/service/coach/{coach.js → tactics.js} +4 -6
  22. package/dist/cjs/src/service/competition/division.d.ts +6 -1
  23. package/dist/cjs/src/service/competition/division.js +3 -1
  24. package/dist/cjs/src/service/team/team.d.ts +6 -4
  25. package/dist/cjs/src/service/team/team.js +3 -2
  26. package/dist/esm/src/data/init-models.js +7 -25
  27. package/dist/esm/src/data/models/country.d.ts +1 -12
  28. package/dist/esm/src/data/models/division.d.ts +12 -23
  29. package/dist/esm/src/data/models/index.d.ts +1 -2
  30. package/dist/esm/src/data/models/index.js +1 -2
  31. package/dist/esm/src/data/models/tactics.d.ts +30 -0
  32. package/dist/esm/src/data/models/{coach.js → tactics.js} +7 -22
  33. package/dist/esm/src/data/models/team.d.ts +15 -25
  34. package/dist/esm/src/data/models/team.js +10 -2
  35. package/dist/esm/src/data/transformers/division.d.ts +1 -1
  36. package/dist/esm/src/data/transformers/division.js +14 -4
  37. package/dist/esm/src/data/transformers/index.d.ts +1 -1
  38. package/dist/esm/src/data/transformers/index.js +1 -1
  39. package/dist/esm/src/data/transformers/league.js +1 -1
  40. package/dist/esm/src/data/transformers/tactics.d.ts +5 -0
  41. package/dist/esm/src/data/transformers/tactics.js +17 -0
  42. package/dist/esm/src/data/transformers/team.js +8 -6
  43. package/dist/esm/src/service/coach/index.d.ts +1 -1
  44. package/dist/esm/src/service/coach/index.js +1 -1
  45. package/dist/esm/src/service/coach/tactics.d.ts +13 -0
  46. package/dist/esm/src/service/coach/{coach.js → tactics.js} +2 -4
  47. package/dist/esm/src/service/competition/division.d.ts +6 -1
  48. package/dist/esm/src/service/competition/division.js +3 -1
  49. package/dist/esm/src/service/team/team.d.ts +6 -4
  50. package/dist/esm/src/service/team/team.js +3 -2
  51. package/package.json +2 -2
  52. package/dist/cjs/src/data/models/coach.d.ts +0 -40
  53. package/dist/cjs/src/data/models/division-teams.d.ts +0 -23
  54. package/dist/cjs/src/data/models/division-teams.js +0 -43
  55. package/dist/cjs/src/data/transformers/coach.d.ts +0 -5
  56. package/dist/cjs/src/data/transformers/coach.js +0 -29
  57. package/dist/cjs/src/service/coach/coach.d.ts +0 -19
  58. package/dist/esm/src/data/models/coach.d.ts +0 -40
  59. package/dist/esm/src/data/models/division-teams.d.ts +0 -23
  60. package/dist/esm/src/data/models/division-teams.js +0 -39
  61. package/dist/esm/src/data/transformers/coach.d.ts +0 -5
  62. package/dist/esm/src/data/transformers/coach.js +0 -25
  63. package/dist/esm/src/service/coach/coach.d.ts +0 -19
@@ -1,24 +1,26 @@
1
- import { Coach } from '../coach';
2
1
  import { Player } from '../player';
3
2
  import { Country } from '../country';
3
+ import { Tactics } from '../coach';
4
4
  interface TeamParams {
5
5
  readonly id: string;
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
- readonly coach?: Coach;
12
+ readonly tactics?: Tactics;
12
13
  }
13
14
  export declare class Team {
14
15
  readonly id: string;
15
16
  readonly roster: Player[];
16
17
  readonly name: string;
17
18
  readonly shortName: string;
18
- readonly coach?: Coach;
19
+ readonly divisionId: string;
20
+ readonly tactics?: Tactics;
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, tactics }: TeamParams);
22
24
  get rating(): number;
23
25
  set rating(value: number);
24
26
  isPlayerInRoster(player: Player): boolean;
@@ -3,14 +3,15 @@ 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, tactics }) {
7
7
  (0, utils_1.validateUUID)(id);
8
8
  this.id = id;
9
9
  this._rating = rating;
10
10
  this.roster = roster;
11
- this.coach = coach;
11
+ this.tactics = tactics;
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,6 +1,6 @@
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, CompetitionChampionModel, CompetitionMatchModel, CompetitionModel, CompetitionTeamsModel, CountryModel, DivisionModel, DivisionSeasonModel, DraftModel, DraftPickModel, IterationModel, LeagueModel, MatchModel, MatchRatingModel, MatchResultModel, MatchSetModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, RallyModel, SetPositionModel, TacticsModel, TeamModel, UserModel } from './models';
2
2
  export function initModels(sequelize) {
3
- const Coach = CoachModel.initModel(sequelize);
3
+ const Tactics = TacticsModel.initModel(sequelize);
4
4
  const Country = CountryModel.initModel(sequelize);
5
5
  const Competition = CompetitionModel.initModel(sequelize);
6
6
  const CompetitionTeams = CompetitionTeamsModel.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);
@@ -25,8 +24,7 @@ export function initModels(sequelize) {
25
24
  const SetPosition = SetPositionModel.initModel(sequelize);
26
25
  const Team = TeamModel.initModel(sequelize);
27
26
  const User = UserModel.initModel(sequelize);
28
- Coach.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
29
- Coach.hasMany(Team, { as: 'Teams', foreignKey: 'coach_id' });
27
+ Tactics.hasMany(Team, { as: 'Teams', foreignKey: 'tactics_id' });
30
28
  Competition.belongsTo(Iteration, { as: 'Iteration', foreignKey: 'iteration' });
31
29
  Competition.hasMany(CompetitionMatch, { as: 'CompetitionMatches', foreignKey: 'competition_id' });
32
30
  Competition.hasMany(CompetitionTeams, { as: 'CompetitionTeams', foreignKey: 'competition_id' });
@@ -44,7 +42,6 @@ export function initModels(sequelize) {
44
42
  CompetitionMatch.belongsTo(Match, { as: 'Match', foreignKey: 'match_id' });
45
43
  CompetitionTeams.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
46
44
  CompetitionTeams.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
47
- Country.hasMany(Coach, { as: 'Coaches', foreignKey: 'country_id' });
48
45
  Country.hasMany(League, { as: 'Leagues', foreignKey: 'country_id' });
49
46
  Country.hasMany(Player, { as: 'Players', foreignKey: 'country_id' });
50
47
  Country.hasMany(Team, { as: 'Teams', foreignKey: 'country_id' });
@@ -57,24 +54,10 @@ export function initModels(sequelize) {
57
54
  League.hasMany(Division, { as: 'Divisions', foreignKey: 'league_id' });
58
55
  Division.belongsTo(League, { as: 'league', foreignKey: 'league_id' });
59
56
  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
- });
57
+ Division.hasMany(Team, { as: 'Teams', foreignKey: 'division_id' });
67
58
  DivisionSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
68
59
  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
- });
60
+ Team.belongsTo(Division, { as: 'Division', foreignKey: 'division_id' });
78
61
  Match.belongsTo(Team, { as: 'AwayTeam', foreignKey: 'away_team' });
79
62
  Match.belongsTo(Team, { as: 'HomeTeam', foreignKey: 'home_team' });
80
63
  Match.belongsToMany(Team, {
@@ -140,7 +123,7 @@ export function initModels(sequelize) {
140
123
  Rally.belongsTo(Team, { as: 'ServingTeam', foreignKey: 'serving_team' });
141
124
  SetPosition.belongsTo(MatchSet, { as: 'matchSet', foreignKey: 'match_set_id' });
142
125
  SetPosition.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
143
- Team.belongsTo(Coach, { as: 'coach', foreignKey: 'coach_id' });
126
+ Team.belongsTo(Tactics, { as: 'tactics', foreignKey: 'tactics_id' });
144
127
  Team.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
145
128
  Team.belongsToMany(Competition, {
146
129
  as: 'Competitions',
@@ -170,7 +153,6 @@ export function initModels(sequelize) {
170
153
  Team.hasMany(Rally, { as: 'Rallies', foreignKey: 'serving_team' });
171
154
  Team.hasMany(MatchResult, { as: 'WonMatches', foreignKey: 'winner_team_id' });
172
155
  return {
173
- Coach,
174
156
  Competition,
175
157
  CompetitionChampion,
176
158
  CompetitionMatch,
@@ -188,12 +170,12 @@ export function initModels(sequelize) {
188
170
  MatchSet,
189
171
  BoxScore,
190
172
  PerformanceStats,
191
- DivisionTeams,
192
173
  Player,
193
174
  PlayerTeam,
194
175
  Rally,
195
176
  SetPosition,
196
177
  Team,
178
+ Tactics,
197
179
  User
198
180
  };
199
181
  }
@@ -1,6 +1,6 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
- import { CoachId, CoachModel, LeagueId, LeagueModel, PlayerId, PlayerModel, TeamId, TeamModel } from '.';
3
+ import { LeagueId, LeagueModel, PlayerId, PlayerModel, TeamId, TeamModel } from '.';
4
4
  export interface CountryAttributes {
5
5
  country_id: string;
6
6
  name: string;
@@ -13,17 +13,6 @@ export declare class CountryModel extends Model<CountryAttributes, CountryCreati
13
13
  country_id: string;
14
14
  name: string;
15
15
  short_name: string;
16
- Coaches: CoachModel[];
17
- getCoaches: Sequelize.HasManyGetAssociationsMixin<CoachModel>;
18
- setCoaches: Sequelize.HasManySetAssociationsMixin<CoachModel, CoachId>;
19
- addCoach: Sequelize.HasManyAddAssociationMixin<CoachModel, CoachId>;
20
- addCoaches: Sequelize.HasManyAddAssociationsMixin<CoachModel, CoachId>;
21
- createCoach: Sequelize.HasManyCreateAssociationMixin<CoachModel>;
22
- removeCoach: Sequelize.HasManyRemoveAssociationMixin<CoachModel, CoachId>;
23
- removeCoaches: Sequelize.HasManyRemoveAssociationsMixin<CoachModel, CoachId>;
24
- hasCoach: Sequelize.HasManyHasAssociationMixin<CoachModel, CoachId>;
25
- hasCoaches: Sequelize.HasManyHasAssociationsMixin<CoachModel, CoachId>;
26
- countCoaches: Sequelize.HasManyCountAssociationsMixin;
27
16
  Leagues: LeagueModel[];
28
17
  getLeagues: Sequelize.HasManyGetAssociationsMixin<LeagueModel>;
29
18
  setLeagues: Sequelize.HasManySetAssociationsMixin<LeagueModel, LeagueId>;
@@ -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
  }
@@ -1,5 +1,4 @@
1
1
  export * from './box-score';
2
- export * from './coach';
3
2
  export * from './competition';
4
3
  export * from './competition-champion';
5
4
  export * from './competition-match';
@@ -11,7 +10,6 @@ export * from './iteration';
11
10
  export * from './league';
12
11
  export * from './division';
13
12
  export * from './division-season';
14
- export * from './division-teams';
15
13
  export * from './match';
16
14
  export * from './match-rating';
17
15
  export * from './match-result';
@@ -23,3 +21,4 @@ export * from './rally';
23
21
  export * from './set-position';
24
22
  export * from './team';
25
23
  export * from './user';
24
+ export * from './tactics';
@@ -1,5 +1,4 @@
1
1
  export * from './box-score';
2
- export * from './coach';
3
2
  export * from './competition';
4
3
  export * from './competition-champion';
5
4
  export * from './competition-match';
@@ -11,7 +10,6 @@ export * from './iteration';
11
10
  export * from './league';
12
11
  export * from './division';
13
12
  export * from './division-season';
14
- export * from './division-teams';
15
13
  export * from './match';
16
14
  export * from './match-rating';
17
15
  export * from './match-result';
@@ -23,3 +21,4 @@ export * from './rally';
23
21
  export * from './set-position';
24
22
  export * from './team';
25
23
  export * from './user';
24
+ export * from './tactics';
@@ -0,0 +1,30 @@
1
+ import * as Sequelize from 'sequelize';
2
+ import { Model, Optional } from 'sequelize';
3
+ import { TeamId, TeamModel } from '.';
4
+ export interface TacticsAttributes {
5
+ tactics_id: string;
6
+ formation: FormationType;
7
+ substitution_tolerance: number;
8
+ }
9
+ export type FormationType = '4-2' | '5-1' | '6-2';
10
+ export type TacticsPk = 'tactics_id';
11
+ export type TacticsId = TacticsModel[TacticsPk];
12
+ export type TacticsOptionalAttributes = 'substitution_tolerance';
13
+ export type TacticsCreationAttributes = Optional<TacticsAttributes, TacticsOptionalAttributes>;
14
+ export declare class TacticsModel extends Model<TacticsAttributes, TacticsCreationAttributes> implements TacticsAttributes {
15
+ tactics_id: string;
16
+ formation: FormationType;
17
+ substitution_tolerance: number;
18
+ Teams: TeamModel[];
19
+ getTeams: Sequelize.HasManyGetAssociationsMixin<TeamModel>;
20
+ setTeams: Sequelize.HasManySetAssociationsMixin<TeamModel, TeamId>;
21
+ addTeam: Sequelize.HasManyAddAssociationMixin<TeamModel, TeamId>;
22
+ addTeams: Sequelize.HasManyAddAssociationsMixin<TeamModel, TeamId>;
23
+ createTeam: Sequelize.HasManyCreateAssociationMixin<TeamModel>;
24
+ removeTeam: Sequelize.HasManyRemoveAssociationMixin<TeamModel, TeamId>;
25
+ removeTeams: Sequelize.HasManyRemoveAssociationsMixin<TeamModel, TeamId>;
26
+ hasTeam: Sequelize.HasManyHasAssociationMixin<TeamModel, TeamId>;
27
+ hasTeams: Sequelize.HasManyHasAssociationsMixin<TeamModel, TeamId>;
28
+ countTeams: Sequelize.HasManyCountAssociationsMixin;
29
+ static initModel(sequelize: Sequelize.Sequelize): typeof TacticsModel;
30
+ }
@@ -1,11 +1,12 @@
1
1
  import { DataTypes, Model } from 'sequelize';
2
- export class CoachModel extends Model {
2
+ export class TacticsModel extends Model {
3
3
  static initModel(sequelize) {
4
- return CoachModel.init({
5
- coach_id: {
4
+ return TacticsModel.init({
5
+ tactics_id: {
6
6
  type: DataTypes.UUID,
7
7
  allowNull: false,
8
- primaryKey: true
8
+ primaryKey: true,
9
+ field: 'coach_id'
9
10
  },
10
11
  formation: {
11
12
  type: DataTypes.ENUM('4-2', '5-1', '6-2'),
@@ -15,31 +16,15 @@ export class CoachModel extends Model {
15
16
  type: DataTypes.REAL,
16
17
  allowNull: false,
17
18
  defaultValue: 0
18
- },
19
- first_name: {
20
- type: DataTypes.STRING,
21
- allowNull: false
22
- },
23
- last_name: {
24
- type: DataTypes.STRING,
25
- allowNull: false
26
- },
27
- country_id: {
28
- type: DataTypes.UUID,
29
- allowNull: false,
30
- references: {
31
- model: 'Country',
32
- key: 'country_id'
33
- }
34
19
  }
35
20
  }, {
36
21
  sequelize,
37
- tableName: 'Coach',
22
+ tableName: 'Tactics',
38
23
  schema: 'public',
39
24
  timestamps: false,
40
25
  indexes: [
41
26
  {
42
- name: 'Coach_pk',
27
+ name: 'Tactics_pk',
43
28
  unique: true,
44
29
  fields: [
45
30
  { name: 'coach_id' }
@@ -1,17 +1,17 @@
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 { TacticsAttributes, TacticsId, TacticsModel, 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;
7
7
  short_name: string;
8
8
  rating: number;
9
- coach_id?: string;
9
+ tactics_id?: string;
10
10
  country_id?: string;
11
- coach?: CoachAttributes;
11
+ division_id: string;
12
+ tactics?: TacticsAttributes;
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];
@@ -19,15 +19,16 @@ export type TeamOptionalAttributes = 'rating';
19
19
  export type TeamCreationAttributes = Optional<TeamAttributes, TeamOptionalAttributes>;
20
20
  export declare class TeamModel extends Model<TeamAttributes, TeamCreationAttributes> implements TeamAttributes {
21
21
  team_id: string;
22
- coach_id: string;
22
+ tactics_id: string;
23
23
  name: string;
24
24
  short_name: string;
25
25
  country_id: string;
26
26
  rating: number;
27
- coach: CoachModel;
28
- getCoach: Sequelize.BelongsToGetAssociationMixin<CoachModel>;
29
- setCoach: Sequelize.BelongsToSetAssociationMixin<CoachModel, CoachId>;
30
- createCoach: Sequelize.BelongsToCreateAssociationMixin<CoachModel>;
27
+ division_id: string;
28
+ tactics: TacticsModel;
29
+ getTactics: Sequelize.BelongsToGetAssociationMixin<TacticsModel>;
30
+ setTactics: Sequelize.BelongsToSetAssociationMixin<TacticsModel, TacticsId>;
31
+ createTactics: Sequelize.BelongsToCreateAssociationMixin<TacticsModel>;
31
32
  country: CountryModel;
32
33
  getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
33
34
  setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
@@ -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>;
@@ -7,11 +7,11 @@ export class TeamModel extends Model {
7
7
  allowNull: false,
8
8
  primaryKey: true
9
9
  },
10
- coach_id: {
10
+ tactics_id: {
11
11
  type: DataTypes.UUID,
12
12
  allowNull: false,
13
13
  references: {
14
- model: 'Coach',
14
+ model: 'Tactics',
15
15
  key: 'coach_id'
16
16
  }
17
17
  },
@@ -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,5 @@
1
1
  import { DivisionAttributes, DivisionModel } from '../models';
2
2
  import { Division } from '../../service';
3
- declare function transformToAttributes(division: Division, leagueId: string): DivisionAttributes;
3
+ declare function transformToAttributes(division: Division): DivisionAttributes;
4
4
  declare function transformToObject(model: DivisionModel): Division;
5
5
  export { transformToObject as transformToDivision, transformToAttributes as transformFromDivision };
@@ -1,11 +1,19 @@
1
1
  import { Division } from '../../service';
2
2
  import { transformToSeason } from './season';
3
- function transformToAttributes(division, leagueId) {
3
+ import { transformFromTeam, transformToTeam } from './team';
4
+ function transformToAttributes(division) {
5
+ const Teams = (division.teams ?? []).map(transformFromTeam);
6
+ const DivisionSeasons = division.seasons.map(season => ({
7
+ division_id: division.id,
8
+ competition_id: season.id
9
+ }));
4
10
  return {
5
11
  division_id: division.id,
6
- league_id: leagueId,
12
+ league_id: division.leagueId,
7
13
  tier: division.tier,
8
- name: division.name
14
+ name: division.name,
15
+ DivisionSeasons,
16
+ Teams
9
17
  };
10
18
  }
11
19
  function transformToObject(model) {
@@ -13,7 +21,9 @@ function transformToObject(model) {
13
21
  id: model.division_id,
14
22
  name: model.name,
15
23
  tier: model.tier,
16
- seasons: (model.DivisionSeasons ?? []).map((ds) => transformToSeason(ds.competition))
24
+ leagueId: model.league_id,
25
+ seasons: (model.DivisionSeasons ?? []).map((ds) => transformToSeason(ds.competition)),
26
+ teams: model.Teams != null ? model.Teams.map(transformToTeam) : undefined
17
27
  });
18
28
  }
19
29
  export { transformToObject as transformToDivision, transformToAttributes as transformFromDivision };
@@ -1,4 +1,3 @@
1
- export * from './coach';
2
1
  export * from './country';
3
2
  export * from './court-position';
4
3
  export * from './formation';
@@ -22,3 +21,4 @@ export * from './season-match';
22
21
  export * from './player-team';
23
22
  export * from './match-rating';
24
23
  export * from './team';
24
+ export * from './tactics';
@@ -1,4 +1,3 @@
1
- export * from './coach';
2
1
  export * from './country';
3
2
  export * from './court-position';
4
3
  export * from './formation';
@@ -22,3 +21,4 @@ export * from './season-match';
22
21
  export * from './player-team';
23
22
  export * from './match-rating';
24
23
  export * from './team';
24
+ export * from './tactics';
@@ -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.divisions?.map(div => transformFromDivision(div, league.id));
4
+ const Divisions = league.divisions?.map((division) => transformFromDivision(division));
5
5
  return {
6
6
  league_id: league.id,
7
7
  country_id: league.country.id,
@@ -0,0 +1,5 @@
1
+ import { TacticsAttributes, TacticsModel } from '../models';
2
+ import { Tactics } from '../../service';
3
+ declare function transformToAttributes(tactics: Tactics): TacticsAttributes;
4
+ declare function transformToObject(model: TacticsModel): Tactics;
5
+ export { transformToObject as transformToTactics, transformToAttributes as transformFromTactics };
@@ -0,0 +1,17 @@
1
+ import { transformFromFormation, transformToFormation } from '.';
2
+ import { Tactics } from '../../service';
3
+ function transformToAttributes(tactics) {
4
+ return {
5
+ tactics_id: tactics.id,
6
+ substitution_tolerance: tactics.substitutionTolerance ?? 0,
7
+ formation: transformFromFormation(tactics.formation)
8
+ };
9
+ }
10
+ function transformToObject(model) {
11
+ return new Tactics({
12
+ id: model.tactics_id,
13
+ substitutionTolerance: model.substitution_tolerance,
14
+ formation: transformToFormation(model.formation)
15
+ });
16
+ }
17
+ export { transformToObject as transformToTactics, transformToAttributes as transformFromTactics };
@@ -1,14 +1,15 @@
1
1
  import { Team } from '../../service';
2
- import { transformFromCoach, transformToCoach, transformToCountry, transformToPlayer } from '.';
2
+ import { transformFromTactics, transformToCountry, transformToPlayer, transformToTactics } from '.';
3
3
  function transformToAttributes(team) {
4
4
  return {
5
5
  team_id: team.id,
6
6
  name: team.name,
7
7
  short_name: team.shortName,
8
- coach_id: team.coach?.id,
8
+ tactics_id: team.tactics?.id,
9
9
  country_id: team.country?.id,
10
- coach: team.coach != null ? transformFromCoach(team.coach) : undefined,
11
- rating: team.rating
10
+ tactics: team.tactics != null ? transformFromTactics(team.tactics) : undefined,
11
+ rating: team.rating,
12
+ division_id: team.divisionId
12
13
  };
13
14
  }
14
15
  function transformToObject(model) {
@@ -17,9 +18,10 @@ function transformToObject(model) {
17
18
  name: model.name,
18
19
  shortName: model.short_name,
19
20
  country: model.country != null ? transformToCountry(model.country) : undefined,
20
- coach: model.coach != null ? transformToCoach(model.coach) : undefined,
21
+ tactics: model.tactics != null ? transformToTactics(model.tactics) : 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,2 +1,2 @@
1
- export * from './coach';
1
+ export * from './tactics';
2
2
  export * from './formation';
@@ -1,2 +1,2 @@
1
- export * from './coach';
1
+ export * from './tactics';
2
2
  export * from './formation';
@@ -0,0 +1,13 @@
1
+ import { Formation } from './formation';
2
+ interface TacticsOpts {
3
+ readonly id: string;
4
+ readonly formation: Formation;
5
+ readonly substitutionTolerance?: number;
6
+ }
7
+ export declare class Tactics {
8
+ readonly id: string;
9
+ readonly formation: Formation;
10
+ readonly substitutionTolerance: number;
11
+ constructor({ id, formation, substitutionTolerance }: TacticsOpts);
12
+ }
13
+ export {};
@@ -1,10 +1,8 @@
1
1
  import { validateUUID } from '../utils';
2
- export class Coach {
3
- constructor({ id, name, country, formation, substitutionTolerance }) {
2
+ export class Tactics {
3
+ constructor({ id, formation, substitutionTolerance = 0 }) {
4
4
  validateUUID(id);
5
5
  this.id = id;
6
- this.name = name;
7
- this.country = country;
8
6
  this.formation = formation;
9
7
  this.substitutionTolerance = substitutionTolerance;
10
8
  }
@@ -1,15 +1,20 @@
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;
7
+ readonly leagueId: string;
6
8
  readonly seasons: Season[];
9
+ readonly teams?: Team[];
7
10
  }
8
11
  export declare class Division {
9
12
  readonly id: string;
10
13
  readonly name: string;
11
14
  readonly tier: number;
15
+ readonly leagueId: string;
12
16
  readonly seasons: Season[];
13
- constructor({ id, name, tier, seasons }: DivisionOpts);
17
+ readonly teams?: Team[];
18
+ constructor({ id, name, tier, seasons, teams, leagueId }: DivisionOpts);
14
19
  }
15
20
  export {};