Files
startover/packages/domain/src/index.ts
T
Johngreen 16bd2cb92a feat: Re:Link MVP 초기 구현 - 도메인/서비스/프론트엔드 전체
- 모노레포 구조 (Turborepo + pnpm): @relink/domain, @relink/shared, @relink/infrastructure, @relink/database, @relink/web
- 도메인 레이어: 매장(store), 매칭(matching), 업체(vendor), 보조금(subsidy), 계약/에스크로(contract) TDD 완료 (158 단위 테스트)
- 서비스 레이어: 전 도메인 서비스 함수 + 통합 테스트 (58 테스트)
- 프론트엔드: Next.js 15 App Router, 13개 페이지 (사용자 6 + 관리자 7)
- 인프라: PostgreSQL 16 + PostGIS, Prisma ORM, Docker Compose, AuditLog + OutboxEvent 패턴
- .env 파일 포함 (로컬 개발 기본값만 포함, 실제 시크릿 없음)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:39:56 +09:00

101 lines
2.3 KiB
TypeScript

/**
* @relink/domain - Pure TypeScript domain layer
*
* Contains entities, value objects, and business rules.
* No external dependencies allowed.
*/
export type { Entity } from './entity.js';
export type { ValueObject } from './value-object.js';
// Store domain
export {
StoreLease,
StoreFacility,
createStoreDraft,
reviewStore,
publishStore,
filterStoreForViewer,
} from './store/index.js';
export type {
StoreLeaseInput,
StoreLeaseProps,
StoreFacilityInput,
StoreFacilityProps,
CreateStoreDraftInput,
StoreDraft,
RegionChecker,
IndustryChecker,
ReviewStoreInput,
ReviewStoreResult,
ReviewDecision,
ReviewableStatus,
PublishStoreInput,
PublishStoreResult,
StoreData,
ViewerContext,
FilteredStoreData,
} from './store/index.js';
// Matching domain
export { createMatchRequest, acceptMatchRequest, buildSearchDefaults } from './matching/index.js';
export type {
MatchType,
MatchSourceType,
CreateMatchRequestInput,
MatchRequestDraft,
MatchRequestStatus,
AcceptMatchRequestInput,
AcceptMatchRequestResult,
StoreSearchCriteria,
StoreSearchDefaults,
} from './matching/index.js';
// Subsidy domain
export { createSubsidyCase, advanceSubsidyToReady, reviewSubsidyCase } from './subsidy/index.js';
export type {
SubsidyCaseStatus,
ChecklistItemTemplate,
CreateSubsidyCaseInput,
SubsidyCaseDraft,
ChecklistItemStatus,
ChecklistItemState,
AdvanceToReadyInput,
AdvanceToReadyResult,
SubsidyReviewDecision,
ReviewSubsidyCaseInput,
ReviewSubsidyCaseResult,
} from './subsidy/index.js';
// Vendor domain
export {
applyVendorCertification,
approveVendorCertification,
isVendorSearchable,
filterVendorsForSearch,
} from './vendor/index.js';
export type {
VendorCertificationStatus,
VendorType,
ApplyVendorCertificationInput,
VendorCertificationApplication,
VendorCertificationDecision,
ApproveVendorCertificationInput,
ApproveVendorCertificationResult,
VendorSearchEntry,
} from './vendor/index.js';
// Contract domain
export { createContract, releaseEscrow, checkIdempotency, openDispute } from './contract/index.js';
export type {
ContractType,
CreateContractInput,
ContractDraft,
ReleaseEscrowInput,
ReleaseEscrowResult,
CheckIdempotencyInput,
IdempotencyCheckResult,
OpenDisputeInput,
OpenDisputeResult,
} from './contract/index.js';