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