From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Aging.Infrastructure/Contracts/ResourceReservation.cs |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/Aging.Infrastructure/Contracts/ResourceReservation.cs b/Aging.Infrastructure/Contracts/ResourceReservation.cs
new file mode 100644
index 0000000..994ed54
--- /dev/null
+++ b/Aging.Infrastructure/Contracts/ResourceReservation.cs
@@ -0,0 +1,78 @@
+using System;
+
+namespace Aging.Infrastructure.Contracts
+{
+    /// <summary>
+    /// 棰勭害鐘舵�佹灇涓�
+    /// </summary>
+    public enum ReservationState
+    {
+        /// <summary>
+        /// 娲昏穬鐘舵��
+        /// </summary>
+        Active,
+
+        /// <summary>
+        /// 宸查噴鏀�
+        /// </summary>
+        Released,
+
+        /// <summary>
+        /// 鍐茬獊鐘舵��
+        /// </summary>
+        Conflicted
+    }
+
+    /// <summary>
+    /// 闀挎湡棰勭害瀹炰綋锛岃〃绀哄鏌愪釜纭欢璧勬簮鐨勬寔涔呭崰鐢ㄣ��
+    /// 棰勭害鏈熼棿锛屽叾浠栨墍鏈夎�呮棤娉曡幏鍙栬璧勬簮銆�
+    /// </summary>
+    public sealed class ResourceReservation
+    {
+        /// <summary>
+        /// 棰勭害鍞竴鏍囪瘑
+        /// </summary>
+        public string ReservationId { get; }
+
+        /// <summary>
+        /// 琚绾︾殑璧勬簮閿�
+        /// </summary>
+        public ResourceKey Resource { get; }
+
+        /// <summary>
+        /// 棰勭害鎵�鏈夎�呬护鐗�
+        /// </summary>
+        public ResourceOwnerToken Owner { get; }
+
+        /// <summary>
+        /// 棰勭害鐘舵��
+        /// </summary>
+        public ReservationState State { get; set; }
+
+        /// <summary>
+        /// 棰勭害鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime ReservedAt { get; }
+
+        /// <summary>
+        /// 棰勭害鎻忚堪锛堝彲閫夛級
+        /// </summary>
+        public string? Description { get; set; }
+
+        /// <summary>
+        /// 鍒濆鍖栬祫婧愰绾﹀疄渚�
+        /// </summary>
+        /// <param name="resource">璧勬簮閿�</param>
+        /// <param name="owner">鎵�鏈夎�呬护鐗�</param>
+        /// <param name="description">棰勭害鎻忚堪锛堝彲閫夛級</param>
+        public ResourceReservation(ResourceKey resource, ResourceOwnerToken owner, string? description = null)
+        {
+            ReservationId = Guid.NewGuid().ToString();
+            Resource = resource ?? throw new ArgumentNullException(nameof(resource));
+            Owner = owner ?? throw new ArgumentNullException(nameof(owner));
+            State = ReservationState.Active;
+            ReservedAt = DateTime.UtcNow;
+            Description = description;
+        }
+    }
+}

--
Gitblit v1.9.1