sunpengfei
2025-08-08 c69ab569de2794952a864ba2a855b4bc395d4972
FlexJobApi.Core/Entities/Tasks/TaskInfo.cs
@@ -1,6 +1,10 @@
using System;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -10,7 +14,7 @@
    /// <summary>
    /// 任务信息
    /// </summary>
    public class TaskInfo : CommonEntity
    public class TaskInfo : CommonEntity, IEntityTypeBuilder<TaskInfo>
    {
        public TaskInfo()
        {
@@ -29,13 +33,18 @@
        public Enterprise Enterprise { get; set; }
        /// <summary>
        /// 任务单号
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 任务名称
        /// </summary>
        [Required]
        public string Name { get; set; }
        /// <summary>
        /// 计费方式
        /// 结算周期
        /// </summary>
        public EnumBillingMethod BillingMethod { get; set; }
@@ -75,19 +84,45 @@
        public List<TaskInfoCredentialLimit> CredentialLimits { get; set; }
        /// <summary>
        /// 任务地点所属区域Id
        /// 任务地点所属省份编号
        /// </summary>
        public Guid CityId { get; set; }
        public string ProvinceCode { get; set; }
        /// <summary>
        /// 任务地点所属区域
        /// 任务地点所属省份
        /// </summary>
        public DictionaryData Province { get; set; }
        /// <summary>
        /// 任务地点所属城市编号
        /// </summary>
        public string CityCode { get; set; }
        /// <summary>
        /// 任务地点所属城市
        /// </summary>
        public DictionaryData City { get; set; }
        /// <summary>
        /// 任务地点名称
        /// </summary>
        public string AddressName { get; set; }
        /// <summary>
        /// 任务地点详细地址
        /// </summary>
        public string Address { get; set; }
        public string AddressDetail { get; set; }
        /// <summary>
        /// 经度
        /// </summary>
        [Column(TypeName = "decimal(18,6)")]
        public decimal? Longitude { get; set; }
        /// <summary>
        /// 纬度
        /// </summary>
        public decimal? Latitude { get; set; }
        /// <summary>
        /// 任务开始时间
@@ -98,5 +133,51 @@
        /// 任务结束时间
        /// </summary>
        public DateTime EndTime { get; set; }
        /// <summary>
        /// 任务状态
        /// </summary>
        public EnumTaskStatus Status { get; set; }
        /// <summary>
        /// 发布状态
        /// </summary>
        public EnumTaskReleaseStatus ReleaseStatus { get; set; }
        /// <summary>
        /// 验收状态
        /// </summary>
        public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
        /// <summary>
        /// 结算状态
        /// </summary>
        public EnumTaskSettlementStatus? SettlementStatus { get; set; }
        /// <summary>
        /// 推荐状态
        /// </summary>
        public EnumTaskRecommendStatus RecommendStatus { get; set; }
        /// <summary>
        /// 用户
        /// </summary>
        public List<TaskInfoUser> Users { get; set; }
        public void Configure(EntityTypeBuilder<TaskInfo> entityBuilder, DbContext dbContext, Type dbContextLocator)
        {
            entityBuilder
                .HasOne(it => it.Province)
                .WithMany()
                .HasForeignKey(it => it.ProvinceCode)
                .HasPrincipalKey(it => it.Code)
                .OnDelete(DeleteBehavior.Restrict);
            entityBuilder
                .HasOne(it => it.City)
                .WithMany()
                .HasForeignKey(it => it.CityCode)
                .HasPrincipalKey(it => it.Code)
                .OnDelete(DeleteBehavior.Restrict);
        }
    }
}