sunpengfei
2025-08-18 176f8e56965624e9c33028a6af04f6ea5cc88e6c
FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs
@@ -1,4 +1,7 @@
using System;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -7,10 +10,15 @@
namespace FlexJobApi.Core
{
    /// <summary>
    /// 任务雇佣信息
    /// 任务人员信息
    /// </summary>
    public class TaskInfoUser : CommonEntity
    public class TaskInfoUser : CommonEntity, IEntityTypeBuilder<TaskInfoUser>
    {
        public TaskInfoUser()
        {
            Submits = [];
        }
        /// <summary>
        /// 任务Id
        /// </summary>
@@ -22,14 +30,14 @@
        public TaskInfo TaskInfo { get; set; }
        /// <summary>
        /// 用户信息Id
        /// 灵工Id
        /// </summary>
        public Guid UserId { get; set; }
        public Guid EnterpriseEmployeeId { get; set; }
        /// <summary>
        /// 用户信息
        /// 灵工
        /// </summary>
        public User User { get; set; }
        public EnterpriseEmployee EnterpriseEmployee { get; set; }
        /// <summary>
        /// 录用状态
@@ -42,38 +50,48 @@
        public DateTime? HireTime { get; set; }
        /// <summary>
        /// 灵工签约状态
        /// </summary>
        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
        /// <summary>
        /// 灵工签约时间
        /// </summary>
        public DateTime? UserSignContractTime { get; set; }
        /// <summary>
        /// 企业签约状态
        /// </summary>
        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
        /// <summary>
        /// 企业签约时间
        /// </summary>
        public DateTime? EnterpriseSignContractTime { get; set; }
        /// <summary>
        /// 电子合同
        /// </summary>
        public string ContractUrl { get; set; }
        /// <summary>
        /// 安排状态
        /// </summary>
        public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; }
        /// <summary>
        /// 安排状态
        /// 安排完成时间
        /// </summary>
        public DateTime? ArrangeTime { get; set; }
        /// <summary>
        /// 验收状态
        /// </summary>
        public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
        /// <summary>
        /// 验收完成时间
        /// </summary>
        public DateTime? CheckReceiveTime { get; set; }
        /// <summary>
        /// 最近提交时间
        /// </summary>
        public DateTime? LastSubmitTime { get; set; }
        /// <summary>
        /// 最近验收时间
        /// </summary>
        public DateTime? LastCheckReceiveTime { get; set; }
        /// <summary>
        /// 提交
        /// </summary>
        public List<TaskInfoUserSubmit> Submits { get; set; }
        public void Configure(EntityTypeBuilder<TaskInfoUser> entityBuilder, DbContext dbContext, Type dbContextLocator)
        {
            entityBuilder
                .HasOne(it => it.EnterpriseEmployee)
                .WithMany(it => it.TaskInfoUsers)
                .HasForeignKey(it => it.EnterpriseEmployeeId)
                .IsRequired()
                .OnDelete(DeleteBehavior.Restrict);
        }
    }
}