Feature/setup subscription with stripe (#178)

* Set up stripe for subscriptions

* Update permissions and add discount

* Update changelog
This commit is contained in:
Thomas
2021-06-21 20:03:36 +02:00
committed by GitHub
parent 373a2015c0
commit ad00cd9d81
30 changed files with 453 additions and 81 deletions

View File

@@ -1,6 +1,7 @@
import { Currency } from '@prisma/client';
import { Statistics } from './statistics.interface';
import { Subscription } from './subscription.interface';
export interface InfoItem {
currencies: Currency[];
@@ -13,4 +14,5 @@ export interface InfoItem {
};
platforms: { id: string; name: string }[];
statistics: Statistics;
subscriptions: Subscription[];
}

View File

@@ -0,0 +1,6 @@
export interface Subscription {
coupon?: number;
couponId?: string;
price: number;
priceId: string;
}

View File

@@ -1,7 +1,7 @@
import { Currency, ViewMode } from '@prisma/client';
export interface UserSettings {
baseCurrency: Currency;
baseCurrency?: Currency;
locale: string;
viewMode: ViewMode;
viewMode?: ViewMode;
}

View File

@@ -3,6 +3,7 @@ import { Account, Settings, User } from '@prisma/client';
export type UserWithSettings = User & {
Account: Account[];
permissions?: string[];
Settings: Settings;
subscription?: {
expiresAt?: Date;

View File

@@ -21,7 +21,8 @@ export const permissions = {
updateAccount: 'updateAccount',
updateAuthDevice: 'updateAuthDevice',
updateOrder: 'updateOrder',
updateUserSettings: 'updateUserSettings'
updateUserSettings: 'updateUserSettings',
updateViewMode: 'updateViewMode'
};
export function hasPermission(
@@ -46,7 +47,8 @@ export function getPermissions(aRole: Role): string[] {
permissions.updateAccount,
permissions.updateAuthDevice,
permissions.updateOrder,
permissions.updateUserSettings
permissions.updateUserSettings,
permissions.updateViewMode
];
case 'DEMO':
@@ -62,7 +64,8 @@ export function getPermissions(aRole: Role): string[] {
permissions.updateAccount,
permissions.updateAuthDevice,
permissions.updateOrder,
permissions.updateUserSettings
permissions.updateUserSettings,
permissions.updateViewMode
];
default: