xpeditis2.0/apps/backend/src/domain/ports/out/carrier.repository.ts
David ee38ee6961
Some checks failed
CI/CD Pipeline / Integration Tests (push) Blocked by required conditions
CI/CD Pipeline / Deployment Summary (push) Blocked by required conditions
CI/CD Pipeline / Backend - Build, Test & Push (push) Failing after 2m11s
CI/CD Pipeline / Frontend - Build, Test & Push (push) Has been cancelled
fix: add missing domain ports files that were gitignored
Root cause: The .gitignore had 'out/' which was ignoring ALL directories
named 'out', including 'src/domain/ports/out/' which contains critical
port interfaces for hexagonal architecture.

Changes:
- Modified .gitignore to only ignore Next.js output directories
- Added all 17 missing files from src/domain/ports/out/
  - audit-log.repository.ts
  - booking.repository.ts
  - cache.port.ts
  - carrier-connector.port.ts
  - carrier.repository.ts
  - csv-booking.repository.ts
  - csv-rate-loader.port.ts
  - email.port.ts
  - index.ts
  - notification.repository.ts
  - organization.repository.ts
  - pdf.port.ts
  - port.repository.ts
  - rate-quote.repository.ts
  - storage.port.ts
  - user.repository.ts
  - webhook.repository.ts

This resolves all "Cannot find module '@domain/ports/out/*'" TypeScript errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 01:50:05 +01:00

63 lines
1.2 KiB
TypeScript

/**
* 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<Carrier>;
/**
* Save multiple carrier entities
*/
saveMany(carriers: Carrier[]): Promise<Carrier[]>;
/**
* Find carrier by ID
*/
findById(id: string): Promise<Carrier | null>;
/**
* Find carrier by carrier code
*/
findByCode(code: string): Promise<Carrier | null>;
/**
* Find carrier by SCAC (Standard Carrier Alpha Code)
*/
findByScac(scac: string): Promise<Carrier | null>;
/**
* Find all active carriers
*/
findAllActive(): Promise<Carrier[]>;
/**
* Find all carriers that support API integration
*/
findWithApiSupport(): Promise<Carrier[]>;
/**
* Find all carriers (including inactive)
*/
findAll(): Promise<Carrier[]>;
/**
* Update a carrier entity
*/
update(carrier: Carrier): Promise<Carrier>;
/**
* Delete carrier by ID
*/
deleteById(id: string): Promise<void>;
}