Files
baiyue-firstleg/firstleg/src/test/resources/architecture/firstleg-slice-dependencies.json
T

141 lines
6.8 KiB
JSON

{
"schemaVersion": 1,
"description": "Development-stage Firstleg slice dependency baseline. Existing edges may be removed; new edges require architecture review.",
"allowedSliceEdges": [
"booking-customs-trucking->inbound",
"booking-customs-trucking->measurement-pricing",
"booking-customs-trucking->outbound",
"booking-customs-trucking->pricebook-query",
"booking-customs-trucking->shared-technical",
"booking-customs-trucking->shipping-nodes",
"booking-customs-trucking->split-loading",
"customer-statistics->shared-technical",
"finance-integration->inbound",
"finance-integration->measurement-pricing",
"finance-integration->shared-technical",
"finance-integration->split-loading",
"inbound->measurement-pricing",
"inbound->outbound",
"inbound->shared-technical",
"inbound->split-loading",
"measurement-pricing->booking-customs-trucking",
"measurement-pricing->finance-integration",
"measurement-pricing->inbound",
"measurement-pricing->pricebook-query",
"measurement-pricing->shared-technical",
"outbound->booking-customs-trucking",
"outbound->shared-technical",
"outbound->shipping-nodes",
"outbound->split-loading",
"shared-technical->booking-customs-trucking",
"shared-technical->finance-integration",
"shared-technical->inbound",
"shared-technical->measurement-pricing",
"shared-technical->split-loading",
"shipping-nodes->booking-customs-trucking",
"shipping-nodes->inbound",
"shipping-nodes->shared-technical",
"shipping-nodes->split-loading",
"split-loading->booking-customs-trucking",
"split-loading->inbound",
"split-loading->outbound",
"split-loading->pricebook-query",
"split-loading->shared-technical"
],
"requiredClassLocations": {
"com.baiyue.firstleg.customerstatistics.adapter.in.web.PlatformCustomerTransitStatisticsController": "src/main/java/com/baiyue/firstleg/customerstatistics/adapter/in/web/PlatformCustomerTransitStatisticsController.java",
"com.baiyue.firstleg.customerstatistics.adapter.out.persistence.CustomerTransitStatisticsMapper": "src/main/java/com/baiyue/firstleg/customerstatistics/adapter/out/persistence/CustomerTransitStatisticsMapper.java",
"com.baiyue.firstleg.customerstatistics.application.CustomerTransitStatisticsService": "src/main/java/com/baiyue/firstleg/customerstatistics/application/CustomerTransitStatisticsService.java",
"com.baiyue.firstleg.customerstatistics.application.model.CustomerTransitStatisticsDtos": "src/main/java/com/baiyue/firstleg/customerstatistics/application/model/CustomerTransitStatisticsDtos.java",
"com.baiyue.firstleg.customerstatistics.application.port.out.CustomerTransitStatisticsReader": "src/main/java/com/baiyue/firstleg/customerstatistics/application/port/out/CustomerTransitStatisticsReader.java",
"com.baiyue.firstleg.pricebookquery.adapter.out.persistence.PriceBookQueryMapper": "src/main/java/com/baiyue/firstleg/pricebookquery/adapter/out/persistence/PriceBookQueryMapper.java",
"com.baiyue.firstleg.pricebookquery.application.PriceBookQueryService": "src/main/java/com/baiyue/firstleg/pricebookquery/application/PriceBookQueryService.java",
"com.baiyue.firstleg.pricebookquery.application.model.PriceBookQueryRows": "src/main/java/com/baiyue/firstleg/pricebookquery/application/model/PriceBookQueryRows.java",
"com.baiyue.firstleg.pricebookquery.application.port.in.PriceBookQueryUseCase": "src/main/java/com/baiyue/firstleg/pricebookquery/application/port/in/PriceBookQueryUseCase.java",
"com.baiyue.firstleg.pricebookquery.application.port.out.PriceBookQueryReader": "src/main/java/com/baiyue/firstleg/pricebookquery/application/port/out/PriceBookQueryReader.java"
},
"applicationDependencyRules": [
{
"packagePrefix": "com.baiyue.firstleg.customerstatistics.application",
"allowedInternalPrefix": "com.baiyue.firstleg.customerstatistics.application",
"forbiddenImportPrefixes": [
"org.springframework.web",
"org.apache.ibatis",
"com.baomidou.mybatisplus"
]
},
{
"packagePrefix": "com.baiyue.firstleg.pricebookquery.application",
"allowedInternalPrefix": "com.baiyue.firstleg.pricebookquery.application",
"forbiddenImportPrefixes": [
"org.springframework.web",
"org.apache.ibatis",
"com.baomidou.mybatisplus"
]
}
],
"sliceExposureRules": [
{
"slicePrefix": "com.baiyue.firstleg.pricebookquery.",
"allowedTargetPrefixes": [
"com.baiyue.firstleg.pricebookquery.application.model.",
"com.baiyue.firstleg.pricebookquery.application.port.in."
]
}
],
"sliceSpecificRules": {
"customer-statistics": {
"allowedOutgoing": [
"shared-technical"
],
"allowedIncoming": []
},
"pricebook-query": {
"allowedOutgoing": [],
"allowedIncoming": [
"booking-customs-trucking",
"measurement-pricing",
"split-loading"
]
}
},
"reviewedClassDependencies": [
{
"source": "com.baiyue.firstleg.controller.InternalOverseasContainerEventController",
"target": "com.baiyue.firstleg.service.OverseasInboundOrderDetainedConsumer",
"reason": "海外事件HTTP适配器按事件类型派发到暂扣消费者;入仓数据仍由消费者维护。"
},
{
"source": "com.baiyue.firstleg.loading.service.LoadingDeliveryService",
"target": "com.baiyue.firstleg.service.FbaPricingService",
"reason": "装柜实物完成时按真实分配刷新费用,调用既有计价应用服务,不读取计价持久化。"
},
{
"source": "com.baiyue.firstleg.service.LoadingListService",
"target": "com.baiyue.firstleg.domain.PriceBookChannelCatalog",
"reason": "分柜按当前有效渠道目录校验,复用纯领域目录,不访问价格簿实现。"
},
{
"source": "com.baiyue.firstleg.service.LoadingListService",
"target": "com.baiyue.firstleg.service.FbaPricingService",
"reason": "装柜分配变动触发既有计价服务按客户重算,费用冻结门槛保留在原服务。"
},
{
"source": "com.baiyue.firstleg.service.SmartLoadingService",
"target": "com.baiyue.firstleg.service.FbaPricingService",
"reason": "智能排柜分配后调用原计价服务守恒重算,不跨域修改费用表。"
}
],
"reviewedPackageCycles": [
{
"packages": [
"com.baiyue.firstleg.loading.bridge.service",
"com.baiyue.firstleg.loading.service",
"com.baiyue.firstleg.oceanbooking.service",
"com.baiyue.firstleg.service"
],
"reason": "既有全局service包混合了入仓暂扣、装柜费用与订舱文档的应用编排。本轮不拆分这些无关既有服务;仅冻结当前四包SCC,新增节点或第二环继续失败。价格簿查询切片仍必须独立无环。"
}
]
}