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;
|
|
namespace FlexJobApi.Core
|
{
|
/// <summary>
|
/// 任务信息
|
/// </summary>
|
public class TaskInfo : CommonEntity<MasterDbContextLocator>, IEntityTypeBuilder<TaskInfo>
|
{
|
public TaskInfo()
|
{
|
Benefits = [];
|
CredentialLimits = [];
|
TaskUserCollects = [];
|
}
|
|
/// <summary>
|
/// 企业Id
|
/// </summary>
|
public Guid EnterpriseId { get; set; }
|
|
/// <summary>
|
/// 企业
|
/// </summary>
|
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; }
|
|
/// <summary>
|
/// 服务费
|
/// </summary>
|
public decimal ServiceFee { get; set; }
|
|
/// <summary>
|
/// 结算方式
|
/// </summary>
|
public EnumSettlementCycle SettlementCycle { get; set; }
|
|
/// <summary>
|
/// 福利
|
/// </summary>
|
public List<TaskInfoBenefit> Benefits { get; set; }
|
|
/// <summary>
|
/// 年龄范围最小
|
/// </summary>
|
public int AgeMinLimit { get; set; }
|
|
/// <summary>
|
/// 年龄范围大
|
/// </summary>
|
public int AgeMaxLimit { get; set; }
|
|
/// <summary>
|
/// 性别要求
|
/// </summary>
|
public EnumUserGender GenderLimit { get; set; }
|
|
/// <summary>
|
/// 资格证书
|
/// </summary>
|
public List<TaskInfoCredentialLimit> CredentialLimits { get; set; }
|
|
/// <summary>
|
/// 任务地点所属省份编号
|
/// </summary>
|
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 AddressDetail { get; set; }
|
|
/// <summary>
|
/// 经度
|
/// </summary>
|
[Column(TypeName = "decimal(18,6)")]
|
public decimal? Longitude { get; set; }
|
|
/// <summary>
|
/// 纬度
|
/// </summary>
|
[Column(TypeName = "decimal(18,6)")]
|
public decimal? Latitude { get; set; }
|
|
/// <summary>
|
/// 任务开始时间
|
/// </summary>
|
public DateTime BeginTime { get; set; }
|
|
/// <summary>
|
/// 任务结束时间
|
/// </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 DateTime? CheckReceiveTime { get; set; }
|
|
/// <summary>
|
/// 最近提交时间
|
/// </summary>
|
public DateTime? LastSubmitTime { get; set; }
|
|
/// <summary>
|
/// 最近验收时间
|
/// </summary>
|
public DateTime? LastCheckReceiveTime { get; set; }
|
|
/// <summary>
|
/// 结算单状态
|
/// </summary>
|
public EnumTaskSettlementOrderStatus? SettlementOrderStatus { get; set; }
|
|
/// <summary>
|
/// 结算单名称
|
/// </summary>
|
public string SettlementOrderName { get; set; }
|
|
/// <summary>
|
/// 结算单地址
|
/// </summary>
|
public string SettlementOrderUrl { get; set; }
|
|
/// <summary>
|
/// 结算单上传时间
|
/// </summary>
|
public DateTime? SettlementOrderTime { get; set; }
|
|
/// <summary>
|
/// 结算状态
|
/// </summary>
|
public EnumTaskSettlementStatus? SettlementStatus { get; set; }
|
|
/// <summary>
|
/// 结算金额
|
/// </summary>
|
public decimal? SettlementAmount { get; set; }
|
|
/// <summary>
|
/// 实发金额
|
/// </summary>
|
public decimal? ActualSettlementAmount { get; set; }
|
|
/// <summary>
|
/// 结算人数
|
/// </summary>
|
public int SettlementUserCount { get; set; }
|
|
/// <summary>
|
/// 结算操作人Id
|
/// </summary>
|
public Guid? SettlementOperatorUserId { get; set; }
|
|
/// <summary>
|
/// 结算操作人
|
/// </summary>
|
public User SettlementOperatorUser { get; set; }
|
|
/// <summary>
|
/// 结算开始时间
|
/// </summary>
|
public DateTime? SettlementStartTime { get; set; }
|
|
/// <summary>
|
/// 结算时间
|
/// </summary>
|
public DateTime? SettlementTime { get; set; }
|
|
/// <summary>
|
/// 结算备注
|
/// </summary>
|
public string SettlementRemark { get; set; }
|
|
/// <summary>
|
/// 推荐状态
|
/// </summary>
|
public EnumTaskRecommendStatus RecommendStatus { get; set; }
|
|
/// <summary>
|
/// 推荐时间
|
/// </summary>
|
public DateTime? RecommendTime { get; set; }
|
|
/// <summary>
|
/// 用户
|
/// </summary>
|
public List<TaskInfoUser> TaskInfoUsers { get; set; }
|
|
/// <summary>
|
/// 谁收藏此任务
|
/// </summary>
|
public List<TaskUserCollect> TaskUserCollects { 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);
|
}
|
}
|
}
|