/** * Subscription Repository Port * * Interface for subscription persistence operations. */ import { Subscription } from '../../entities/subscription.entity'; export const SUBSCRIPTION_REPOSITORY = 'SUBSCRIPTION_REPOSITORY'; export interface SubscriptionRepository { /** * Save a subscription (create or update) */ save(subscription: Subscription): Promise; /** * Find a subscription by its ID */ findById(id: string): Promise; /** * Find a subscription by organization ID */ findByOrganizationId(organizationId: string): Promise; /** * Find a subscription by Stripe subscription ID */ findByStripeSubscriptionId(stripeSubscriptionId: string): Promise; /** * Find a subscription by Stripe customer ID */ findByStripeCustomerId(stripeCustomerId: string): Promise; /** * Find all subscriptions */ findAll(): Promise; /** * Delete a subscription */ delete(id: string): Promise; }