using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
///
/// 任务人员信息
///
public class TaskInfoUser : CommonEntity, IEntityTypeBuilder
{
public TaskInfoUser()
{
Submits = [];
}
///
/// 任务Id
///
public Guid TaskInfoId { get; set; }
///
/// 任务
///
public TaskInfo TaskInfo { get; set; }
///
/// 灵工Id
///
public Guid EnterpriseEmployeeId { get; set; }
///
/// 灵工
///
public EnterpriseEmployee EnterpriseEmployee { get; set; }
///
/// 录用状态
///
public EnumTaskUserHireStatus HireStatus { get; set; }
///
/// 录用时间
///
public DateTime? HireTime { get; set; }
///
/// 安排状态
///
public EnumTaskUserArrangeStatus? ArrangeStatus { get; set; }
///
/// 安排完成时间
///
public DateTime? ArrangeTime { get; set; }
///
/// 验收状态
///
public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
///
/// 验收完成时间
///
public DateTime? CheckReceiveTime { get; set; }
///
/// 最近提交时间
///
public DateTime? LastSubmitTime { get; set; }
///
/// 最近验收时间
///
public DateTime? LastCheckReceiveTime { get; set; }
///
/// 所属银行
///
public string Bank { get; set; }
///
/// 开户支行名称
///
public string BankBranch { get; set; }
///
/// 收款人姓名
///
public string ReceiveName { get; set; }
///
/// 收款账户
///
public string ReceiveAccount { get; set; }
///
/// 结算金额
///
public decimal? SettlementAmount { get; set; }
///
/// 实发金额
///
public decimal? ActualSettlementAmount { get; set; }
///
/// 结算状态
///
public EnumTaskSettlementStatus? SettlementStatus { get; set; }
///
/// 结算时间
///
public DateTime? SettlementTime { get; set; }
///
/// 结算备注
///
public string SettlementRemark { get; set; }
///
/// 实际金额
///
public decimal ActualAmount { get; set; }
///
/// 提交
///
public List Submits { get; set; }
public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator)
{
entityBuilder
.HasOne(it => it.EnterpriseEmployee)
.WithMany(it => it.TaskInfoUsers)
.HasForeignKey(it => it.EnterpriseEmployeeId)
.IsRequired()
.OnDelete(DeleteBehavior.Restrict);
}
}
}