xpeditis2.0/apps/backend/src/domain/ports/out/subscription.repository.ts
David d65cb721b5
Some checks are pending
CD Production (Hetzner k3s) / Promote Images (preprod → prod) (push) Waiting to run
CD Production (Hetzner k3s) / Deploy to k3s (xpeditis-prod) (push) Blocked by required conditions
CD Production (Hetzner k3s) / Smoke Tests (push) Blocked by required conditions
CD Production (Hetzner k3s) / Deployment Summary (push) Blocked by required conditions
CD Production (Hetzner k3s) / Notify Success (push) Blocked by required conditions
CD Production (Hetzner k3s) / Notify Failure (push) Blocked by required conditions
chore: sync full codebase from cicd branch
Aligns main with the complete application codebase (cicd branch).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 12:56:44 +02:00

47 lines
1.1 KiB
TypeScript

/**
* 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<Subscription>;
/**
* Find a subscription by its ID
*/
findById(id: string): Promise<Subscription | null>;
/**
* Find a subscription by organization ID
*/
findByOrganizationId(organizationId: string): Promise<Subscription | null>;
/**
* Find a subscription by Stripe subscription ID
*/
findByStripeSubscriptionId(stripeSubscriptionId: string): Promise<Subscription | null>;
/**
* Find a subscription by Stripe customer ID
*/
findByStripeCustomerId(stripeCustomerId: string): Promise<Subscription | null>;
/**
* Find all subscriptions
*/
findAll(): Promise<Subscription[]>;
/**
* Delete a subscription
*/
delete(id: string): Promise<void>;
}