volleyballsimtypes 0.0.147 → 0.0.148

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 (33) hide show
  1. package/dist/cjs/src/common/status.d.ts +8 -0
  2. package/dist/cjs/src/common/status.js +11 -0
  3. package/dist/cjs/src/data/models/competition.d.ts +3 -0
  4. package/dist/cjs/src/data/models/competition.js +6 -0
  5. package/dist/cjs/src/data/models/match.d.ts +3 -2
  6. package/dist/cjs/src/data/models/match.js +4 -3
  7. package/dist/cjs/src/data/transformers/match.js +2 -2
  8. package/dist/cjs/src/data/transformers/season.js +4 -2
  9. package/dist/cjs/src/data/transformers/tournament.js +4 -2
  10. package/dist/cjs/src/service/competition/season.d.ts +4 -1
  11. package/dist/cjs/src/service/competition/season.js +2 -1
  12. package/dist/cjs/src/service/competition/tournament.d.ts +4 -1
  13. package/dist/cjs/src/service/competition/tournament.js +2 -1
  14. package/dist/cjs/src/service/match/match.d.ts +5 -3
  15. package/dist/cjs/src/service/match/match.js +6 -2
  16. package/dist/cjs/src/service/player/trait.js +1 -1
  17. package/dist/esm/src/common/status.d.ts +8 -0
  18. package/dist/esm/src/common/status.js +8 -0
  19. package/dist/esm/src/data/models/competition.d.ts +3 -0
  20. package/dist/esm/src/data/models/competition.js +6 -0
  21. package/dist/esm/src/data/models/match.d.ts +3 -2
  22. package/dist/esm/src/data/models/match.js +4 -3
  23. package/dist/esm/src/data/transformers/match.js +2 -2
  24. package/dist/esm/src/data/transformers/season.js +4 -2
  25. package/dist/esm/src/data/transformers/tournament.js +4 -2
  26. package/dist/esm/src/service/competition/season.d.ts +4 -1
  27. package/dist/esm/src/service/competition/season.js +2 -1
  28. package/dist/esm/src/service/competition/tournament.d.ts +4 -1
  29. package/dist/esm/src/service/competition/tournament.js +2 -1
  30. package/dist/esm/src/service/match/match.d.ts +5 -3
  31. package/dist/esm/src/service/match/match.js +6 -2
  32. package/dist/esm/src/service/player/trait.js +1 -1
  33. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ import { EnumDataType } from 'sequelize';
2
+ export declare enum StatusEnum {
3
+ PENDING = "PENDING",
4
+ IN_PROGRESS = "IN_PROGRESS",
5
+ COMPLETE = "COMPLETE"
6
+ }
7
+ export type Status = StatusEnum.PENDING | StatusEnum.IN_PROGRESS | StatusEnum.COMPLETE;
8
+ export declare const StatusDataType: EnumDataType<Status>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusDataType = exports.StatusEnum = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ var StatusEnum;
6
+ (function (StatusEnum) {
7
+ StatusEnum["PENDING"] = "PENDING";
8
+ StatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
9
+ StatusEnum["COMPLETE"] = "COMPLETE";
10
+ })(StatusEnum = exports.StatusEnum || (exports.StatusEnum = {}));
11
+ exports.StatusDataType = sequelize_1.DataTypes.ENUM(...Object.values(StatusEnum));
@@ -1,9 +1,11 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
3
  import { CompetitionChampionAttributes, CompetitionChampionId, CompetitionChampionModel, CompetitionMatchAttributes, CompetitionMatchId, CompetitionMatchModel, CompetitionTeamsAttributes, CompetitionTeamsId, CompetitionTeamsModel, IterationId, IterationModel, LeagueSeasonAttributes, LeagueSeasonId, LeagueSeasonModel, TeamId, TeamModel } from '.';
