WellNuo/services/subscription.ts
Sergei fe4ff1a932 Simplify DB schema (name/address single fields) + subscription flow
Database:
- Simplified beneficiary schema: single `name` field instead of first_name/last_name
- Single `address` field instead of 5 separate address columns
- Added migration 008_update_notification_settings.sql

Backend:
- Updated all beneficiaries routes for new schema
- Fixed admin routes for simplified fields
- Updated notification settings routes
- Improved stripe and webhook handlers

Frontend:
- Updated all forms to use single name/address fields
- Added new equipment-status and purchase screens
- Added BeneficiaryDetailController service
- Added subscription service
- Improved navigation and auth flow
- Various UI improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 10:35:15 -08:00

24 lines
764 B
TypeScript

import type { BeneficiarySubscription } from '@/types';
export const isSubscriptionActive = (
subscription?: BeneficiarySubscription
): boolean => {
return subscription?.status === 'active' ||
subscription?.status === 'expiring_soon' ||
subscription?.status === 'trialing';
};
export const isSubscriptionExpiringSoon = (
subscription?: BeneficiarySubscription
): boolean => {
if (!subscription) return false;
if (subscription.status === 'expiring_soon') return true;
if (!subscription.cancelAtPeriodEnd || !subscription.endDate) return false;
const endTime = new Date(subscription.endDate).getTime();
if (Number.isNaN(endTime)) return false;
const daysLeft = (endTime - Date.now()) / (1000 * 60 * 60 * 24);
return daysLeft <= 7;
};