import type { NewPromotion, Promotion, PromotionDiscount } from './promotion.js'; export interface PromotionService { create(input: NewPromotion): Promise; calculateDiscount(code: string, cartTotalCents: number, now?: Date): Promise; validateCode(code: string, now?: Date): Promise; list(): Promise; update(code: string, patch: Partial): Promise; delete(code: string): Promise; } export interface PromotionRepository { findByCode(code: string): Promise; create(input: NewPromotion): Promise; findAll(): Promise; update(code: string, patch: Partial): Promise; delete(code: string): Promise; }