4
+ import { Status } from '../../common/status';
4
5
  export interface CompetitionAttributes {
5
6
  competition_id: string;
6
7
  iteration: number;
8
+ status: Status;
7
9
  type: CompetitionType;
8
10
  LeagueSeason?: LeagueSeasonAttributes;
9
11
  CompetitionChampion?: CompetitionChampionAttributes;
@@ -18,6 +20,7 @@ export declare class CompetitionModel extends Model<CompetitionAttributes, Compe
18
20
  competition_id: string;
19
21
  iteration: number;
20
22
  type: CompetitionType;
23
+ status: Status;
21
24
  CompetitionChampion: CompetitionChampionModel;
22
25
  getCompetitionChampion: Sequelize.HasOneGetAssociationMixin<CompetitionChampionModel>;
23
26
  setCompetitionChampion: Sequelize.HasOneSetAssociationMixin<CompetitionChampionModel, CompetitionChampionId>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CompetitionModel = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
+ const status_1 = require("../../common/status");
5
6
  class CompetitionModel extends sequelize_1.Model {
6
7
  static initModel(sequelize) {
7
8
  return CompetitionModel.init({
@@ -21,6 +22,11 @@ class CompetitionModel extends sequelize_1.Model {
21
22
  type: {
22
23
  type: sequelize_1.DataTypes.ENUM('LEAGUE', 'TOURNAMENT'),
23
24
  allowNull: false
25
+ },
26
+ status: {
27
+ type: status_1.StatusDataType,
28
+ allowNull: false,
29
+ defaultValue: 'PENDING'
24
30
  }
25
31
  }, {
26
32
  sequelize,
@@ -1,12 +1,13 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
3
  import { CompetitionMatchId, CompetitionMatchModel, MatchRatingId, MatchRatingModel, MatchSetAttributes, MatchSetId, MatchSetModel, TeamId, TeamModel } from '.';
4
+ import { Status } from '../../common/status';
4
5
  export interface MatchAttributes {
5
6
  match_id: string;
6
7
  home_team: string;
7
8
  away_team: string;
8
9
  scheduled_date: Date;
9
- is_simulated: boolean;
10
+ status: Status;
10
11
  MatchSets?: MatchSetAttributes[];
11
12
  }
12
13
  export type MatchPk = 'match_id';
@@ -17,7 +18,7 @@ export declare class MatchModel extends Model<MatchAttributes, MatchCreationAttr
17
18
  home_team: string;
18
19
  away_team: string;
19
20
  scheduled_date: Date;
20
- is_simulated: boolean;
21
+ status: Status;
21
22
  CompetitionMatch: CompetitionMatchModel;
22
23
  getCompetitionMatch: Sequelize.HasOneGetAssociationMixin<CompetitionMatchModel>;
23
24
  setCompetitionMatch: Sequelize.HasOneSetAssociationMixin<CompetitionMatchModel, CompetitionMatchId>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MatchModel = void 0;
4
4
  const sequelize_1 = require("sequelize");
5
+ const status_1 = require("../../common/status");
5
6
  class MatchModel extends sequelize_1.Model {
6
7
  static initModel(sequelize) {
7
8
  return MatchModel.init({
@@ -30,10 +31,10 @@ class MatchModel extends sequelize_1.Model {
30
31
  type: sequelize_1.DataTypes.DATE,
31
32
  allowNull: false
32
33
  },
33
- is_simulated: {
34
- type: sequelize_1.DataTypes.BOOLEAN,
34
+ status: {
35
+ type: status_1.StatusDataType,
35
36
  allowNull: false,
36
- defaultValue: false
37
+ defaultValue: 'PENDING'
37
38
  }
38
39
  }, {
39
40
  sequelize,
@@ -10,7 +10,7 @@ function transformToAttributes(match) {
10
10
  away_team: match.awayTeam.id,
11
11
  home_team: match.homeTeam.id,
12
12
  scheduled_date: match.scheduledDate,
13
- is_simulated: match.isSimulated
13
+ status: match.status
14
14
  };
15
15
  }
16
16
  exports.transformFromMatch = transformToAttributes;
@@ -25,7 +25,7 @@ function transformToObject(model) {
25
25
  awayTeam: (0, team_1.transformToTeam)(model.AwayTeam),
26
26
  scheduledDate: new Date(model.scheduled_date),
27
27
  sets,
28
- isSimulated: model.is_simulated
28
+ status: model.status
29
29
  });
30
30
  }
31
31
  exports.transformToMatch = transformToObject;
@@ -24,7 +24,8 @@ function transformToAttributes(season, leagueId) {
24
24
  LeagueSeason: { league_id: leagueId, competition_id: season.id },
25
25
  CompetitionChampion: champion,
26
26
  CompetitionMatches: matches,
27
- CompetitionTeams: teams
27
+ CompetitionTeams: teams,
28
+ status: season.status
28
29
  };
29
30
  }
30
31
  exports.transformFromSeason = transformToAttributes;
@@ -37,7 +38,8 @@ function transformToObject(model) {
37
38
  matches,
38
39
  iteration: (0, _1.transformToIteration)(model.Iteration),
39
40
  teams: model.Teams != null ? model.Teams.map(_1.transformToTeam) : [],
40
- champion: model.CompetitionChampion != null ? (0, _1.transformToTeam)(model.CompetitionChampion.team) : undefined
41
+ champion: model.CompetitionChampion != null ? (0, _1.transformToTeam)(model.CompetitionChampion.team) : undefined,
42
+ status: model.status
41
43
  });
42
44
  }
43
45
  exports.transformToSeason = transformToObject;
@@ -21,7 +21,8 @@ function transformToAttributes(tournament) {
21
21
  iteration: tournament.iteration.id,
22
22
  CompetitionChampion: champion,
23
23
  CompetitionMatches: matches,
24
- CompetitionTeams: teams
24
+ CompetitionTeams: teams,
25
+ status: tournament.status
25
26
  };
26
27
  }
27
28
  exports.transformFromTournament = transformToAttributes;
@@ -31,7 +32,8 @@ function transformToObject(model) {
31
32
  iteration: (0, _1.transformToIteration)(model.Iteration),
32
33
  matches: model.CompetitionMatches != null ? model.CompetitionMatches.map(_1.transformToTournamentMatch) : [],
33
34
  teams: model.Teams != null ? model.Teams.map(_1.transformToTeam) : [],
34
- champion: model.CompetitionChampion != null ? (0, _1.transformToTeam)(model.CompetitionChampion.team) : undefined
35
+ champion: model.CompetitionChampion != null ? (0, _1.transformToTeam)(model.CompetitionChampion.team) : undefined,
36
+ status: model.status
35
37
  });
36
38
  }
37
39
  exports.transformToTournament = transformToObject;
@@ -2,12 +2,14 @@ import { Team } from '../team';
2
2
  import { Match } from '../match';
3
3
  import { Standing } from './standing';
4
4
  import { Iteration } from './iteration';
5
+ import { StatusEnum } from '../../common/status';
5
6
  interface SeasonOpts {
6
7
  readonly id: string;
7
8
  readonly teams: Team[];
8
9
  readonly matches: Match[];
9
10
  readonly iteration: Iteration;
10
11
  readonly champion?: Team;
12
+ readonly status: StatusEnum;
11
13
  }
12
14
  export declare class Season {
13
15
  readonly id: string;
@@ -15,8 +17,9 @@ export declare class Season {
15
17
  readonly matches: Match[];
16
18
  readonly iteration: Iteration;
17
19
  readonly standings: Standing[];
20
+ readonly status: StatusEnum;
18
21
  champion?: Team;
19
- constructor({ id, iteration, teams, matches, champion }: SeasonOpts);
22
+ constructor({ id, iteration, teams, matches, champion, status }: SeasonOpts);
20
23
  calculateStandings(): Standing[];
21
24
  updateStandings(): void;
22
25
  }
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Season = void 0;
4
4
  const standing_1 = require("./standing");
5
5
  class Season {
6
- constructor({ id, iteration, teams, matches, champion }) {
6
+ constructor({ id, iteration, teams, matches, champion, status }) {
7
7
  this.id = id;
8
8
  this.teams = teams;
9
9
  this.matches = matches;
10
10
  this.iteration = iteration;
11
11
  this.champion = champion;
12
12
  this.standings = this.calculateStandings();
13
+ this.status = status;
13
14
  }
14
15
  calculateStandings() {
15
16
  return this.teams.map(team => {
@@ -1,20 +1,23 @@
1
1
  import { TournamentMatch } from './tournament-match';
2
2
  import { Team } from '../team';
3
3
  import { Iteration } from './iteration';
4
+ import { StatusEnum } from '../../common/status';
4
5
  interface TournamentOpts {
5
6
  readonly id: string;
6
7
  readonly iteration: Iteration;
7
8
  readonly matches: TournamentMatch[];
8
9
  readonly teams: Team[];
9
10
  readonly champion?: Team;
11
+ readonly status: StatusEnum;
10
12
  }
11
13
  export declare class Tournament {
12
14
  readonly id: string;
13
15
  readonly iteration: Iteration;
14
16
  readonly matches: TournamentMatch[];
15
17
  readonly teams: Team[];
18
+ readonly status: StatusEnum;
16
19
  champion?: Team;
17
- constructor({ id, iteration, matches, teams, champion }: TournamentOpts);
20
+ constructor({ id, iteration, matches, teams, champion, status }: TournamentOpts);
18
21
  static sortMatchesFn(m1: TournamentMatch, m2: TournamentMatch): number;
19
22
  }
20
23
  export {};
@@ -2,12 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Tournament = void 0;
4
4
  class Tournament {
5
- constructor({ id, iteration, matches, teams, champion }) {
5
+ constructor({ id, iteration, matches, teams, champion, status }) {
6
6
  this.id = id;
7
7
  this.iteration = iteration;
8
8
  this.matches = matches;
9
9
  this.teams = teams;
10
10
  this.champion = champion;
11
+ this.status = status;
11
12
  this.matches.sort(Tournament.sortMatchesFn);
12
13
  }
13
14
  static sortMatchesFn(m1, m2) {
@@ -1,13 +1,14 @@
1
1
  import { MatchSet } from './match-set';
2
2
  import { Team } from '../team';
3
3
  import { MatchTeam } from './match-team';
4
+ import { StatusEnum } from '../../common/status';
4
5
  interface MatchParams {
5
6
  readonly id: string;
6
7
  readonly homeTeam: Team;
7
8
  readonly awayTeam: Team;
8
9
  readonly scheduledDate: Date;
9
10
  readonly sets: MatchSet[];
10
- readonly isSimulated: boolean;
11
+ readonly status: StatusEnum;
11
12
  }
12
13
  export declare enum MatchScore {
13
14
  '3-0' = "3-0",
@@ -24,13 +25,14 @@ export declare class Match {
24
25
  readonly awayTeam: Team;
25
26
  readonly sets: MatchSet[];
26
27
  readonly scheduledDate: Date;
27
- isSimulated: boolean;
28
- constructor({ id, homeTeam, awayTeam, scheduledDate, sets, isSimulated }: MatchParams);
28
+ status: StatusEnum;
29
+ constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status }: MatchParams);
29
30
  addSet(set: MatchSet): void;
30
31
  getTeamSets(team: MatchTeam): number;
31
32
  getScore(): MatchScore;
32
33
  isOver(): boolean;
33
34
  getWinner(): Team;
34
35
  isWinner(team: MatchTeam): boolean;
36
+ isSimulated(): boolean;
35
37
  }
36
38
  export {};
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Match = exports.MatchScore = void 0;
4
4
  const utils_1 = require("../utils");
5
5
  const match_team_1 = require("./match-team");
6
+ const status_1 = require("../../common/status");
6
7
  var MatchScore;
7
8
  (function (MatchScore) {
8
9
  MatchScore["3-0"] = "3-0";
@@ -13,14 +14,14 @@ var MatchScore;
13
14
  MatchScore["0-3"] = "0-3";
14
15
  })(MatchScore = exports.MatchScore || (exports.MatchScore = {}));
15
16
  class Match {
16
- constructor({ id, homeTeam, awayTeam, scheduledDate, sets, isSimulated }) {
17
+ constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status }) {
17
18
  (0, utils_1.validateUUID)(id);
18
19
  this.id = id;
19
20
  this.homeTeam = homeTeam;
20
21
  this.awayTeam = awayTeam;
21
22
  this.scheduledDate = scheduledDate;
22
23
  this.sets = sets;
23
- this.isSimulated = isSimulated;
24
+ this.status = status;
24
25
  }
25
26
  addSet(set) {
26
27
  if (this.sets.length >= Match.BEST_OF)
@@ -56,6 +57,9 @@ class Match {
56
57
  else
57
58
  return team === match_team_1.MatchTeam.AWAY && this.getWinner() === this.awayTeam;
58
59
  }
60
+ isSimulated() {
61
+ return this.status === status_1.StatusEnum.COMPLETE;
62
+ }
59
63
  }
60
64
  exports.Match = Match;
61
65
  Match.BEST_OF = 5;
@@ -97,7 +97,7 @@ Trait.MOVING_WALL = new Trait({
97
97
  Trait.MARKSMAN = new Trait({
98
98
  id: 'ace3458e-69ab-487c-a9c0-d656f705d8dd',
99
99
  name: 'Marksman',
100
- modifier: 1.01,
100
+ modifier: 1.05,
101
101
  chance: 0.3,
102
102
  statThreshold: 75,
103
103
  stat: 'ATTACK',
@@ -0,0 +1,8 @@
1
+ import { EnumDataType } from 'sequelize';
2
+ export declare enum StatusEnum {
3
+ PENDING = "PENDING",
4
+ IN_PROGRESS = "IN_PROGRESS",
5
+ COMPLETE = "COMPLETE"
6
+ }
7
+ export type Status = StatusEnum.PENDING | StatusEnum.IN_PROGRESS | StatusEnum.COMPLETE;
8
+ export declare const StatusDataType: EnumDataType<Status>;
@@ -0,0 +1,8 @@
1
+ import { DataTypes } from 'sequelize';
2
+ export var StatusEnum;
3
+ (function (StatusEnum) {
4
+ StatusEnum["PENDING"] = "PENDING";
5
+ StatusEnum["IN_PROGRESS"] = "IN_PROGRESS";
6
+ StatusEnum["COMPLETE"] = "COMPLETE";
7
+ })(StatusEnum || (StatusEnum = {}));
8
+ export const StatusDataType = DataTypes.ENUM(...Object.values(StatusEnum));
@@ -1,9 +1,11 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
3
  import { CompetitionChampionAttributes, CompetitionChampionId, CompetitionChampionModel, CompetitionMatchAttributes, CompetitionMatchId, CompetitionMatchModel, CompetitionTeamsAttributes, CompetitionTeamsId, CompetitionTeamsModel, IterationId, IterationModel, LeagueSeasonAttributes, LeagueSeasonId, LeagueSeasonModel, TeamId, TeamModel } from '.';
4
+ import { Status } from '../../common/status';
4
5
  export interface CompetitionAttributes {
5
6
  competition_id: string;
6
7
  iteration: number;
8
+ status: Status;
7
9
  type: CompetitionType;
8
10
  LeagueSeason?: LeagueSeasonAttributes;
9
11
  CompetitionChampion?: CompetitionChampionAttributes;
@@ -18,6 +20,7 @@ export declare class CompetitionModel extends Model<CompetitionAttributes, Compe
18
20
  competition_id: string;
19
21
  iteration: number;
20
22
  type: CompetitionType;
23
+ status: Status;
21
24
  CompetitionChampion: CompetitionChampionModel;
22
25
  getCompetitionChampion: Sequelize.HasOneGetAssociationMixin<CompetitionChampionModel>;
23
26
  setCompetitionChampion: Sequelize.HasOneSetAssociationMixin<CompetitionChampionModel, CompetitionChampionId>;
@@ -1,4 +1,5 @@
1
1
  import { DataTypes, Model } from 'sequelize';
2
+ import { StatusDataType } from '../../common/status';
2
3
  export class CompetitionModel extends Model {
3
4
  static initModel(sequelize) {
4
5
  return CompetitionModel.init({
@@ -18,6 +19,11 @@ export class CompetitionModel extends Model {
18
19
  type: {
19
20
  type: DataTypes.ENUM('LEAGUE', 'TOURNAMENT'),
20
21
  allowNull: false
22
+ },
23
+ status: {
24
+ type: StatusDataType,
25
+ allowNull: false,
26
+ defaultValue: 'PENDING'
21
27
  }
22
28
  }, {
23
29
  sequelize,
@@ -1,12 +1,13 @@
1
1
  import * as Sequelize from 'sequelize';
2
2
  import { Model } from 'sequelize';
3
3
  import { CompetitionMatchId, CompetitionMatchModel, MatchRatingId, MatchRatingModel, MatchSetAttributes, MatchSetId, MatchSetModel, TeamId, TeamModel } from '.';
4
+ import { Status } from '../../common/status';
4
5
  export interface MatchAttributes {
5
6
  match_id: string;
6
7
  home_team: string;
7
8
  away_team: string;
8
9
  scheduled_date: Date;
9
- is_simulated: boolean;
10
+ status: Status;
10
11
  MatchSets?: MatchSetAttributes[];
11
12
  }
12
13
  export type MatchPk = 'match_id';
@@ -17,7 +18,7 @@ export declare class MatchModel extends Model<MatchAttributes, MatchCreationAttr
17
18
  home_team: string;
18
19
  away_team: string;
19
20
  scheduled_date: Date;
20
- is_simulated: boolean;
21
+ status: Status;
21
22
  CompetitionMatch: CompetitionMatchModel;
22
23
  getCompetitionMatch: Sequelize.HasOneGetAssociationMixin<CompetitionMatchModel>;
23
24
  setCompetitionMatch: Sequelize.HasOneSetAssociationMixin<CompetitionMatchModel, CompetitionMatchId>;
@@ -1,4 +1,5 @@
1
1
  import { DataTypes, Model } from 'sequelize';
2
+ import { StatusDataType } from '../../common/status';
2
3
  export class MatchModel extends Model {
3
4
  static initModel(sequelize) {
4
5
  return MatchModel.init({
@@ -27,10 +28,10 @@ export class MatchModel extends Model {
27
28
  type: DataTypes.DATE,
28
29
  allowNull: false
29
30
  },
30
- is_simulated: {
31
- type: DataTypes.BOOLEAN,
31
+ status: {
32
+ type: StatusDataType,
32
33
  allowNull: false,
33
- defaultValue: false
34
+ defaultValue: 'PENDING'
34
35
  }
35
36
  }, {
36
37
  sequelize,
@@ -7,7 +7,7 @@ function transformToAttributes(match) {
7
7
  away_team: match.awayTeam.id,
8
8
  home_team: match.homeTeam.id,
9
9
  scheduled_date: match.scheduledDate,
10
- is_simulated: match.isSimulated
10
+ status: match.status
11
11
  };
12
12
  }
13
13
  function transformToObject(model) {
@@ -21,7 +21,7 @@ function transformToObject(model) {
21
21
  awayTeam: transformToTeam(model.AwayTeam),
22
22
  scheduledDate: new Date(model.scheduled_date),
23
23
  sets,
24
- isSimulated: model.is_simulated
24
+ status: model.status
25
25
  });
26
26
  }
27
27
  export { transformToObject as transformToMatch, transformToAttributes as transformFromMatch };
@@ -21,7 +21,8 @@ function transformToAttributes(season, leagueId) {
21
21
  LeagueSeason: { league_id: leagueId, competition_id: season.id },
22
22
  CompetitionChampion: champion,
23
23
  CompetitionMatches: matches,
24
- CompetitionTeams: teams
24
+ CompetitionTeams: teams,
25
+ status: season.status
25
26
  };
26
27
  }
27
28
  function transformToObject(model) {
@@ -33,7 +34,8 @@ function transformToObject(model) {
33
34
  matches,
34
35
  iteration: transformToIteration(model.Iteration),
35
36
  teams: model.Teams != null ? model.Teams.map(transformToTeam) : [],
36
- champion: model.CompetitionChampion != null ? transformToTeam(model.CompetitionChampion.team) : undefined
37
+ champion: model.CompetitionChampion != null ? transformToTeam(model.CompetitionChampion.team) : undefined,
38
+ status: model.status
37
39
  });
38
40
  }
39
41
  export { transformToObject as transformToSeason, transformToAttributes as transformFromSeason };
@@ -18,7 +18,8 @@ function transformToAttributes(tournament) {
18
18
  iteration: tournament.iteration.id,
19
19
  CompetitionChampion: champion,
20
20
  CompetitionMatches: matches,
21
- CompetitionTeams: teams
21
+ CompetitionTeams: teams,
22
+ status: tournament.status
22
23
  };
23
24
  }
24
25
  function transformToObject(model) {
@@ -27,7 +28,8 @@ function transformToObject(model) {
27
28
  iteration: transformToIteration(model.Iteration),
28
29
  matches: model.CompetitionMatches != null ? model.CompetitionMatches.map(transformToTournamentMatch) : [],
29
30
  teams: model.Teams != null ? model.Teams.map(transformToTeam) : [],
30
- champion: model.CompetitionChampion != null ? transformToTeam(model.CompetitionChampion.team) : undefined
31
+ champion: model.CompetitionChampion != null ? transformToTeam(model.CompetitionChampion.team) : undefined,
32
+ status: model.status
31
33
  });
32
34
  }
33
35
  export { transformToObject as transformToTournament, transformToAttributes as transformFromTournament };
@@ -2,12 +2,14 @@ import { Team } from '../team';
2
2
  import { Match } from '../match';
3
3
  import { Standing } from './standing';
4
4
  import { Iteration } from './iteration';
5
+ import { StatusEnum } from '../../common/status';
5
6
  interface SeasonOpts {
6
7
  readonly id: string;
7
8
  readonly teams: Team[];
8
9
  readonly matches: Match[];
9
10
  readonly iteration: Iteration;
10
11
  readonly champion?: Team;
12
+ readonly status: StatusEnum;
11
13
  }
12
14
  export declare class Season {
13
15
  readonly id: string;
@@ -15,8 +17,9 @@ export declare class Season {
15
17
  readonly matches: Match[];
16
18
  readonly iteration: Iteration;
17
19
  readonly standings: Standing[];
20
+ readonly status: StatusEnum;
18
21
  champion?: Team;
19
- constructor({ id, iteration, teams, matches, champion }: SeasonOpts);
22
+ constructor({ id, iteration, teams, matches, champion, status }: SeasonOpts);
20
23
  calculateStandings(): Standing[];
21
24
  updateStandings(): void;
22
25
  }
@@ -1,12 +1,13 @@
1
1
  import { Standing } from './standing';
2
2
  export class Season {
3
- constructor({ id, iteration, teams, matches, champion }) {
3
+ constructor({ id, iteration, teams, matches, champion, status }) {
4
4
  this.id = id;
5
5
  this.teams = teams;
6
6
  this.matches = matches;
7
7
  this.iteration = iteration;
8
8
  this.champion = champion;
9
9
  this.standings = this.calculateStandings();
10
+ this.status = status;
10
11
  }
11
12
  calculateStandings() {
12
13
  return this.teams.map(team => {
@@ -1,20 +1,23 @@
1
1
  import { TournamentMatch } from './tournament-match';
2
2
  import { Team } from '../team';
3
3
  import { Iteration } from './iteration';
4
+ import { StatusEnum } from '../../common/status';
4
5
  interface TournamentOpts {
5
6
  readonly id: string;
6
7
  readonly iteration: Iteration;
7
8
  readonly matches: TournamentMatch[];
8
9
  readonly teams: Team[];
9
10
  readonly champion?: Team;
11
+ readonly status: StatusEnum;
10
12
  }
11
13
  export declare class Tournament {
12
14
  readonly id: string;
13
15
  readonly iteration: Iteration;
14
16
  readonly matches: TournamentMatch[];
15
17
  readonly teams: Team[];
18
+ readonly status: StatusEnum;
16
19
  champion?: Team;
17
- constructor({ id, iteration, matches, teams, champion }: TournamentOpts);
20
+ constructor({ id, iteration, matches, teams, champion, status }: TournamentOpts);
18
21
  static sortMatchesFn(m1: TournamentMatch, m2: TournamentMatch): number;
19
22
  }
20
23
  export {};
@@ -1,10 +1,11 @@
1
1
  export class Tournament {
2
- constructor({ id, iteration, matches, teams, champion }) {
2
+ constructor({ id, iteration, matches, teams, champion, status }) {
3
3
  this.id = id;
4
4
  this.iteration = iteration;
5
5
  this.matches = matches;
6
6
  this.teams = teams;
7
7
  this.champion = champion;
8
+ this.status = status;
8
9
  this.matches.sort(Tournament.sortMatchesFn);
9
10
  }
10
11
  static sortMatchesFn(m1, m2) {
@@ -1,13 +1,14 @@
1
1
  import { MatchSet } from './match-set';
2
2
  import { Team } from '../team';
3
3
  import { MatchTeam } from './match-team';
4
+ import { StatusEnum } from '../../common/status';
4
5
  interface MatchParams {
5
6
  readonly id: string;
6
7
  readonly homeTeam: Team;
7
8
  readonly awayTeam: Team;
8
9
  readonly scheduledDate: Date;
9
10
  readonly sets: MatchSet[];
10
- readonly isSimulated: boolean;
11
+ readonly status: StatusEnum;
11
12
  }
12
13
  export declare enum MatchScore {
13
14
  '3-0' = "3-0",
@@ -24,13 +25,14 @@ export declare class Match {
24
25
  readonly awayTeam: Team;
25
26
  readonly sets: MatchSet[];
26
27
  readonly scheduledDate: Date;
27
- isSimulated: boolean;
28
- constructor({ id, homeTeam, awayTeam, scheduledDate, sets, isSimulated }: MatchParams);
28
+ status: StatusEnum;
29
+ constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status }: MatchParams);
29
30
  addSet(set: MatchSet): void;
30
31
  getTeamSets(team: MatchTeam): number;
31
32
  getScore(): MatchScore;
32
33
  isOver(): boolean;
33
34
  getWinner(): Team;
34
35
  isWinner(team: MatchTeam): boolean;
36
+ isSimulated(): boolean;
35
37
  }
36
38
  export {};
@@ -1,5 +1,6 @@
1
1
  import { validateUUID } from '../utils';
2
2
  import { MatchTeam } from './match-team';
3
+ import { StatusEnum } from '../../common/status';
3
4
  export var MatchScore;
4
5
  (function (MatchScore) {
5
6
  MatchScore["3-0"] = "3-0";
@@ -10,14 +11,14 @@ export var MatchScore;
10
11
  MatchScore["0-3"] = "0-3";
11
12
  })(MatchScore || (MatchScore = {}));
12
13
  export class Match {
13
- constructor({ id, homeTeam, awayTeam, scheduledDate, sets, isSimulated }) {
14
+ constructor({ id, homeTeam, awayTeam, scheduledDate, sets, status }) {
14
15
  validateUUID(id);
15
16
  this.id = id;
16
17
  this.homeTeam = homeTeam;
17
18
  this.awayTeam = awayTeam;
18
19
  this.scheduledDate = scheduledDate;
19
20
  this.sets = sets;
20
- this.isSimulated = isSimulated;
21
+ this.status = status;
21
22
  }
22
23
  addSet(set) {
23
24
  if (this.sets.length >= Match.BEST_OF)
@@ -53,5 +54,8 @@ export class Match {
53
54
  else
54
55
  return team === MatchTeam.AWAY && this.getWinner() === this.awayTeam;
55
56
  }
57
+ isSimulated() {
58
+ return this.status === StatusEnum.COMPLETE;
59
+ }
56
60
  }
57
61
  Match.BEST_OF = 5;
@@ -70,7 +70,7 @@ Trait.MOVING_WALL = new Trait({
70
70
  Trait.MARKSMAN = new Trait({
71
71
  id: 'ace3458e-69ab-487c-a9c0-d656f705d8dd',
72
72
  name: 'Marksman',
73
- modifier: 1.01,
73
+ modifier: 1.05,
74
74
  chance: 0.3,
75
75
  statThreshold: 75,
76
76
  stat: 'ATTACK',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "volleyballsimtypes",
3
- "version": "0.0.147",
3
+ "version": "0.0.148",
4
4
  "description": "vbsim types",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/src/index.js",
@@ -14,7 +14,7 @@
14
14
  "validate": "npm run standard && npm run madge",
15
15
  "build": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
16
16
  "preversion": "npm run clean && npm run validate && npm run build && git commit -a --amend --no-edit",
17
- "postversion": "git push --follow-tags"
17
+ "postversion": "git push --follow-tags && npm publish"
18
18
  },
19
19
  "author": "Francisco Farias <fariasfranciscoe@gmail.com>",
20
20
  "license": "ISC",