Skip to content

Commit ece2a0e

Browse files
authored
Merge pull request #1 from podverse/v5-develop
Update to 5.1.16-alpha
2 parents e09c261 + 901a179 commit ece2a0e

19 files changed

+609
-34
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "podverse-orm",
3-
"version": "5.1.15-develop",
3+
"version": "5.1.16-develop",
44
"description": "",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
@@ -15,9 +15,6 @@
1515
},
1616
"author": "",
1717
"license": "AGPLv3",
18-
"overrides": {
19-
"fast-xml-parser": "^4.1.2"
20-
},
2118
"dependencies": {
2219
"async-mutex": "^0.5.0",
2320
"bcrypt": "^6.0.0",

src/config/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,12 @@ export const config = {
1515
level: process.env.LOG_LEVEL || 'info',
1616
dir: process.env.LOG_DIR || 'logs',
1717
timer: process.env.LOG_TIMER === 'true',
18+
},
19+
defaults: {
20+
account: {
21+
settings: {
22+
locale: process.env.DEFAULT_ACCOUNT_SETTINGS_LOCALE || 'en-US',
23+
}
24+
}
1825
}
1926
};

src/db/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,11 @@ import { StatsTrackEventAccount } from "@orm/entities/stats/statsTrackEventAccou
9898
import { StatsTrackEventClip } from "@orm/entities/stats/statsTrackEventClip";
9999
import { StatsTrackEventItem } from "@orm/entities/stats/statsTrackEventItem";
100100
import { StatsTrackEventPlaylist } from "@orm/entities/stats/statsTrackEventPlaylist";
101+
import { AccountNotificationChannelType } from "@orm/entities/account/accountNotificationChannelType";
102+
import { AccountSettings } from "@orm/entities/account/accountSettings/accountSettings";
103+
import { AccountSettingsNotification } from "@orm/entities/account/accountSettings/accountSettingsNotification";
104+
import { AccountSettingsNotificationType } from "@orm/entities/account/accountSettings/accountSettingsNotificationType";
105+
import { AccountSettingsLocale } from "@orm/entities/account/accountSettings/accountSettingsLocale";
101106

