campus-errand/server/Models/Order.cs
18631081161 b359070a0e
All checks were successful
continuous-integration/drone/push Build is passing
聊天修改
2026-04-02 01:09:02 +08:00

91 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace CampusErrand.Models;
/// <summary>
/// 订单表
/// </summary>
public class Order
{
[Key]
public int Id { get; set; }
/// <summary>订单编号</summary>
[MaxLength(32)]
public string OrderNo { get; set; } = string.Empty;
/// <summary>单主用户 ID</summary>
public int OwnerId { get; set; }
/// <summary>跑腿用户 ID</summary>
public int? RunnerId { get; set; }
/// <summary>订单类型</summary>
public OrderType OrderType { get; set; }
/// <summary>订单状态</summary>
public OrderStatus Status { get; set; } = OrderStatus.Pending;
/// <summary>物品名称/要做的事情</summary>
[MaxLength(256)]
public string ItemName { get; set; } = string.Empty;
/// <summary>取货/代取地点</summary>
[MaxLength(256)]
public string? PickupLocation { get; set; }
/// <summary>送达地点</summary>
[MaxLength(256)]
public string DeliveryLocation { get; set; } = string.Empty;
/// <summary>备注信息</summary>
[MaxLength(512)]
public string? Remark { get; set; }
/// <summary>联系手机号</summary>
[MaxLength(20)]
public string Phone { get; set; } = string.Empty;
/// <summary>跑腿佣金</summary>
[Column(TypeName = "decimal(10,2)")]
public decimal Commission { get; set; }
/// <summary>商品总金额(万能帮/代购/美食街)</summary>
[Column(TypeName = "decimal(10,2)")]
public decimal? GoodsAmount { get; set; }
/// <summary>支付总金额</summary>
[Column(TypeName = "decimal(10,2)")]
public decimal TotalAmount { get; set; }
/// <summary>完成凭证图片</summary>
[MaxLength(512)]
public string? CompletionProof { get; set; }
/// <summary>是否已评价</summary>
public bool IsReviewed { get; set; }
/// <summary>下单时间</summary>
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
/// <summary>接单时间</summary>
public DateTime? AcceptedAt { get; set; }
/// <summary>完成时间</summary>
public DateTime? CompletedAt { get; set; }
/// <summary>IM 群组 ID接单时创建</summary>
[MaxLength(64)]
public string? ImGroupId { get; set; }
// 导航属性
[ForeignKey(nameof(OwnerId))]
public User? Owner { get; set; }
[ForeignKey(nameof(RunnerId))]
public User? Runner { get; set; }
public ICollection<FoodOrderItem> FoodOrderItems { get; set; } = [];
}