16bd2cb92a
- 모노레포 구조 (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>
101 lines
2.3 KiB
TypeScript
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';
|