102107
const commonConfig: DataSourceOptions = {
103108
type: "postgres",
@@ -121,9 +126,14 @@ const commonConfig: DataSourceOptions = {
121126
AccountMembership,
122127
AccountMembershipStatus,
123128
AccountNotificationChannel,
129+
AccountNotificationChannelType,
124130
AccountPayPalOrder,
125131
AccountProfile,
126132
AccountResetPassword,
133+
AccountSettings,
134+
AccountSettingsLocale,
135+
AccountSettingsNotification,
136+
AccountSettingsNotificationType,
127137
AccountUpDevice,
128138
AccountVerification,
129139
Category,

src/entities/account/account.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { AccountResetPassword } from './accountResetPassword';
1616
import { AccountUpDevice } from './accountUPDevice';
1717
import { AccountVerification } from './accountVerification';
1818
import { generateRandomIdText } from '@orm/lib/nanoid';
19+
import { AccountSettings } from './accountSettings/accountSettings';
1920

2021
@Entity()
2122
export class Account {
@@ -71,6 +72,9 @@ export class Account {
7172
@OneToOne(() => AccountResetPassword, accountResetPassword => accountResetPassword.account)
7273
account_reset_password!: AccountResetPassword;
7374

75+
@OneToOne(() => AccountSettings, accountSettings => accountSettings.account, { cascade: ['insert'] })
76+
account_settings!: AccountSettings;
77+
7478
@OneToMany(() => AccountUpDevice, accountUpDevice => accountUpDevice.account)
7579
account_up_devices!: AccountUpDevice[];
7680

src/entities/account/accountFCMDevice.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
1-
import { DATABASE_CONSTANTS } from 'podverse-helpers';
2-
import { Entity, Column, ManyToOne, JoinColumn, PrimaryGeneratedColumn } from 'typeorm';
1+
import { DATABASE_CONSTANTS, AccountFCMDevicePlatformEnum } from 'podverse-helpers';
2+
import { Entity, Column, ManyToOne, JoinColumn, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm';
33
import { Account } from '@orm/entities/account/account';
44

55
@Entity()
66
export class AccountFCMDevice {
77
@PrimaryGeneratedColumn()
88
id!: number;
99

10-
@Column({ type: 'varchar', unique: true, length: DATABASE_CONSTANTS.varchar_fcm_token })
10+
@Column({ type: 'varchar', length: DATABASE_CONSTANTS.varchar_fcm_token, unique: true })
1111
fcm_token!: string;
1212

13+
@Column({ type: 'varchar', length: DATABASE_CONSTANTS.varchar_guid, unique: true })
14+
installation_id!: string;
15+
1316
@Column()
1417
account_id!: number;
1518

19+
@Column({ type: 'enum', enum: AccountFCMDevicePlatformEnum })
20+
platform!: AccountFCMDevicePlatformEnum;
21+
22+
@Column({ type: 'varchar', length: DATABASE_CONSTANTS.varchar_locale })
23+
locale!: string;
24+
25+
@CreateDateColumn({ name: 'created_at', type: 'timestamp' })
26+
created_at!: Date;
27+
28+
@UpdateDateColumn({ name: 'updated_at', type: 'timestamp' })
29+
updated_at!: Date;
30+
1631
@ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
1732
@JoinColumn({ name: 'account_id' })
1833
account!: Account;
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
import { Entity, PrimaryColumn, ManyToOne, JoinColumn } from 'typeorm';
1+
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, OneToMany, Unique } from 'typeorm';
22
import { Account } from '@orm/entities/account/account';
33
import { Channel } from '@orm/entities/channel/channel';
4+
import { AccountNotificationChannelType } from './accountNotificationChannelType';
45

56
@Entity()
7+
@Unique(['channel_id', 'account_id'])
68
export class AccountNotificationChannel {
7-
@PrimaryColumn()
9+
@PrimaryGeneratedColumn()
10+
id!: number;
11+
12+
@Column()
813
channel_id!: number;
914

10-
@PrimaryColumn()
15+
@Column()
1116
account_id!: number;
1217

1318
@ManyToOne(() => Channel, channel => channel.id, { onDelete: 'CASCADE' })
@@ -17,4 +22,7 @@ export class AccountNotificationChannel {
1722
@ManyToOne(() => Account, account => account.id, { onDelete: 'CASCADE' })
1823
@JoinColumn({ name: 'account_id' })
1924
account!: Account;
25+
26+
@OneToMany(() => AccountNotificationChannelType, accountNotificationChannelType => accountNotificationChannelType.account_notification_channel)
27+
account_notification_channel_types!: AccountNotificationChannelType[];
2028
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { AccountNotificationTypeEnum } from 'podverse-helpers';
2+
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
3+
import { AccountNotificationChannel } from '@orm/entities/account/accountNotificationChannel';
4+
5+
@Entity()
6+
export class AccountNotificationChannelType {
7+
@PrimaryGeneratedColumn()
8+
id!: number;
9+
10+
@Column({ type: 'enum', enum: AccountNotificationTypeEnum })
11+
type!: AccountNotificationTypeEnum;
12+
13+
@ManyToOne(
14+
() => AccountNotificationChannel,
15+
accountNotificationChannel => accountNotificationChannel.account_notification_channel_types,
16+
{ onDelete: 'CASCADE' }
17+
)
18+
@JoinColumn({ name: 'account_notification_channel_id' })
19+
account_notification_channel!: AccountNotificationChannel;
20+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Entity, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne } from 'typeorm';
2+
import { Account } from '@orm/entities/account/account';
3+
import { AccountSettingsLocale } from './accountSettingsLocale';
4+
import { AccountSettingsNotification } from './accountSettingsNotification';
5+
6+
@Entity()
7+
export class AccountSettings {
8+
@PrimaryGeneratedColumn()
9+
id!: number;
10+
11+
@Column({ name: 'account_id', unique: true })
12+
account_id!: number;
13+
14+
@OneToOne(() => Account, account => account.account_settings, { onDelete: 'CASCADE' })
15+
@JoinColumn({ name: 'account_id' })
16+
account!: Account;
17+
18+
@OneToOne(() => AccountSettingsLocale, accountSettingsLocale => accountSettingsLocale.account_settings, { cascade: ['insert'] })
19+
account_settings_locale!: AccountSettingsLocale;
20+
21+
@OneToOne(() => AccountSettingsNotification, accountSettingsNotification => accountSettingsNotification.account_settings, { cascade: ['insert'] })
22+
account_settings_notification!: AccountSettingsNotification;
23+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm';
2+
import { AccountSettings } from './accountSettings';
3+
import { DATABASE_CONSTANTS } from 'podverse-helpers';
4+
5+
@Entity()
6+
export class AccountSettingsLocale {
7+
@PrimaryGeneratedColumn()
8+
id!: number;
9+
10+
@Column({ name: 'account_settings_id', unique: true })
11+
account_settings_id!: number;
12+
13+
@OneToOne(() => AccountSettings, accountSettings => accountSettings.account_settings_locale, { onDelete: 'CASCADE' })
14+
@JoinColumn({ name: 'account_settings_id' })
15+
account_settings!: AccountSettings;
16+
17+
@Column({ type: 'varchar', length: DATABASE_CONSTANTS.varchar_locale, default: 'en-US' })
18+
locale!: string;
19+
}

0 commit comments

Comments
 (0)