UNPKG

@wepublish/api

Version:
173 lines 6.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DashboardSubscriptionService = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const client_1 = require("@prisma/client"); const assert_1 = require("assert"); let DashboardSubscriptionService = exports.DashboardSubscriptionService = class DashboardSubscriptionService { constructor(prisma) { this.prisma = prisma; } newSubscribers(start, end) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = yield this.prisma.subscription.findMany({ where: { startsAt: { gte: start, lt: end } }, orderBy: { startsAt: 'desc' }, include: { deactivation: true, memberPlan: { select: { name: true } } } }); return data.map(({ autoRenew, paidUntil, monthlyAmount, startsAt, deactivation, paymentPeriodicity, memberPlan: { name: memberPlan } }) => { var _a; return ({ startsAt, endsAt: (_a = deactivation === null || deactivation === void 0 ? void 0 : deactivation.date) !== null && _a !== void 0 ? _a : ((autoRenew && paidUntil) || undefined), renewsAt: (autoRenew && paidUntil) || undefined, monthlyAmount, paymentPeriodicity, reasonForDeactivation: deactivation === null || deactivation === void 0 ? void 0 : deactivation.reason, deactivationDate: deactivation === null || deactivation === void 0 ? void 0 : deactivation.createdAt, memberPlan }); }); }); } activeSubscribers() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = yield this.prisma.subscription.findMany({ where: { OR: [ { deactivation: null, paidUntil: { gte: new Date() } }, { deactivation: { date: { gte: new Date() } } } ] }, orderBy: { startsAt: 'desc' }, include: { deactivation: true, memberPlan: { select: { name: true } } } }); return data.map(({ autoRenew, paidUntil, monthlyAmount, startsAt, deactivation, paymentPeriodicity, memberPlan: { name: memberPlan } }) => { var _a; return ({ startsAt, endsAt: (_a = deactivation === null || deactivation === void 0 ? void 0 : deactivation.date) !== null && _a !== void 0 ? _a : ((autoRenew && paidUntil) || undefined), renewsAt: (autoRenew && paidUntil) || undefined, monthlyAmount, paymentPeriodicity, reasonForDeactivation: deactivation === null || deactivation === void 0 ? void 0 : deactivation.reason, deactivationDate: deactivation === null || deactivation === void 0 ? void 0 : deactivation.createdAt, memberPlan }); }); }); } renewingSubscribers(start, end) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = yield this.prisma.subscription.findMany({ where: { paidUntil: { gte: start, lt: end }, autoRenew: true, deactivation: null }, orderBy: { paidUntil: 'desc' }, include: { memberPlan: { select: { name: true } } } }); return data.map(({ monthlyAmount, startsAt, paidUntil, paymentPeriodicity, memberPlan: { name: memberPlan } }) => { (0, assert_1.ok)(paidUntil); return { startsAt, renewsAt: paidUntil, monthlyAmount, paymentPeriodicity, memberPlan }; }); }); } newDeactivations(start, end) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = yield this.prisma.subscription.findMany({ where: { deactivation: { createdAt: { gte: start, lt: end } } }, orderBy: { deactivation: { createdAt: 'desc' } }, include: { deactivation: true, memberPlan: { select: { name: true } } } }); return data.map(({ memberPlan: { name: memberPlan }, monthlyAmount, deactivation, startsAt, paymentPeriodicity }) => { (0, assert_1.ok)(deactivation); return { startsAt, endsAt: deactivation.date, reasonForDeactivation: deactivation.reason, deactivationDate: deactivation.createdAt, paymentPeriodicity, monthlyAmount, memberPlan }; }); }); } }; exports.DashboardSubscriptionService = DashboardSubscriptionService = tslib_1.__decorate([ (0, common_1.Injectable)(), tslib_1.__metadata("design:paramtypes", [client_1.PrismaClient]) ], DashboardSubscriptionService); //# sourceMappingURL=dashboard-subscription.service.js.map