/** * Carrier Repository Port * * Defines the interface for Carrier persistence operations. * This is a secondary port (output port) in hexagonal architecture. */ import { Carrier } from '../../entities/carrier.entity'; export const CARRIER_REPOSITORY = 'CarrierRepository'; export interface CarrierRepository { /** * Save a carrier entity */ save(carrier: Carrier): Promise; /** * Save multiple carrier entities */ saveMany(carriers: Carrier[]): Promise; /** * Find carrier by ID */ findById(id: string): Promise; /** * Find carrier by carrier code */ findByCode(code: string): Promise; /** * Find carrier by SCAC (Standard Carrier Alpha Code) */ findByScac(scac: string): Promise; /** * Find all active carriers */ findAllActive(): Promise; /** * Find all carriers that support API integration */ findWithApiSupport(): Promise; /** * Find all carriers (including inactive) */ findAll(): Promise; /** * Update a carrier entity */ update(carrier: Carrier): Promise; /** * Delete carrier by ID */ deleteById(id: string): Promise; }