@earbug/db-models 0.0.62 → 0.0.63
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/.dockerignore +10 -0
- package/.github/workflows/publish.yaml +303 -0
- package/.nvmrc +1 -0
- package/Dockerfile.generate +19 -0
- package/model_options.json +3 -0
- package/models/AccessControlPreference.ts +53 -0
- package/models/AffinityRelationshipType.ts +96 -0
- package/models/AffinityTier.ts +131 -0
- package/models/AppUser.ts +577 -0
- package/models/AppUserDevice.ts +101 -0
- package/models/AppUserDeviceClassicBackup20260906.ts +66 -0
- package/models/AppUserFollowRelation.ts +128 -0
- package/models/AppUserPlatformRelation.ts +150 -0
- package/models/CanonAlbum.ts +229 -0
- package/models/CanonAlbumExternalReferenceRelation.ts +92 -0
- package/models/CanonAlbumGenreRelation.ts +86 -0
- package/models/CanonAlbumLabelRelation.ts +86 -0
- package/models/CanonAlbumTrackRelation.ts +92 -0
- package/models/CanonArtist.ts +356 -0
- package/models/CanonArtistAlbumRelation.ts +92 -0
- package/models/CanonArtistExternalReferenceRelation.ts +92 -0
- package/models/CanonArtistGenreRelation.ts +86 -0
- package/models/CanonArtistMemberRelation.ts +86 -0
- package/models/CanonArtistTrackRelation.ts +92 -0
- package/models/CanonGenre.ts +273 -0
- package/models/CanonGenreExternalReferenceRelation.ts +92 -0
- package/models/CanonLabel.ts +129 -0
- package/models/CanonLabelExternalReferenceRelation.ts +92 -0
- package/models/CanonMember.ts +130 -0
- package/models/CanonMemberExternalReferenceRelation.ts +99 -0
- package/models/CanonToPlatformAlbumRelation.ts +92 -0
- package/models/CanonToPlatformArtistRelation.ts +92 -0
- package/models/CanonToPlatformGenreRelation.ts +86 -0
- package/models/CanonToPlatformTrackRelation.ts +92 -0
- package/models/CanonTrack.ts +232 -0
- package/models/ConfigParam.ts +62 -0
- package/models/ExternalReference.ts +201 -0
- package/models/FeedConfig.ts +65 -0
- package/models/FeedContentType.ts +124 -0
- package/models/GuestUser.ts +137 -0
- package/models/JukeboxAccessType.ts +60 -0
- package/models/JukeboxCanonGenreRelation.ts +108 -0
- package/models/JukeboxInvite.ts +125 -0
- package/models/JukeboxQueueEntry.ts +247 -0
- package/models/JukeboxQueueMode.ts +60 -0
- package/models/JukeboxSession.ts +334 -0
- package/models/JukeboxSessionArtistAffinity.ts +136 -0
- package/models/JukeboxSessionGenreAffinity.ts +136 -0
- package/models/JukeboxStatus.ts +58 -0
- package/models/JukeboxTerminationCondition.ts +60 -0
- package/models/JukeboxType.ts +60 -0
- package/models/JukeboxUser.ts +182 -0
- package/models/JukeboxUserType.ts +58 -0
- package/models/KnexMigrations.ts +60 -0
- package/models/KnexMigrationsLock.ts +48 -0
- package/models/MerchItem.ts +198 -0
- package/models/MerchOrchestration.ts +130 -0
- package/models/MerchPlatform.ts +95 -0
- package/models/MerchType.ts +89 -0
- package/models/MetricsDaily.ts +79 -0
- package/models/MetricsEvent.ts +124 -0
- package/models/NewsArticle.ts +177 -0
- package/models/NewsPlatform.ts +76 -0
- package/models/NewsSite.ts +75 -0
- package/models/Notification.ts +214 -0
- package/models/NotificationType.ts +66 -0
- package/models/PauseStatusType.ts +58 -0
- package/models/Platform.ts +189 -0
- package/models/PlatformAlbum.ts +398 -0
- package/models/PlatformAlbumGenreRelation.ts +86 -0
- package/models/PlatformAlbumTrackRelation.ts +92 -0
- package/models/PlatformArtist.ts +358 -0
- package/models/PlatformArtistAlbumRelation.ts +92 -0
- package/models/PlatformArtistGenreRelation.ts +86 -0
- package/models/PlatformArtistTrackRelation.ts +92 -0
- package/models/PlatformGenre.ts +194 -0
- package/models/PlatformTrack.ts +339 -0
- package/models/PlatformTrackGenreRelation.ts +86 -0
- package/models/PlatformUserAlbum.ts +152 -0
- package/models/PlatformUserAlbumTrack.ts +138 -0
- package/models/PlatformUserPlaylist.ts +260 -0
- package/models/PlatformUserPlaylistArtistAffinity.ts +136 -0
- package/models/PlatformUserPlaylistGenreAffinity.ts +136 -0
- package/models/PlatformUserPlaylistTrack.ts +162 -0
- package/models/PlaybackStatus.ts +47 -0
- package/models/PlaybackStatusType.ts +58 -0
- package/models/RadioShow.ts +209 -0
- package/models/RadioShowGenres.ts +107 -0
- package/models/RadioShowMedia.ts +181 -0
- package/models/RadioShowPlacement.ts +115 -0
- package/models/RadioShowPublishRequests.ts +86 -0
- package/models/State.ts +86 -0
- package/models/TrackDeletionReason.ts +58 -0
- package/models/UnmatchedAlbum.ts +66 -0
- package/models/UnmatchedArtist.ts +81 -0
- package/models/UserAbuseReports.ts +232 -0
- package/models/UserAffinity.ts +117 -0
- package/models/UserArtistAffinity.ts +136 -0
- package/models/UserBookmarks.ts +235 -0
- package/models/UserComments.ts +271 -0
- package/models/UserContacts.ts +155 -0
- package/models/UserEngagementFactor.ts +109 -0
- package/models/UserGenreAffinity.ts +136 -0
- package/models/UserLikes.ts +235 -0
- package/models/UserMessages.ts +189 -0
- package/models/Versus.ts +438 -0
- package/models/VersusAccessType.ts +66 -0
- package/models/VersusCoCreator.ts +111 -0
- package/models/VersusCreatorScope.ts +66 -0
- package/models/VersusEndMode.ts +66 -0
- package/models/VersusEndTimerDuration.ts +81 -0
- package/models/VersusEndVoteThreshold.ts +67 -0
- package/models/VersusEntityKind.ts +79 -0
- package/models/VersusOption.ts +258 -0
- package/models/VersusPublishIssue.ts +146 -0
- package/models/VersusQuestion.ts +123 -0
- package/models/VersusQuestionVariableType.ts +66 -0
- package/models/VersusVote.ts +99 -0
- package/models/VersusVotingListType.ts +66 -0
- package/models/VersusVotingMode.ts +66 -0
- package/models/index.ts +3 -0
- package/models/init-models.ts +1259 -0
- package/models/initDb.ts +72 -0
- package/models/rdsCaBundle.ts +5 -0
- package/package.json +2 -5
- package/scripts/generate-and-upload.mjs +123 -0
- package/scripts/update-rds-ca-bundle.mjs +44 -0
- package/tsconfig.json +52 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { Versus, VersusId } from './Versus';
|
|
4
|
+
|
|
5
|
+
export interface VersusEndModeAttributes {
|
|
6
|
+
id: number;
|
|
7
|
+
description: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type VersusEndModePk = "id";
|
|
11
|
+
export type VersusEndModeId = VersusEndMode[VersusEndModePk];
|
|
12
|
+
export type VersusEndModeCreationAttributes = VersusEndModeAttributes;
|
|
13
|
+
|
|
14
|
+
export class VersusEndMode extends Model<VersusEndModeAttributes, VersusEndModeCreationAttributes> implements VersusEndModeAttributes {
|
|
15
|
+
id!: number;
|
|
16
|
+
description!: string;
|
|
17
|
+
|
|
18
|
+
// VersusEndMode hasMany Versus via versusEndModeId
|
|
19
|
+
versus!: Versus[];
|
|
20
|
+
getVersus!: Sequelize.HasManyGetAssociationsMixin<Versus>;
|
|
21
|
+
setVersus!: Sequelize.HasManySetAssociationsMixin<Versus, VersusId>;
|
|
22
|
+
addVersu!: Sequelize.HasManyAddAssociationMixin<Versus, VersusId>;
|
|
23
|
+
addVersus!: Sequelize.HasManyAddAssociationsMixin<Versus, VersusId>;
|
|
24
|
+
createVersu!: Sequelize.HasManyCreateAssociationMixin<Versus>;
|
|
25
|
+
removeVersu!: Sequelize.HasManyRemoveAssociationMixin<Versus, VersusId>;
|
|
26
|
+
removeVersus!: Sequelize.HasManyRemoveAssociationsMixin<Versus, VersusId>;
|
|
27
|
+
hasVersu!: Sequelize.HasManyHasAssociationMixin<Versus, VersusId>;
|
|
28
|
+
hasVersus!: Sequelize.HasManyHasAssociationsMixin<Versus, VersusId>;
|
|
29
|
+
countVersus!: Sequelize.HasManyCountAssociationsMixin;
|
|
30
|
+
|
|
31
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusEndMode {
|
|
32
|
+
return VersusEndMode.init({
|
|
33
|
+
id: {
|
|
34
|
+
type: DataTypes.SMALLINT,
|
|
35
|
+
allowNull: false,
|
|
36
|
+
primaryKey: true
|
|
37
|
+
},
|
|
38
|
+
description: {
|
|
39
|
+
type: DataTypes.STRING(64),
|
|
40
|
+
allowNull: false,
|
|
41
|
+
unique: "versus_end_mode_description_unique"
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
sequelize,
|
|
45
|
+
tableName: 'versus_end_mode',
|
|
46
|
+
schema: 'eb',
|
|
47
|
+
timestamps: false,
|
|
48
|
+
indexes: [
|
|
49
|
+
{
|
|
50
|
+
name: "versus_end_mode_description_unique",
|
|
51
|
+
unique: true,
|
|
52
|
+
fields: [
|
|
53
|
+
{ name: "description" },
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "versus_end_mode_pkey",
|
|
58
|
+
unique: true,
|
|
59
|
+
fields: [
|
|
60
|
+
{ name: "id" },
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
]
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { Versus, VersusId } from './Versus';
|
|
4
|
+
|
|
5
|
+
export interface VersusEndTimerDurationAttributes {
|
|
6
|
+
id: number;
|
|
7
|
+
description: string;
|
|
8
|
+
durationHours: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type VersusEndTimerDurationPk = "id";
|
|
12
|
+
export type VersusEndTimerDurationId = VersusEndTimerDuration[VersusEndTimerDurationPk];
|
|
13
|
+
export type VersusEndTimerDurationCreationAttributes = VersusEndTimerDurationAttributes;
|
|
14
|
+
|
|
15
|
+
export class VersusEndTimerDuration extends Model<VersusEndTimerDurationAttributes, VersusEndTimerDurationCreationAttributes> implements VersusEndTimerDurationAttributes {
|
|
16
|
+
id!: number;
|
|
17
|
+
description!: string;
|
|
18
|
+
durationHours!: number;
|
|
19
|
+
|
|
20
|
+
// VersusEndTimerDuration hasMany Versus via versusEndTimerDurationId
|
|
21
|
+
versus!: Versus[];
|
|
22
|
+
getVersus!: Sequelize.HasManyGetAssociationsMixin<Versus>;
|
|
23
|
+
setVersus!: Sequelize.HasManySetAssociationsMixin<Versus, VersusId>;
|
|
24
|
+
addVersu!: Sequelize.HasManyAddAssociationMixin<Versus, VersusId>;
|
|
25
|
+
addVersus!: Sequelize.HasManyAddAssociationsMixin<Versus, VersusId>;
|
|
26
|
+
createVersu!: Sequelize.HasManyCreateAssociationMixin<Versus>;
|
|
27
|
+
removeVersu!: Sequelize.HasManyRemoveAssociationMixin<Versus, VersusId>;
|
|
28
|
+
removeVersus!: Sequelize.HasManyRemoveAssociationsMixin<Versus, VersusId>;
|
|
29
|
+
hasVersu!: Sequelize.HasManyHasAssociationMixin<Versus, VersusId>;
|
|
30
|
+
hasVersus!: Sequelize.HasManyHasAssociationsMixin<Versus, VersusId>;
|
|
31
|
+
countVersus!: Sequelize.HasManyCountAssociationsMixin;
|
|
32
|
+
|
|
33
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusEndTimerDuration {
|
|
34
|
+
return VersusEndTimerDuration.init({
|
|
35
|
+
id: {
|
|
36
|
+
type: DataTypes.SMALLINT,
|
|
37
|
+
allowNull: false,
|
|
38
|
+
primaryKey: true
|
|
39
|
+
},
|
|
40
|
+
description: {
|
|
41
|
+
type: DataTypes.STRING(64),
|
|
42
|
+
allowNull: false,
|
|
43
|
+
unique: "versus_end_timer_duration_description_unique"
|
|
44
|
+
},
|
|
45
|
+
durationHours: {
|
|
46
|
+
type: DataTypes.INTEGER,
|
|
47
|
+
allowNull: false,
|
|
48
|
+
unique: "versus_end_timer_duration_duration_hours_unique",
|
|
49
|
+
field: 'duration_hours'
|
|
50
|
+
}
|
|
51
|
+
}, {
|
|
52
|
+
sequelize,
|
|
53
|
+
tableName: 'versus_end_timer_duration',
|
|
54
|
+
schema: 'eb',
|
|
55
|
+
timestamps: false,
|
|
56
|
+
indexes: [
|
|
57
|
+
{
|
|
58
|
+
name: "versus_end_timer_duration_description_unique",
|
|
59
|
+
unique: true,
|
|
60
|
+
fields: [
|
|
61
|
+
{ name: "description" },
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "versus_end_timer_duration_duration_hours_unique",
|
|
66
|
+
unique: true,
|
|
67
|
+
fields: [
|
|
68
|
+
{ name: "duration_hours" },
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "versus_end_timer_duration_pkey",
|
|
73
|
+
unique: true,
|
|
74
|
+
fields: [
|
|
75
|
+
{ name: "id" },
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
]
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { Versus, VersusId } from './Versus';
|
|
4
|
+
|
|
5
|
+
export interface VersusEndVoteThresholdAttributes {
|
|
6
|
+
id: number;
|
|
7
|
+
voteCount: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type VersusEndVoteThresholdPk = "id";
|
|
11
|
+
export type VersusEndVoteThresholdId = VersusEndVoteThreshold[VersusEndVoteThresholdPk];
|
|
12
|
+
export type VersusEndVoteThresholdCreationAttributes = VersusEndVoteThresholdAttributes;
|
|
13
|
+
|
|
14
|
+
export class VersusEndVoteThreshold extends Model<VersusEndVoteThresholdAttributes, VersusEndVoteThresholdCreationAttributes> implements VersusEndVoteThresholdAttributes {
|
|
15
|
+
id!: number;
|
|
16
|
+
voteCount!: number;
|
|
17
|
+
|
|
18
|
+
// VersusEndVoteThreshold hasMany Versus via versusEndVoteThresholdId
|
|
19
|
+
versus!: Versus[];
|
|
20
|
+
getVersus!: Sequelize.HasManyGetAssociationsMixin<Versus>;
|
|
21
|
+
setVersus!: Sequelize.HasManySetAssociationsMixin<Versus, VersusId>;
|
|
22
|
+
addVersu!: Sequelize.HasManyAddAssociationMixin<Versus, VersusId>;
|
|
23
|
+
addVersus!: Sequelize.HasManyAddAssociationsMixin<Versus, VersusId>;
|
|
24
|
+
createVersu!: Sequelize.HasManyCreateAssociationMixin<Versus>;
|
|
25
|
+
removeVersu!: Sequelize.HasManyRemoveAssociationMixin<Versus, VersusId>;
|
|
26
|
+
removeVersus!: Sequelize.HasManyRemoveAssociationsMixin<Versus, VersusId>;
|
|
27
|
+
hasVersu!: Sequelize.HasManyHasAssociationMixin<Versus, VersusId>;
|
|
28
|
+
hasVersus!: Sequelize.HasManyHasAssociationsMixin<Versus, VersusId>;
|
|
29
|
+
countVersus!: Sequelize.HasManyCountAssociationsMixin;
|
|
30
|
+
|
|
31
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusEndVoteThreshold {
|
|
32
|
+
return VersusEndVoteThreshold.init({
|
|
33
|
+
id: {
|
|
34
|
+
type: DataTypes.SMALLINT,
|
|
35
|
+
allowNull: false,
|
|
36
|
+
primaryKey: true
|
|
37
|
+
},
|
|
38
|
+
voteCount: {
|
|
39
|
+
type: DataTypes.INTEGER,
|
|
40
|
+
allowNull: false,
|
|
41
|
+
unique: "versus_end_vote_threshold_vote_count_unique",
|
|
42
|
+
field: 'vote_count'
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
sequelize,
|
|
46
|
+
tableName: 'versus_end_vote_threshold',
|
|
47
|
+
schema: 'eb',
|
|
48
|
+
timestamps: false,
|
|
49
|
+
indexes: [
|
|
50
|
+
{
|
|
51
|
+
name: "versus_end_vote_threshold_pkey",
|
|
52
|
+
unique: true,
|
|
53
|
+
fields: [
|
|
54
|
+
{ name: "id" },
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "versus_end_vote_threshold_vote_count_unique",
|
|
59
|
+
unique: true,
|
|
60
|
+
fields: [
|
|
61
|
+
{ name: "vote_count" },
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
]
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { VersusOption, VersusOptionId } from './VersusOption';
|
|
4
|
+
import type { VersusPublishIssue, VersusPublishIssueId } from './VersusPublishIssue';
|
|
5
|
+
|
|
6
|
+
export interface VersusEntityKindAttributes {
|
|
7
|
+
id: number;
|
|
8
|
+
description: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type VersusEntityKindPk = "id";
|
|
12
|
+
export type VersusEntityKindId = VersusEntityKind[VersusEntityKindPk];
|
|
13
|
+
export type VersusEntityKindCreationAttributes = VersusEntityKindAttributes;
|
|
14
|
+
|
|
15
|
+
export class VersusEntityKind extends Model<VersusEntityKindAttributes, VersusEntityKindCreationAttributes> implements VersusEntityKindAttributes {
|
|
16
|
+
id!: number;
|
|
17
|
+
description!: string;
|
|
18
|
+
|
|
19
|
+
// VersusEntityKind hasMany VersusOption via entityKindId
|
|
20
|
+
versusOptions!: VersusOption[];
|
|
21
|
+
getVersusOptions!: Sequelize.HasManyGetAssociationsMixin<VersusOption>;
|
|
22
|
+
setVersusOptions!: Sequelize.HasManySetAssociationsMixin<VersusOption, VersusOptionId>;
|
|
23
|
+
addVersusOption!: Sequelize.HasManyAddAssociationMixin<VersusOption, VersusOptionId>;
|
|
24
|
+
addVersusOptions!: Sequelize.HasManyAddAssociationsMixin<VersusOption, VersusOptionId>;
|
|
25
|
+
createVersusOption!: Sequelize.HasManyCreateAssociationMixin<VersusOption>;
|
|
26
|
+
removeVersusOption!: Sequelize.HasManyRemoveAssociationMixin<VersusOption, VersusOptionId>;
|
|
27
|
+
removeVersusOptions!: Sequelize.HasManyRemoveAssociationsMixin<VersusOption, VersusOptionId>;
|
|
28
|
+
hasVersusOption!: Sequelize.HasManyHasAssociationMixin<VersusOption, VersusOptionId>;
|
|
29
|
+
hasVersusOptions!: Sequelize.HasManyHasAssociationsMixin<VersusOption, VersusOptionId>;
|
|
30
|
+
countVersusOptions!: Sequelize.HasManyCountAssociationsMixin;
|
|
31
|
+
// VersusEntityKind hasMany VersusPublishIssue via entityKindId
|
|
32
|
+
versusPublishIssues!: VersusPublishIssue[];
|
|
33
|
+
getVersusPublishIssues!: Sequelize.HasManyGetAssociationsMixin<VersusPublishIssue>;
|
|
34
|
+
setVersusPublishIssues!: Sequelize.HasManySetAssociationsMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
35
|
+
addVersusPublishIssue!: Sequelize.HasManyAddAssociationMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
36
|
+
addVersusPublishIssues!: Sequelize.HasManyAddAssociationsMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
37
|
+
createVersusPublishIssue!: Sequelize.HasManyCreateAssociationMixin<VersusPublishIssue>;
|
|
38
|
+
removeVersusPublishIssue!: Sequelize.HasManyRemoveAssociationMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
39
|
+
removeVersusPublishIssues!: Sequelize.HasManyRemoveAssociationsMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
40
|
+
hasVersusPublishIssue!: Sequelize.HasManyHasAssociationMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
41
|
+
hasVersusPublishIssues!: Sequelize.HasManyHasAssociationsMixin<VersusPublishIssue, VersusPublishIssueId>;
|
|
42
|
+
countVersusPublishIssues!: Sequelize.HasManyCountAssociationsMixin;
|
|
43
|
+
|
|
44
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusEntityKind {
|
|
45
|
+
return VersusEntityKind.init({
|
|
46
|
+
id: {
|
|
47
|
+
type: DataTypes.SMALLINT,
|
|
48
|
+
allowNull: false,
|
|
49
|
+
primaryKey: true
|
|
50
|
+
},
|
|
51
|
+
description: {
|
|
52
|
+
type: DataTypes.STRING(32),
|
|
53
|
+
allowNull: false,
|
|
54
|
+
unique: "versus_entity_kind_description_unique"
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
sequelize,
|
|
58
|
+
tableName: 'versus_entity_kind',
|
|
59
|
+
schema: 'eb',
|
|
60
|
+
timestamps: false,
|
|
61
|
+
indexes: [
|
|
62
|
+
{
|
|
63
|
+
name: "versus_entity_kind_description_unique",
|
|
64
|
+
unique: true,
|
|
65
|
+
fields: [
|
|
66
|
+
{ name: "description" },
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "versus_entity_kind_pkey",
|
|
71
|
+
unique: true,
|
|
72
|
+
fields: [
|
|
73
|
+
{ name: "id" },
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { AppUser, AppUserId } from './AppUser';
|
|
4
|
+
import type { CanonAlbum, CanonAlbumId } from './CanonAlbum';
|
|
5
|
+
import type { CanonArtist, CanonArtistId } from './CanonArtist';
|
|
6
|
+
import type { CanonTrack, CanonTrackId } from './CanonTrack';
|
|
7
|
+
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
8
|
+
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
9
|
+
import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
|
|
10
|
+
import type { Versus, VersusId } from './Versus';
|
|
11
|
+
import type { VersusEntityKind, VersusEntityKindId } from './VersusEntityKind';
|
|
12
|
+
|
|
13
|
+
export interface VersusOptionAttributes {
|
|
14
|
+
id: string;
|
|
15
|
+
versusId: string;
|
|
16
|
+
entityKindId: number;
|
|
17
|
+
sortOrder: number;
|
|
18
|
+
canonTrackId?: string;
|
|
19
|
+
platformTrackId?: string;
|
|
20
|
+
canonAlbumId?: string;
|
|
21
|
+
platformAlbumId?: string;
|
|
22
|
+
canonArtistId?: string;
|
|
23
|
+
platformArtistId?: string;
|
|
24
|
+
voteScore?: number;
|
|
25
|
+
resultsScore?: number;
|
|
26
|
+
createdAt: Date;
|
|
27
|
+
updatedAt: Date;
|
|
28
|
+
deleted: boolean;
|
|
29
|
+
appUserId?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type VersusOptionPk = "id";
|
|
33
|
+
export type VersusOptionId = VersusOption[VersusOptionPk];
|
|
34
|
+
export type VersusOptionOptionalAttributes = "id" | "canonTrackId" | "platformTrackId" | "canonAlbumId" | "platformAlbumId" | "canonArtistId" | "platformArtistId" | "voteScore" | "resultsScore" | "createdAt" | "updatedAt" | "appUserId";
|
|
35
|
+
export type VersusOptionCreationAttributes = Optional<VersusOptionAttributes, VersusOptionOptionalAttributes>;
|
|
36
|
+
|
|
37
|
+
export class VersusOption extends Model<VersusOptionAttributes, VersusOptionCreationAttributes> implements VersusOptionAttributes {
|
|
38
|
+
id!: string;
|
|
39
|
+
versusId!: string;
|
|
40
|
+
entityKindId!: number;
|
|
41
|
+
sortOrder!: number;
|
|
42
|
+
canonTrackId?: string;
|
|
43
|
+
platformTrackId?: string;
|
|
44
|
+
canonAlbumId?: string;
|
|
45
|
+
platformAlbumId?: string;
|
|
46
|
+
canonArtistId?: string;
|
|
47
|
+
platformArtistId?: string;
|
|
48
|
+
voteScore?: number;
|
|
49
|
+
resultsScore?: number;
|
|
50
|
+
createdAt!: Date;
|
|
51
|
+
updatedAt!: Date;
|
|
52
|
+
deleted!: boolean;
|
|
53
|
+
appUserId?: string;
|
|
54
|
+
|
|
55
|
+
// VersusOption belongsTo AppUser via appUserId
|
|
56
|
+
appUser!: AppUser;
|
|
57
|
+
getAppUser!: Sequelize.BelongsToGetAssociationMixin<AppUser>;
|
|
58
|
+
setAppUser!: Sequelize.BelongsToSetAssociationMixin<AppUser, AppUserId>;
|
|
59
|
+
createAppUser!: Sequelize.BelongsToCreateAssociationMixin<AppUser>;
|
|
60
|
+
// VersusOption belongsTo CanonAlbum via canonAlbumId
|
|
61
|
+
canonAlbum!: CanonAlbum;
|
|
62
|
+
getCanonAlbum!: Sequelize.BelongsToGetAssociationMixin<CanonAlbum>;
|
|
63
|
+
setCanonAlbum!: Sequelize.BelongsToSetAssociationMixin<CanonAlbum, CanonAlbumId>;
|
|
64
|
+
createCanonAlbum!: Sequelize.BelongsToCreateAssociationMixin<CanonAlbum>;
|
|
65
|
+
// VersusOption belongsTo CanonArtist via canonArtistId
|
|
66
|
+
canonArtist!: CanonArtist;
|
|
67
|
+
getCanonArtist!: Sequelize.BelongsToGetAssociationMixin<CanonArtist>;
|
|
68
|
+
setCanonArtist!: Sequelize.BelongsToSetAssociationMixin<CanonArtist, CanonArtistId>;
|
|
69
|
+
createCanonArtist!: Sequelize.BelongsToCreateAssociationMixin<CanonArtist>;
|
|
70
|
+
// VersusOption belongsTo CanonTrack via canonTrackId
|
|
71
|
+
canonTrack!: CanonTrack;
|
|
72
|
+
getCanonTrack!: Sequelize.BelongsToGetAssociationMixin<CanonTrack>;
|
|
73
|
+
setCanonTrack!: Sequelize.BelongsToSetAssociationMixin<CanonTrack, CanonTrackId>;
|
|
74
|
+
createCanonTrack!: Sequelize.BelongsToCreateAssociationMixin<CanonTrack>;
|
|
75
|
+
// VersusOption belongsTo PlatformAlbum via platformAlbumId
|
|
76
|
+
platformAlbum!: PlatformAlbum;
|
|
77
|
+
getPlatformAlbum!: Sequelize.BelongsToGetAssociationMixin<PlatformAlbum>;
|
|
78
|
+
setPlatformAlbum!: Sequelize.BelongsToSetAssociationMixin<PlatformAlbum, PlatformAlbumId>;
|
|
79
|
+
createPlatformAlbum!: Sequelize.BelongsToCreateAssociationMixin<PlatformAlbum>;
|
|
80
|
+
// VersusOption belongsTo PlatformArtist via platformArtistId
|
|
81
|
+
platformArtist!: PlatformArtist;
|
|
82
|
+
getPlatformArtist!: Sequelize.BelongsToGetAssociationMixin<PlatformArtist>;
|
|
83
|
+
setPlatformArtist!: Sequelize.BelongsToSetAssociationMixin<PlatformArtist, PlatformArtistId>;
|
|
84
|
+
createPlatformArtist!: Sequelize.BelongsToCreateAssociationMixin<PlatformArtist>;
|
|
85
|
+
// VersusOption belongsTo PlatformTrack via platformTrackId
|
|
86
|
+
platformTrack!: PlatformTrack;
|
|
87
|
+
getPlatformTrack!: Sequelize.BelongsToGetAssociationMixin<PlatformTrack>;
|
|
88
|
+
setPlatformTrack!: Sequelize.BelongsToSetAssociationMixin<PlatformTrack, PlatformTrackId>;
|
|
89
|
+
createPlatformTrack!: Sequelize.BelongsToCreateAssociationMixin<PlatformTrack>;
|
|
90
|
+
// VersusOption belongsTo Versus via versusId
|
|
91
|
+
versu!: Versus;
|
|
92
|
+
getVersu!: Sequelize.BelongsToGetAssociationMixin<Versus>;
|
|
93
|
+
setVersu!: Sequelize.BelongsToSetAssociationMixin<Versus, VersusId>;
|
|
94
|
+
createVersu!: Sequelize.BelongsToCreateAssociationMixin<Versus>;
|
|
95
|
+
// VersusOption belongsTo VersusEntityKind via entityKindId
|
|
96
|
+
entityKind!: VersusEntityKind;
|
|
97
|
+
getEntityKind!: Sequelize.BelongsToGetAssociationMixin<VersusEntityKind>;
|
|
98
|
+
setEntityKind!: Sequelize.BelongsToSetAssociationMixin<VersusEntityKind, VersusEntityKindId>;
|
|
99
|
+
createEntityKind!: Sequelize.BelongsToCreateAssociationMixin<VersusEntityKind>;
|
|
100
|
+
|
|
101
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusOption {
|
|
102
|
+
return VersusOption.init({
|
|
103
|
+
id: {
|
|
104
|
+
type: DataTypes.UUID,
|
|
105
|
+
allowNull: false,
|
|
106
|
+
defaultValue: DataTypes.UUIDV4,
|
|
107
|
+
primaryKey: true
|
|
108
|
+
},
|
|
109
|
+
versusId: {
|
|
110
|
+
type: DataTypes.UUID,
|
|
111
|
+
allowNull: false,
|
|
112
|
+
references: {
|
|
113
|
+
model: 'versus',
|
|
114
|
+
key: 'id'
|
|
115
|
+
},
|
|
116
|
+
field: 'versus_id'
|
|
117
|
+
},
|
|
118
|
+
entityKindId: {
|
|
119
|
+
type: DataTypes.SMALLINT,
|
|
120
|
+
allowNull: false,
|
|
121
|
+
references: {
|
|
122
|
+
model: 'versus_entity_kind',
|
|
123
|
+
key: 'id'
|
|
124
|
+
},
|
|
125
|
+
field: 'entity_kind_id'
|
|
126
|
+
},
|
|
127
|
+
sortOrder: {
|
|
128
|
+
type: DataTypes.INTEGER,
|
|
129
|
+
allowNull: false,
|
|
130
|
+
field: 'sort_order'
|
|
131
|
+
},
|
|
132
|
+
canonTrackId: {
|
|
133
|
+
type: DataTypes.UUID,
|
|
134
|
+
allowNull: true,
|
|
135
|
+
references: {
|
|
136
|
+
model: 'canon_track',
|
|
137
|
+
key: 'id'
|
|
138
|
+
},
|
|
139
|
+
field: 'canon_track_id'
|
|
140
|
+
},
|
|
141
|
+
platformTrackId: {
|
|
142
|
+
type: DataTypes.UUID,
|
|
143
|
+
allowNull: true,
|
|
144
|
+
references: {
|
|
145
|
+
model: 'platform_track',
|
|
146
|
+
key: 'id'
|
|
147
|
+
},
|
|
148
|
+
field: 'platform_track_id'
|
|
149
|
+
},
|
|
150
|
+
canonAlbumId: {
|
|
151
|
+
type: DataTypes.UUID,
|
|
152
|
+
allowNull: true,
|
|
153
|
+
references: {
|
|
154
|
+
model: 'canon_album',
|
|
155
|
+
key: 'id'
|
|
156
|
+
},
|
|
157
|
+
field: 'canon_album_id'
|
|
158
|
+
},
|
|
159
|
+
platformAlbumId: {
|
|
160
|
+
type: DataTypes.UUID,
|
|
161
|
+
allowNull: true,
|
|
162
|
+
references: {
|
|
163
|
+
model: 'platform_album',
|
|
164
|
+
key: 'id'
|
|
165
|
+
},
|
|
166
|
+
field: 'platform_album_id'
|
|
167
|
+
},
|
|
168
|
+
canonArtistId: {
|
|
169
|
+
type: DataTypes.UUID,
|
|
170
|
+
allowNull: true,
|
|
171
|
+
references: {
|
|
172
|
+
model: 'canon_artist',
|
|
173
|
+
key: 'id'
|
|
174
|
+
},
|
|
175
|
+
field: 'canon_artist_id'
|
|
176
|
+
},
|
|
177
|
+
platformArtistId: {
|
|
178
|
+
type: DataTypes.UUID,
|
|
179
|
+
allowNull: true,
|
|
180
|
+
references: {
|
|
181
|
+
model: 'platform_artist',
|
|
182
|
+
key: 'id'
|
|
183
|
+
},
|
|
184
|
+
field: 'platform_artist_id'
|
|
185
|
+
},
|
|
186
|
+
voteScore: {
|
|
187
|
+
type: DataTypes.INTEGER,
|
|
188
|
+
allowNull: true,
|
|
189
|
+
field: 'vote_score'
|
|
190
|
+
},
|
|
191
|
+
resultsScore: {
|
|
192
|
+
type: DataTypes.SMALLINT,
|
|
193
|
+
allowNull: true,
|
|
194
|
+
field: 'results_score'
|
|
195
|
+
},
|
|
196
|
+
createdAt: {
|
|
197
|
+
type: DataTypes.DATE,
|
|
198
|
+
allowNull: false,
|
|
199
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
200
|
+
field: 'created_at'
|
|
201
|
+
},
|
|
202
|
+
updatedAt: {
|
|
203
|
+
type: DataTypes.DATE,
|
|
204
|
+
allowNull: false,
|
|
205
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
206
|
+
field: 'updated_at'
|
|
207
|
+
},
|
|
208
|
+
deleted: {
|
|
209
|
+
type: DataTypes.BOOLEAN,
|
|
210
|
+
allowNull: false,
|
|
211
|
+
defaultValue: false
|
|
212
|
+
},
|
|
213
|
+
appUserId: {
|
|
214
|
+
type: DataTypes.UUID,
|
|
215
|
+
allowNull: true,
|
|
216
|
+
references: {
|
|
217
|
+
model: 'app_user',
|
|
218
|
+
key: 'id'
|
|
219
|
+
},
|
|
220
|
+
field: 'app_user_id'
|
|
221
|
+
}
|
|
222
|
+
}, {
|
|
223
|
+
sequelize,
|
|
224
|
+
tableName: 'versus_option',
|
|
225
|
+
schema: 'eb',
|
|
226
|
+
timestamps: false,
|
|
227
|
+
indexes: [
|
|
228
|
+
{
|
|
229
|
+
name: "idx_versus_option_versus",
|
|
230
|
+
fields: [
|
|
231
|
+
{ name: "versus_id" },
|
|
232
|
+
]
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
name: "idx_versus_option_versus_deleted",
|
|
236
|
+
fields: [
|
|
237
|
+
{ name: "versus_id" },
|
|
238
|
+
{ name: "deleted" },
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
name: "idx_versus_option_versus_sort",
|
|
243
|
+
fields: [
|
|
244
|
+
{ name: "versus_id" },
|
|
245
|
+
{ name: "sort_order" },
|
|
246
|
+
]
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
name: "versus_option_pkey",
|
|
250
|
+
unique: true,
|
|
251
|
+
fields: [
|
|
252
|
+
{ name: "id" },
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
]
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as Sequelize from 'sequelize';
|
|
2
|
+
import { DataTypes, Model, Optional } from 'sequelize';
|
|
3
|
+
import type { PlatformAlbum, PlatformAlbumId } from './PlatformAlbum';
|
|
4
|
+
import type { PlatformArtist, PlatformArtistId } from './PlatformArtist';
|
|
5
|
+
import type { PlatformTrack, PlatformTrackId } from './PlatformTrack';
|
|
6
|
+
import type { Versus, VersusId } from './Versus';
|
|
7
|
+
import type { VersusEntityKind, VersusEntityKindId } from './VersusEntityKind';
|
|
8
|
+
|
|
9
|
+
export interface VersusPublishIssueAttributes {
|
|
10
|
+
id: string;
|
|
11
|
+
versusId: string;
|
|
12
|
+
entityKindId: number;
|
|
13
|
+
platformTrackId?: string;
|
|
14
|
+
platformAlbumId?: string;
|
|
15
|
+
platformArtistId?: string;
|
|
16
|
+
detail?: string;
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type VersusPublishIssuePk = "id";
|
|
21
|
+
export type VersusPublishIssueId = VersusPublishIssue[VersusPublishIssuePk];
|
|
22
|
+
export type VersusPublishIssueOptionalAttributes = "id" | "platformTrackId" | "platformAlbumId" | "platformArtistId" | "detail" | "createdAt";
|
|
23
|
+
export type VersusPublishIssueCreationAttributes = Optional<VersusPublishIssueAttributes, VersusPublishIssueOptionalAttributes>;
|
|
24
|
+
|
|
25
|
+
export class VersusPublishIssue extends Model<VersusPublishIssueAttributes, VersusPublishIssueCreationAttributes> implements VersusPublishIssueAttributes {
|
|
26
|
+
id!: string;
|
|
27
|
+
versusId!: string;
|
|
28
|
+
entityKindId!: number;
|
|
29
|
+
platformTrackId?: string;
|
|
30
|
+
platformAlbumId?: string;
|
|
31
|
+
platformArtistId?: string;
|
|
32
|
+
detail?: string;
|
|
33
|
+
createdAt!: Date;
|
|
34
|
+
|
|
35
|
+
// VersusPublishIssue belongsTo PlatformAlbum via platformAlbumId
|
|
36
|
+
platformAlbum!: PlatformAlbum;
|
|
37
|
+
getPlatformAlbum!: Sequelize.BelongsToGetAssociationMixin<PlatformAlbum>;
|
|
38
|
+
setPlatformAlbum!: Sequelize.BelongsToSetAssociationMixin<PlatformAlbum, PlatformAlbumId>;
|
|
39
|
+
createPlatformAlbum!: Sequelize.BelongsToCreateAssociationMixin<PlatformAlbum>;
|
|
40
|
+
// VersusPublishIssue belongsTo PlatformArtist via platformArtistId
|
|
41
|
+
platformArtist!: PlatformArtist;
|
|
42
|
+
getPlatformArtist!: Sequelize.BelongsToGetAssociationMixin<PlatformArtist>;
|
|
43
|
+
setPlatformArtist!: Sequelize.BelongsToSetAssociationMixin<PlatformArtist, PlatformArtistId>;
|
|
44
|
+
createPlatformArtist!: Sequelize.BelongsToCreateAssociationMixin<PlatformArtist>;
|
|
45
|
+
// VersusPublishIssue belongsTo PlatformTrack via platformTrackId
|
|
46
|
+
platformTrack!: PlatformTrack;
|
|
47
|
+
getPlatformTrack!: Sequelize.BelongsToGetAssociationMixin<PlatformTrack>;
|
|
48
|
+
setPlatformTrack!: Sequelize.BelongsToSetAssociationMixin<PlatformTrack, PlatformTrackId>;
|
|
49
|
+
createPlatformTrack!: Sequelize.BelongsToCreateAssociationMixin<PlatformTrack>;
|
|
50
|
+
// VersusPublishIssue belongsTo Versus via versusId
|
|
51
|
+
versu!: Versus;
|
|
52
|
+
getVersu!: Sequelize.BelongsToGetAssociationMixin<Versus>;
|
|
53
|
+
setVersu!: Sequelize.BelongsToSetAssociationMixin<Versus, VersusId>;
|
|
54
|
+
createVersu!: Sequelize.BelongsToCreateAssociationMixin<Versus>;
|
|
55
|
+
// VersusPublishIssue belongsTo VersusEntityKind via entityKindId
|
|
56
|
+
entityKind!: VersusEntityKind;
|
|
57
|
+
getEntityKind!: Sequelize.BelongsToGetAssociationMixin<VersusEntityKind>;
|
|
58
|
+
setEntityKind!: Sequelize.BelongsToSetAssociationMixin<VersusEntityKind, VersusEntityKindId>;
|
|
59
|
+
createEntityKind!: Sequelize.BelongsToCreateAssociationMixin<VersusEntityKind>;
|
|
60
|
+
|
|
61
|
+
static initModel(sequelize: Sequelize.Sequelize): typeof VersusPublishIssue {
|
|
62
|
+
return VersusPublishIssue.init({
|
|
63
|
+
id: {
|
|
64
|
+
type: DataTypes.UUID,
|
|
65
|
+
allowNull: false,
|
|
66
|
+
defaultValue: DataTypes.UUIDV4,
|
|
67
|
+
primaryKey: true
|
|
68
|
+
},
|
|
69
|
+
versusId: {
|
|
70
|
+
type: DataTypes.UUID,
|
|
71
|
+
allowNull: false,
|
|
72
|
+
references: {
|
|
73
|
+
model: 'versus',
|
|
74
|
+
key: 'id'
|
|
75
|
+
},
|
|
76
|
+
field: 'versus_id'
|
|
77
|
+
},
|
|
78
|
+
entityKindId: {
|
|
79
|
+
type: DataTypes.SMALLINT,
|
|
80
|
+
allowNull: false,
|
|
81
|
+
references: {
|
|
82
|
+
model: 'versus_entity_kind',
|
|
83
|
+
key: 'id'
|
|
84
|
+
},
|
|
85
|
+
field: 'entity_kind_id'
|
|
86
|
+
},
|
|
87
|
+
platformTrackId: {
|
|
88
|
+
type: DataTypes.UUID,
|
|
89
|
+
allowNull: true,
|
|
90
|
+
references: {
|
|
91
|
+
model: 'platform_track',
|
|
92
|
+
key: 'id'
|
|
93
|
+
},
|
|
94
|
+
field: 'platform_track_id'
|
|
95
|
+
},
|
|
96
|
+
platformAlbumId: {
|
|
97
|
+
type: DataTypes.UUID,
|
|
98
|
+
allowNull: true,
|
|
99
|
+
references: {
|
|
100
|
+
model: 'platform_album',
|
|
101
|
+
key: 'id'
|
|
102
|
+
},
|
|
103
|
+
field: 'platform_album_id'
|
|
104
|
+
},
|
|
105
|
+
platformArtistId: {
|
|
106
|
+
type: DataTypes.UUID,
|
|
107
|
+
allowNull: true,
|
|
108
|
+
references: {
|
|
109
|
+
model: 'platform_artist',
|
|
110
|
+
key: 'id'
|
|
111
|
+
},
|
|
112
|
+
field: 'platform_artist_id'
|
|
113
|
+
},
|
|
114
|
+
detail: {
|
|
115
|
+
type: DataTypes.TEXT,
|
|
116
|
+
allowNull: true
|
|
117
|
+
},
|
|
118
|
+
createdAt: {
|
|
119
|
+
type: DataTypes.DATE,
|
|
120
|
+
allowNull: false,
|
|
121
|
+
defaultValue: Sequelize.Sequelize.literal('CURRENT_TIMESTAMP'),
|
|
122
|
+
field: 'created_at'
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
sequelize,
|
|
126
|
+
tableName: 'versus_publish_issue',
|
|
127
|
+
schema: 'eb',
|
|
128
|
+
timestamps: false,
|
|
129
|
+
indexes: [
|
|
130
|
+
{
|
|
131
|
+
name: "idx_versus_publish_issue_versus",
|
|
132
|
+
fields: [
|
|
133
|
+
{ name: "versus_id" },
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "versus_publish_issue_pkey",
|
|
138
|
+
unique: true,
|
|
139
|
+
fields: [
|
|
140
|
+
{ name: "id" },
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
]
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|