feat: Initial payment implementation

This commit is contained in:
Faruk AYDIN
2023-03-05 17:12:46 +01:00
parent 63f8fc266d
commit 5e18ef5830
10 changed files with 268 additions and 4 deletions

View File

@@ -0,0 +1,52 @@
import Base from './base';
import User from './user';
class PaymentPlan extends Base {
id!: string;
name!: string;
taskCount: number;
userId!: string;
stripeCustomerId!: string;
stripeSubscriptionId!: string;
currentPeriodStartedAt!: string;
currentPeriodEndsAt!: string;
static tableName = 'payment_plans';
static jsonSchema = {
type: 'object',
required: [
'name',
'taskCount',
'userId',
'stripeCustomerId',
'stripeSubscriptionId',
'currentPeriodStartedAt',
'currentPeriodEndsAt',
],
properties: {
id: { type: 'string', format: 'uuid' },
name: { type: 'string' },
taskCount: { type: 'integer' },
userId: { type: 'string', format: 'uuid' },
stripeCustomerId: { type: 'string' },
stripeSubscriptionId: { type: 'string' },
currentPeriodStartedAt: { type: 'string' },
currentPeriodEndsAt: { type: 'string' },
},
};
static relationMappings = () => ({
user: {
relation: Base.BelongsToOneRelation,
modelClass: User,
join: {
from: 'payment_plans.user_id',
to: 'users.id',
},
},
});
}
export default PaymentPlan;