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
Aligns main with the complete application codebase (cicd branch). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47 lines
1.1 KiB
TypeScript
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>;
|
|
}
|