diff --git a/src/InterfaceForward.Domain/GlobalUsings.cs b/src/InterfaceForward.Domain/GlobalUsings.cs
index d6f38f7..2c0162e 100644
--- a/src/InterfaceForward.Domain/GlobalUsings.cs
+++ b/src/InterfaceForward.Domain/GlobalUsings.cs
@@ -1,4 +1,3 @@
// Global using directives
-global using Fake.DomainDrivenDesign;
-global using InterfaceForward.Domain.Enumerations;
\ No newline at end of file
+global using Fake.DomainDrivenDesign;
\ No newline at end of file
diff --git a/src/InterfaceForward.Domain/InterfaceForward.Domain.csproj b/src/InterfaceForward.Domain/InterfaceForward.Domain.csproj
index db60c9b..f551815 100644
--- a/src/InterfaceForward.Domain/InterfaceForward.Domain.csproj
+++ b/src/InterfaceForward.Domain/InterfaceForward.Domain.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderAggregate.cs b/src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderAggregate.cs
new file mode 100644
index 0000000..c306397
--- /dev/null
+++ b/src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderAggregate.cs
@@ -0,0 +1,40 @@
+using System;
+using Fake.DomainDrivenDesign.Entities.Auditing;
+
+namespace InterfaceForward.Domain.ServiceProviderAggregate;
+
+public class ServiceProviderAggregate(string name, string code, string description, string? flowCode = null)
+ : FullAuditedAggregate
+{
+ ///
+ /// 服务商名称
+ ///
+ public string Name { get; set; } = name;
+
+ ///
+ /// 服务商代码
+ ///
+ public string Code { get; set; } = code;
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; } = description;
+
+ ///
+ /// 流程代码
+ ///
+ public string? FlowCode { get; set; } = flowCode;
+
+ ///
+ /// 授权接口Code
+ ///
+ public string? AuthInterfaceCode { get; set; }
+
+ ///
+ /// 请求超时(s)
+ ///
+ public int Timeout { get; set; } = 20;
+
+
+}
\ No newline at end of file
diff --git a/src/InterfaceForward.Domain/Aggregates/InterfaceAggregate/InterfaceEntity.cs b/src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderInterfaceEntity.cs
similarity index 72%
rename from src/InterfaceForward.Domain/Aggregates/InterfaceAggregate/InterfaceEntity.cs
rename to src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderInterfaceEntity.cs
index 90cb9b5..d71efb0 100644
--- a/src/InterfaceForward.Domain/Aggregates/InterfaceAggregate/InterfaceEntity.cs
+++ b/src/InterfaceForward.Domain/ServiceProviderAggregate/ServiceProviderInterfaceEntity.cs
@@ -1,24 +1,28 @@
using System;
using Fake.DomainDrivenDesign.Entities.Auditing;
+using InterfaceForward.Domain.UpStreamInterfaceAggregate;
-namespace InterfaceForward.Domain.Aggregates.InterfaceAggregate;
+namespace InterfaceForward.Domain.ServiceProviderAggregate;
-public class InterfaceEntity: FullAuditedEntity
+public class ServiceProviderInterfaceEntity : FullAuditedEntity
{
public int ServiceProviderId { get; private set; }
-
+
public string Name { get; private set; }
-
- public ServiceType ServiceType { get; set; }
-
+
public string Code { get; private set; }
-
+
+ ///
+ /// 描述
+ ///
+ public string Description { get; set; }
+
public string RequestAddress { get; private set; }
-
+
public string RequestMethod { get; private set; }
-
+
public RequestContentType RequestContentType { get; private set; }
-
+
public ResponseContentType ResponseContentType { get; private set; }
public string FlowCode { get; private set; }
@@ -29,11 +33,14 @@ public class InterfaceEntity: FullAuditedEntity
/// 接口单次请求数量上限,默认是1,表示不支持批量处理
///
public int Limit { get; private set; } = 1;
-
+
+ ///
+ /// 默认0,无限制
+ ///
public int Qps { get; private set; }
-
+
///
/// 映射后的数据类型
///
public ParameterType MappedType { get; set; } = ParameterType.Object;
-}
+}
\ No newline at end of file
diff --git a/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/InterfaceMapEntity.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/InterfaceMapEntity.cs
new file mode 100644
index 0000000..91804c9
--- /dev/null
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/InterfaceMapEntity.cs
@@ -0,0 +1,42 @@
+using System;
+using Fake.DomainDrivenDesign.Entities.Auditing;
+
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
+
+///
+/// 上游接口映射服务商接口(1:N)
+///
+public class InterfaceMapEntity: CreateAuditedEntity, ISoftDelete
+{
+ ///
+ /// 上游接口代码
+ ///
+ public string UpStreamInterfaceCode { get; private set; }
+
+ ///
+ /// 映射服务商代码
+ ///
+ public string ServiceProviderCode { get; private set; }
+
+ ///
+ /// 映射服务商接口代码
+ ///
+ public string ServiceProviderInterfaceCode { get; private set; }
+
+ ///
+ /// 当前线上版本
+ ///
+ public string PublishedVersion { get; set; }
+
+ ///
+ /// 前置脚本
+ ///
+ public string PrefixScript { get; set; }
+
+ ///
+ /// 后置脚本
+ ///
+ public string PostfixScript { get; set; }
+
+ public bool IsDeleted { get; }
+}
\ No newline at end of file
diff --git a/src/InterfaceForward.Domain/Enumerations/ParameterType.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ParameterType.cs
similarity index 88%
rename from src/InterfaceForward.Domain/Enumerations/ParameterType.cs
rename to src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ParameterType.cs
index a542b7d..e37daab 100644
--- a/src/InterfaceForward.Domain/Enumerations/ParameterType.cs
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ParameterType.cs
@@ -1,4 +1,4 @@
-namespace InterfaceForward.Domain.Enumerations;
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
public class ParameterType(int id, string name) : Enumeration(id, name)
{
diff --git a/src/InterfaceForward.Domain/Enumerations/RequestContentType.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/RequestContentType.cs
similarity index 83%
rename from src/InterfaceForward.Domain/Enumerations/RequestContentType.cs
rename to src/InterfaceForward.Domain/UpStreamInterfaceAggregate/RequestContentType.cs
index 7e2d332..c6d2b92 100644
--- a/src/InterfaceForward.Domain/Enumerations/RequestContentType.cs
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/RequestContentType.cs
@@ -1,4 +1,4 @@
-namespace InterfaceForward.Domain.Enumerations;
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
public class RequestContentType(int id, string name) : Enumeration(id, name)
{
diff --git a/src/InterfaceForward.Domain/Enumerations/ResponseContentType.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ResponseContentType.cs
similarity index 57%
rename from src/InterfaceForward.Domain/Enumerations/ResponseContentType.cs
rename to src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ResponseContentType.cs
index 006bc4b..c0a8aac 100644
--- a/src/InterfaceForward.Domain/Enumerations/ResponseContentType.cs
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ResponseContentType.cs
@@ -1,4 +1,4 @@
-namespace InterfaceForward.Domain.Enumerations;
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
public class ResponseContentType(int id, string name) : Enumeration(id, name)
{
diff --git a/src/InterfaceForward.Domain/Enumerations/ServiceType.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ServiceType.cs
similarity index 75%
rename from src/InterfaceForward.Domain/Enumerations/ServiceType.cs
rename to src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ServiceType.cs
index 727e0ff..ed7bf46 100644
--- a/src/InterfaceForward.Domain/Enumerations/ServiceType.cs
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/ServiceType.cs
@@ -1,4 +1,4 @@
-namespace InterfaceForward.Domain.Enumerations;
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
public class ServiceType(int id, string name) : Enumeration(id, name)
{
diff --git a/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/UpStreamInterfaceAggregate.cs b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/UpStreamInterfaceAggregate.cs
new file mode 100644
index 0000000..7a7124d
--- /dev/null
+++ b/src/InterfaceForward.Domain/UpStreamInterfaceAggregate/UpStreamInterfaceAggregate.cs
@@ -0,0 +1,16 @@
+using System;
+using Fake.DomainDrivenDesign.Entities.Auditing;
+
+namespace InterfaceForward.Domain.UpStreamInterfaceAggregate;
+
+public class UpStreamInterfaceAggregate(string name, string code) : FullAuditedAggregate
+{
+ public string Name { get; private set; } = name;
+
+ public string Code { get; private set; } = code;
+
+ ///
+ /// 描述
+ ///
+ public string? Description { get; set; }
+}