volleyballsimtypes 0.0.525 → 0.0.527
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/api/index.d.ts +2 -2
- package/dist/cjs/src/data/init-models.js +4 -22
- package/dist/cjs/src/data/models/national-team-claim.d.ts +5 -5
- package/dist/cjs/src/data/models/national-team-claim.js +8 -0
- package/dist/cjs/src/data/models/national-team.d.ts +1 -7
- package/dist/cjs/src/data/models/team-jersey.d.ts +3 -1
- package/dist/cjs/src/data/models/team-jersey.js +4 -0
- package/dist/cjs/src/data/models/wnl-callup.d.ts +0 -10
- package/dist/cjs/src/data/models/wnl-season.d.ts +0 -7
- package/dist/cjs/src/data/models/wnl-squad.d.ts +0 -13
- package/dist/cjs/src/data/transformers/team.js +2 -1
- package/dist/cjs/src/service/notification/catalog/en.json +13 -0
- package/dist/cjs/src/service/notification/catalog/es.json +13 -0
- package/dist/cjs/src/service/notification/catalog/fr.json +13 -0
- package/dist/cjs/src/service/notification/catalog/it.json +13 -0
- package/dist/cjs/src/service/notification/catalog/pl.json +13 -0
- package/dist/cjs/src/service/notification/catalog/pt-BR.json +13 -0
- package/dist/cjs/src/service/notification/catalog/tr.json +13 -0
- package/dist/cjs/src/service/notification/notification-type.d.ts +1 -1
- package/dist/cjs/src/service/notification/notification-type.js +4 -1
- package/dist/cjs/src/service/notification/payloads.d.ts +7 -1
- package/dist/cjs/src/service/notification/registry.d.ts +1 -2
- package/dist/cjs/src/service/notification/registry.js +52 -25
- package/dist/cjs/src/service/team/index.d.ts +1 -0
- package/dist/cjs/src/service/team/index.js +1 -0
- package/dist/cjs/src/service/team/jersey-defaults.d.ts +13 -0
- package/dist/cjs/src/service/team/jersey-defaults.js +79 -0
- package/dist/cjs/src/service/team/jersey.d.ts +29 -0
- package/dist/cjs/src/service/team/jersey.js +125 -1
- package/dist/cjs/src/service/team/schemas/team.z.d.ts +24 -0
- package/dist/cjs/src/service/team/schemas/team.z.js +2 -1
- package/dist/cjs/src/service/team/team.d.ts +2 -1
- package/dist/cjs/src/service/team/team.js +2 -1
- package/dist/esm/src/api/index.d.ts +2 -2
- package/dist/esm/src/data/init-models.js +4 -22
- package/dist/esm/src/data/models/national-team-claim.d.ts +5 -5
- package/dist/esm/src/data/models/national-team-claim.js +8 -0
- package/dist/esm/src/data/models/national-team.d.ts +1 -7
- package/dist/esm/src/data/models/team-jersey.d.ts +3 -1
- package/dist/esm/src/data/models/team-jersey.js +4 -0
- package/dist/esm/src/data/models/wnl-callup.d.ts +0 -10
- package/dist/esm/src/data/models/wnl-season.d.ts +0 -7
- package/dist/esm/src/data/models/wnl-squad.d.ts +0 -13
- package/dist/esm/src/data/transformers/team.js +2 -1
- package/dist/esm/src/service/notification/catalog/en.json +13 -0
- package/dist/esm/src/service/notification/catalog/es.json +13 -0
- package/dist/esm/src/service/notification/catalog/fr.json +13 -0
- package/dist/esm/src/service/notification/catalog/it.json +13 -0
- package/dist/esm/src/service/notification/catalog/pl.json +13 -0
- package/dist/esm/src/service/notification/catalog/pt-BR.json +13 -0
- package/dist/esm/src/service/notification/catalog/tr.json +13 -0
- package/dist/esm/src/service/notification/notification-type.d.ts +1 -1
- package/dist/esm/src/service/notification/notification-type.js +4 -1
- package/dist/esm/src/service/notification/payloads.d.ts +7 -1
- package/dist/esm/src/service/notification/registry.d.ts +1 -2
- package/dist/esm/src/service/notification/registry.js +51 -24
- package/dist/esm/src/service/team/index.d.ts +1 -0
- package/dist/esm/src/service/team/index.js +1 -0
- package/dist/esm/src/service/team/jersey-defaults.d.ts +13 -0
- package/dist/esm/src/service/team/jersey-defaults.js +75 -0
- package/dist/esm/src/service/team/jersey.d.ts +29 -0
- package/dist/esm/src/service/team/jersey.js +120 -0
- package/dist/esm/src/service/team/schemas/team.z.d.ts +24 -0
- package/dist/esm/src/service/team/schemas/team.z.js +3 -2
- package/dist/esm/src/service/team/team.d.ts +2 -1
- package/dist/esm/src/service/team/team.js +2 -1
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@ export interface Results {
|
|
|
17
17
|
away: number[];
|
|
18
18
|
}
|
|
19
19
|
export interface MatchCompetition {
|
|
20
|
-
type: 'LEAGUE' | 'NATIONAL' | 'QUALIFIER' | 'TOURNAMENT' | 'EVENT';
|
|
20
|
+
type: 'LEAGUE' | 'NATIONAL' | 'QUALIFIER' | 'TOURNAMENT' | 'EVENT' | 'WNL' | 'WNLF';
|
|
21
21
|
countryName?: string;
|
|
22
22
|
countryAlpha2?: string;
|
|
23
23
|
countryAlpha3?: string;
|
|
@@ -196,7 +196,7 @@ export type Team = Omit<DataProps<_Team>, 'roster' | '_rating' | 'rating' | 'tac
|
|
|
196
196
|
nationalManager?: {
|
|
197
197
|
displayName: string;
|
|
198
198
|
teamId: string;
|
|
199
|
-
|
|
199
|
+
teamName: string;
|
|
200
200
|
};
|
|
201
201
|
};
|
|
202
202
|
export type Standing = DataProps<_Standing> & {
|
|
@@ -236,28 +236,10 @@ function initModels(sequelize) {
|
|
|
236
236
|
Competition.hasOne(NationalCountry, { as: 'NationalCountry', foreignKey: 'competition_id' });
|
|
237
237
|
Country.hasMany(NationalCountry, { as: 'NationalCountries', foreignKey: 'country_id' });
|
|
238
238
|
Iteration.hasMany(NationalCountry, { as: 'NationalCountries', foreignKey: 'iteration' });
|
|
239
|
-
// National teams (WNL)
|
|
240
|
-
//
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
Country.hasOne(NationalTeam, { as: 'NationalTeam', foreignKey: 'country_id' });
|
|
244
|
-
Team.hasOne(NationalTeam, { as: 'NationalTeam', foreignKey: 'team_id' });
|
|
245
|
-
NationalTeam.hasOne(NationalTeamClaim, { as: 'claim', foreignKey: 'country_id' });
|
|
246
|
-
NationalTeamClaim.belongsTo(NationalTeam, { as: 'nationalTeam', foreignKey: 'country_id' });
|
|
247
|
-
NationalTeamClaim.belongsTo(AuthUser, { as: 'user', foreignKey: 'user_id' });
|
|
248
|
-
AuthUser.hasOne(NationalTeamClaim, { as: 'NationalTeamClaim', foreignKey: 'user_id' });
|
|
249
|
-
WnlSquad.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
|
|
250
|
-
WnlSquad.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
|
|
251
|
-
WnlSquad.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
|
|
252
|
-
WnlSquad.belongsTo(AuthUser, { as: 'manager', foreignKey: 'manager_user_id' });
|
|
253
|
-
Competition.hasMany(WnlSquad, { as: 'WnlSquads', foreignKey: 'competition_id' });
|
|
254
|
-
WnlCallup.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
|
|
255
|
-
WnlCallup.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
|
|
256
|
-
WnlCallup.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
|
|
257
|
-
Competition.hasMany(WnlCallup, { as: 'WnlCallups', foreignKey: 'competition_id' });
|
|
258
|
-
WnlSeason.belongsTo(Competition, { as: 'competition', foreignKey: 'competition_id' });
|
|
259
|
-
WnlSeason.belongsTo(Competition, { as: 'finalsCompetition', foreignKey: 'finals_competition_id' });
|
|
260
|
-
Competition.hasOne(WnlSeason, { as: 'WnlSeason', foreignKey: 'competition_id' });
|
|
239
|
+
// National teams (WNL): NO associations on purpose. Every consumer of the five WNL tables (Sim scheduler,
|
|
240
|
+
// API /wnl routes) reads them with direct model queries or raw SQL joins; the alias wiring that once lived
|
|
241
|
+
// here was confirmed unused in all four repos and removed as dead code (review fleet 2026-08-28). Add an
|
|
242
|
+
// association back only together with the include that uses it.
|
|
261
243
|
VPER.belongsTo(Player, { as: 'Player', foreignKey: 'player_id' });
|
|
262
244
|
VPER.belongsTo(Match, { as: 'Match', foreignKey: 'match_id' });
|
|
263
245
|
Team.hasOne(Coach, { as: 'Coach', foreignKey: 'team_id' });
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { AuthUserId, AuthUserModel } from '.';
|
|
4
3
|
export interface NationalTeamClaimAttributes {
|
|
5
4
|
country_id: string;
|
|
6
5
|
user_id: string;
|
|
7
6
|
claimed_at: Date;
|
|
7
|
+
revoke_at?: Date | null;
|
|
8
|
+
warned_step?: number | null;
|
|
8
9
|
}
|
|
9
10
|
export type NationalTeamClaimPk = 'country_id';
|
|
10
11
|
export type NationalTeamClaimId = NationalTeamClaimModel[NationalTeamClaimPk];
|
|
11
|
-
export type NationalTeamClaimOptionalAttributes = 'claimed_at';
|
|
12
|
+
export type NationalTeamClaimOptionalAttributes = 'claimed_at' | 'revoke_at' | 'warned_step';
|
|
12
13
|
export type NationalTeamClaimCreationAttributes = Optional<NationalTeamClaimAttributes, NationalTeamClaimOptionalAttributes>;
|
|
13
14
|
export declare class NationalTeamClaimModel extends Model<NationalTeamClaimAttributes, NationalTeamClaimCreationAttributes> implements NationalTeamClaimAttributes {
|
|
14
15
|
country_id: string;
|
|
15
16
|
user_id: string;
|
|
16
17
|
claimed_at: Date;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
setUser: Sequelize.BelongsToSetAssociationMixin<AuthUserModel, AuthUserId>;
|
|
18
|
+
revoke_at?: Date | null;
|
|
19
|
+
warned_step?: number | null;
|
|
20
20
|
static initModel(sequelize: Sequelize.Sequelize): typeof NationalTeamClaimModel;
|
|
21
21
|
}
|
|
@@ -20,6 +20,14 @@ class NationalTeamClaimModel extends sequelize_1.Model {
|
|
|
20
20
|
type: sequelize_1.DataTypes.DATE,
|
|
21
21
|
allowNull: false,
|
|
22
22
|
defaultValue: sequelize_1.DataTypes.NOW
|
|
23
|
+
},
|
|
24
|
+
revoke_at: {
|
|
25
|
+
type: sequelize_1.DataTypes.DATE,
|
|
26
|
+
allowNull: true
|
|
27
|
+
},
|
|
28
|
+
warned_step: {
|
|
29
|
+
type: sequelize_1.DataTypes.SMALLINT,
|
|
30
|
+
allowNull: true
|
|
23
31
|
}
|
|
24
32
|
}, {
|
|
25
33
|
sequelize,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import {
|
|
3
|
+
import { TeamAttributes } from '.';
|
|
4
4
|
export interface NationalTeamAttributes {
|
|
5
5
|
country_id: string;
|
|
6
6
|
team_id: string;
|
|
@@ -12,11 +12,5 @@ export type NationalTeamCreationAttributes = NationalTeamAttributes;
|
|
|
12
12
|
export declare class NationalTeamModel extends Model<NationalTeamAttributes, NationalTeamCreationAttributes> implements NationalTeamAttributes {
|
|
13
13
|
country_id: string;
|
|
14
14
|
team_id: string;
|
|
15
|
-
country: CountryModel;
|
|
16
|
-
getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
|
|
17
|
-
setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
|
|
18
|
-
team: TeamModel;
|
|
19
|
-
getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
20
|
-
setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
21
15
|
static initModel(sequelize: Sequelize.Sequelize): typeof NationalTeamModel;
|
|
22
16
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
3
|
import { TeamId, TeamModel } from '.';
|
|
4
|
-
import { JerseyConfig } from '../../service';
|
|
4
|
+
import { JerseyConfig, AlternateJerseyConfig } from '../../service';
|
|
5
5
|
export interface TeamJerseyAttributes {
|
|
6
6
|
team_id: string;
|
|
7
7
|
config: JerseyConfig;
|
|
8
|
+
alternate_config?: AlternateJerseyConfig | null;
|
|
8
9
|
}
|
|
9
10
|
export type TeamJerseyPk = 'team_id';
|
|
10
11
|
export type TeamJerseyId = TeamJerseyModel[TeamJerseyPk];
|
|
@@ -12,6 +13,7 @@ export type TeamJerseyCreationAttributes = TeamJerseyAttributes;
|
|
|
12
13
|
export declare class TeamJerseyModel extends Model<TeamJerseyAttributes, TeamJerseyCreationAttributes> implements TeamJerseyAttributes {
|
|
13
14
|
team_id: string;
|
|
14
15
|
config: JerseyConfig;
|
|
16
|
+
alternate_config?: AlternateJerseyConfig | null;
|
|
15
17
|
team: TeamModel;
|
|
16
18
|
getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
17
19
|
setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model } from 'sequelize';
|
|
3
|
-
import { CompetitionId, CompetitionModel, CountryId, CountryModel, PlayerId, PlayerModel } from '.';
|
|
4
3
|
export type WnlCallupRole = 'SELECTION' | 'BACKUP';
|
|
5
4
|
export interface WnlCallupAttributes {
|
|
6
5
|
competition_id: string;
|
|
@@ -18,14 +17,5 @@ export declare class WnlCallupModel extends Model<WnlCallupAttributes, WnlCallup
|
|
|
18
17
|
country_id: string;
|
|
19
18
|
role: WnlCallupRole;
|
|
20
19
|
slot_order: number;
|
|
21
|
-
competition: CompetitionModel;
|
|
22
|
-
getCompetition: Sequelize.BelongsToGetAssociationMixin<CompetitionModel>;
|
|
23
|
-
setCompetition: Sequelize.BelongsToSetAssociationMixin<CompetitionModel, CompetitionId>;
|
|
24
|
-
player: PlayerModel;
|
|
25
|
-
getPlayer: Sequelize.BelongsToGetAssociationMixin<PlayerModel>;
|
|
26
|
-
setPlayer: Sequelize.BelongsToSetAssociationMixin<PlayerModel, PlayerId>;
|
|
27
|
-
country: CountryModel;
|
|
28
|
-
getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
|
|
29
|
-
setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
|
|
30
20
|
static initModel(sequelize: Sequelize.Sequelize): typeof WnlCallupModel;
|
|
31
21
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { CompetitionId, CompetitionModel } from '.';
|
|
4
3
|
export interface WnlSeasonAttributes {
|
|
5
4
|
competition_id: string;
|
|
6
5
|
season_index: number;
|
|
@@ -14,11 +13,5 @@ export declare class WnlSeasonModel extends Model<WnlSeasonAttributes, WnlSeason
|
|
|
14
13
|
competition_id: string;
|
|
15
14
|
season_index: number;
|
|
16
15
|
finals_competition_id: string | null;
|
|
17
|
-
competition: CompetitionModel;
|
|
18
|
-
getCompetition: Sequelize.BelongsToGetAssociationMixin<CompetitionModel>;
|
|
19
|
-
setCompetition: Sequelize.BelongsToSetAssociationMixin<CompetitionModel, CompetitionId>;
|
|
20
|
-
finalsCompetition: CompetitionModel;
|
|
21
|
-
getFinalsCompetition: Sequelize.BelongsToGetAssociationMixin<CompetitionModel>;
|
|
22
|
-
setFinalsCompetition: Sequelize.BelongsToSetAssociationMixin<CompetitionModel, CompetitionId>;
|
|
23
16
|
static initModel(sequelize: Sequelize.Sequelize): typeof WnlSeasonModel;
|
|
24
17
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as Sequelize from 'sequelize';
|
|
2
2
|
import { Model, Optional } from 'sequelize';
|
|
3
|
-
import { AuthUserId, AuthUserModel, CompetitionId, CompetitionModel, CountryId, CountryModel, TeamId, TeamModel } from '.';
|
|
4
3
|
export interface WnlSquadAttributes {
|
|
5
4
|
competition_id: string;
|
|
6
5
|
country_id: string;
|
|
@@ -24,17 +23,5 @@ export declare class WnlSquadModel extends Model<WnlSquadAttributes, WnlSquadCre
|
|
|
24
23
|
auto: boolean;
|
|
25
24
|
finalized: boolean;
|
|
26
25
|
finalized_at: Date | null;
|
|
27
|
-
competition: CompetitionModel;
|
|
28
|
-
getCompetition: Sequelize.BelongsToGetAssociationMixin<CompetitionModel>;
|
|
29
|
-
setCompetition: Sequelize.BelongsToSetAssociationMixin<CompetitionModel, CompetitionId>;
|
|
30
|
-
country: CountryModel;
|
|
31
|
-
getCountry: Sequelize.BelongsToGetAssociationMixin<CountryModel>;
|
|
32
|
-
setCountry: Sequelize.BelongsToSetAssociationMixin<CountryModel, CountryId>;
|
|
33
|
-
team: TeamModel;
|
|
34
|
-
getTeam: Sequelize.BelongsToGetAssociationMixin<TeamModel>;
|
|
35
|
-
setTeam: Sequelize.BelongsToSetAssociationMixin<TeamModel, TeamId>;
|
|
36
|
-
manager: AuthUserModel;
|
|
37
|
-
getManager: Sequelize.BelongsToGetAssociationMixin<AuthUserModel>;
|
|
38
|
-
setManager: Sequelize.BelongsToSetAssociationMixin<AuthUserModel, AuthUserId>;
|
|
39
26
|
static initModel(sequelize: Sequelize.Sequelize): typeof WnlSquadModel;
|
|
40
27
|
}
|
|
@@ -53,6 +53,7 @@ function transformToObject(model, currentIteration, tacticsOverride) {
|
|
|
53
53
|
divisionId: model.division_id,
|
|
54
54
|
// Present only when the caller explicitly included the TeamJersey association (editor / effective-jersey
|
|
55
55
|
// resolver); undefined on ordinary team loads, which heals to the id-derived default in the UI.
|
|
56
|
-
jerseyConfig: model.TeamJersey?.config
|
|
56
|
+
jerseyConfig: model.TeamJersey?.config,
|
|
57
|
+
alternateJerseyConfig: model.TeamJersey?.alternate_config ?? undefined
|
|
57
58
|
});
|
|
58
59
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Players called up",
|
|
93
93
|
"body": "One or more of your players have been called-up to their national team!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "National team unlocked",
|
|
97
|
+
"body": "You have free National access until {{date}}. Claim a national team and lead it in the World Nations League."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "National team access ending",
|
|
101
|
+
"bodyDays": "Your national team will be released in {{days}} days unless you subscribe to the National tier on Patreon.",
|
|
102
|
+
"bodyLastDay": "Your national team will be released tomorrow unless you subscribe to the National tier on Patreon."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "National team released",
|
|
106
|
+
"body": "Your national team has been released and is now available for someone else to claim. Subscribe to the National tier on Patreon to claim one again."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Jugadores convocados",
|
|
93
93
|
"body": "¡Uno o más de tus jugadores han sido convocados por su selección nacional!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Selección nacional desbloqueada",
|
|
97
|
+
"body": "Tienes acceso National gratuito hasta el {{date}}. Reclama una selección nacional y dirígela en la WNL."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Tu acceso a la selección nacional termina",
|
|
101
|
+
"bodyDays": "Tu selección nacional quedará libre en {{days}} días a menos que te suscribas al nivel National en Patreon.",
|
|
102
|
+
"bodyLastDay": "Tu selección nacional quedará libre mañana a menos que te suscribas al nivel National en Patreon."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Selección nacional liberada",
|
|
106
|
+
"body": "Tu selección nacional ha quedado libre y ahora otra persona puede reclamarla. Suscríbete al nivel National en Patreon para volver a reclamar una."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Joueurs convoqués",
|
|
93
93
|
"body": "Un ou plusieurs de vos joueurs ont été convoqués par leur équipe nationale !"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Équipe nationale débloquée",
|
|
97
|
+
"body": "Vous avez un accès National gratuit jusqu'au {{date}}. Réclamez une équipe nationale et dirigez-la dans la WNL."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Votre accès à l'équipe nationale se termine",
|
|
101
|
+
"bodyDays": "Votre équipe nationale sera libérée dans {{days}} jours sauf si vous souscrivez au palier National sur Patreon.",
|
|
102
|
+
"bodyLastDay": "Votre équipe nationale sera libérée demain sauf si vous souscrivez au palier National sur Patreon."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Équipe nationale libérée",
|
|
106
|
+
"body": "Votre équipe nationale a été libérée et quelqu'un d'autre peut désormais la réclamer. Souscrivez au palier National sur Patreon pour en réclamer une à nouveau."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Giocatori convocati",
|
|
93
93
|
"body": "Uno o più dei tuoi giocatori sono stati convocati dalla loro nazionale!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Nazionale sbloccata",
|
|
97
|
+
"body": "Hai accesso National gratuito fino al {{date}}. Reclama una nazionale e guidala nella WNL."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Il tuo accesso alla nazionale sta per finire",
|
|
101
|
+
"bodyDays": "La tua nazionale sarà liberata tra {{days}} giorni a meno che tu non sottoscriva il livello National su Patreon.",
|
|
102
|
+
"bodyLastDay": "La tua nazionale sarà liberata domani a meno che tu non sottoscriva il livello National su Patreon."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Nazionale liberata",
|
|
106
|
+
"body": "La tua nazionale è stata liberata e ora può essere reclamata da qualcun altro. Sottoscrivi il livello National su Patreon per reclamarne di nuovo una."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Zawodnicy powołani",
|
|
93
93
|
"body": "Co najmniej jeden z twoich zawodników został powołany do swojej reprezentacji!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Reprezentacja odblokowana",
|
|
97
|
+
"body": "Masz darmowy dostęp National do {{date}}. Przejmij reprezentację i poprowadź ją w WNL."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Twój dostęp do reprezentacji się kończy",
|
|
101
|
+
"bodyDays": "Twoja reprezentacja zostanie zwolniona za {{days}} dni, chyba że wykupisz poziom National na Patreonie.",
|
|
102
|
+
"bodyLastDay": "Twoja reprezentacja zostanie zwolniona jutro, chyba że wykupisz poziom National na Patreonie."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Reprezentacja zwolniona",
|
|
106
|
+
"body": "Twoja reprezentacja została zwolniona i może ją teraz przejąć ktoś inny. Wykup poziom National na Patreonie, aby ponownie przejąć reprezentację."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Jogadores convocados",
|
|
93
93
|
"body": "Um ou mais dos seus jogadores foram convocados pela sua seleção nacional!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Seleção nacional desbloqueada",
|
|
97
|
+
"body": "Você tem acesso National gratuito até {{date}}. Reivindique uma seleção nacional e comande-a na WNL."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Seu acesso à seleção nacional está acabando",
|
|
101
|
+
"bodyDays": "Sua seleção nacional será liberada em {{days}} dias, a menos que você assine o nível National no Patreon.",
|
|
102
|
+
"bodyLastDay": "Sua seleção nacional será liberada amanhã, a menos que você assine o nível National no Patreon."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Seleção nacional liberada",
|
|
106
|
+
"body": "Sua seleção nacional foi liberada e agora está disponível para outra pessoa reivindicar. Assine o nível National no Patreon para reivindicar uma novamente."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -91,5 +91,18 @@
|
|
|
91
91
|
"wnlPlayerCalledUp": {
|
|
92
92
|
"title": "Oyuncular milli takıma çağrıldı",
|
|
93
93
|
"body": "Bir veya daha fazla oyuncun milli takımına çağrıldı!"
|
|
94
|
+
},
|
|
95
|
+
"nationalTrialGranted": {
|
|
96
|
+
"title": "Milli takım kilidi açıldı",
|
|
97
|
+
"body": "{{date}} tarihine kadar ücretsiz National erişimin var. Bir milli takım seç ve WNL'de yönet."
|
|
98
|
+
},
|
|
99
|
+
"nationalAccessExpiring": {
|
|
100
|
+
"title": "Milli takım erişimin sona eriyor",
|
|
101
|
+
"bodyDays": "Patreon'da National seviyesine abone olmazsan milli takımın {{days}} gün içinde serbest bırakılacak.",
|
|
102
|
+
"bodyLastDay": "Patreon'da National seviyesine abone olmazsan milli takımın yarın serbest bırakılacak."
|
|
103
|
+
},
|
|
104
|
+
"nationalTeamRevoked": {
|
|
105
|
+
"title": "Milli takım serbest bırakıldı",
|
|
106
|
+
"body": "Milli takımın serbest bırakıldı ve artık başka biri tarafından seçilebilir. Yeniden bir milli takım seçmek için Patreon'da National seviyesine abone ol."
|
|
94
107
|
}
|
|
95
108
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const NOTIFICATION_TYPES: readonly ["MATCH_RESULT", "INJURY", "INJURY_RECOVERED", "SEASON_END", "GRANT_RECEIVED", "PROMOTION", "DAILY_LOGIN", "WELCOME", "COMPENSATION", "EVENT_REGISTRATION_OPEN", "EVENT_REGISTRATION_CLOSING", "EVENT_STARTED", "EVENT_FINAL_ROUND", "EVENT_FINISHED", "REGION_RELOCATION", "WNL_CALLUP_OPEN", "WNL_CALLUP_DEADLINE", "WNL_CALLUP_CLOSED", "WNL_LEAGUE_START", "WNL_FINALS_START", "WNL_CHAMPION", "WNL_PLAYER_CALLED_UP"];
|
|
1
|
+
export declare const NOTIFICATION_TYPES: readonly ["MATCH_RESULT", "INJURY", "INJURY_RECOVERED", "SEASON_END", "GRANT_RECEIVED", "PROMOTION", "DAILY_LOGIN", "WELCOME", "COMPENSATION", "EVENT_REGISTRATION_OPEN", "EVENT_REGISTRATION_CLOSING", "EVENT_STARTED", "EVENT_FINAL_ROUND", "EVENT_FINISHED", "REGION_RELOCATION", "WNL_CALLUP_OPEN", "WNL_CALLUP_DEADLINE", "WNL_CALLUP_CLOSED", "WNL_LEAGUE_START", "WNL_FINALS_START", "WNL_CHAMPION", "WNL_PLAYER_CALLED_UP", "NATIONAL_TRIAL_GRANTED", "NATIONAL_ACCESS_EXPIRING", "NATIONAL_TEAM_REVOKED"];
|
|
2
2
|
export type NotificationType = typeof NOTIFICATION_TYPES[number];
|
|
3
3
|
export declare const NOTIFICATION_LOCALES: readonly ["en", "es", "fr", "it", "pl", "pt-BR", "tr"];
|
|
4
4
|
export type NotificationLocale = typeof NOTIFICATION_LOCALES[number];
|
|
@@ -29,7 +29,10 @@ exports.NOTIFICATION_TYPES = [
|
|
|
29
29
|
'WNL_LEAGUE_START',
|
|
30
30
|
'WNL_FINALS_START',
|
|
31
31
|
'WNL_CHAMPION',
|
|
32
|
-
'WNL_PLAYER_CALLED_UP'
|
|
32
|
+
'WNL_PLAYER_CALLED_UP',
|
|
33
|
+
'NATIONAL_TRIAL_GRANTED',
|
|
34
|
+
'NATIONAL_ACCESS_EXPIRING',
|
|
35
|
+
'NATIONAL_TEAM_REVOKED'
|
|
33
36
|
];
|
|
34
37
|
// The 7 supported locales. Must stay in sync with the API VALID_LOCALES set and the UI src/locales/*.json.
|
|
35
38
|
exports.NOTIFICATION_LOCALES = ['en', 'es', 'fr', 'it', 'pl', 'pt-BR', 'tr'];
|
|
@@ -37,4 +37,10 @@ export interface WnlCallupOpenPayload {
|
|
|
37
37
|
export interface WnlChampionPayload {
|
|
38
38
|
team?: string;
|
|
39
39
|
}
|
|
40
|
-
export
|
|
40
|
+
export interface NationalTrialGrantedPayload {
|
|
41
|
+
endsOn?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface NationalAccessExpiringPayload {
|
|
44
|
+
expiresAt?: string;
|
|
45
|
+
}
|
|
46
|
+
export type NotificationPayload = MatchResultPayload | InjuryPayload | InjuryRecoveredPayload | SeasonEndPayload | PromotionPayload | WnlCallupOpenPayload | WnlChampionPayload | NationalTrialGrantedPayload | NationalAccessExpiringPayload | Record<string, unknown>;
|
|
@@ -6,11 +6,10 @@ export interface NotificationDescriptor {
|
|
|
6
6
|
deepLink?: (payload: Record<string, unknown>) => string;
|
|
7
7
|
pushTitleKey?: CatalogKeyResolver;
|
|
8
8
|
pushBodyKey?: CatalogKeyResolver;
|
|
9
|
-
inAppMessageKey?: CatalogKeyResolver;
|
|
10
|
-
richRender?: NotificationType;
|
|
11
9
|
params?: (payload: Record<string, unknown>) => Record<string, string>;
|
|
12
10
|
catalogKeys: string[];
|
|
13
11
|
}
|
|
12
|
+
export declare const NATIONAL_ACCESS_PREF_KEY = "NATIONAL_ACCESS";
|
|
14
13
|
export declare const NOTIFICATION_REGISTRY: Record<NotificationType, NotificationDescriptor>;
|
|
15
14
|
export declare const PUSH_NOTIFICATION_TYPES: NotificationType[];
|
|
16
15
|
export declare function pushPrefKeyFor(type: string): string;
|