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 { /// /// 任务信息 /// public class TaskInfo : CommonEntity, IEntityTypeBuilder { public TaskInfo() { Benefits = []; CredentialLimits = []; TaskUserCollects = []; } /// /// 企业Id /// public Guid EnterpriseId { get; set; } /// /// 企业 /// public Enterprise Enterprise { get; set; } /// /// 任务单号 /// public string Code { get; set; } /// /// 任务名称 /// [Required] public string Name { get; set; } /// /// 结算周期 /// public EnumBillingMethod BillingMethod { get; set; } /// /// 服务费 /// public decimal ServiceFee { get; set; } /// /// 结算方式 /// public EnumSettlementCycle SettlementCycle { get; set; } /// /// 福利 /// public List Benefits { get; set; } /// /// 年龄范围最小 /// public int AgeMinLimit { get; set; } /// /// 年龄范围大 /// public int AgeMaxLimit { get; set; } /// /// 性别要求 /// public EnumUserGender GenderLimit { get; set; } /// /// 资格证书 /// public List CredentialLimits { get; set; } /// /// 任务地点所属省份编号 /// public string ProvinceCode { get; set; } /// /// 任务地点所属省份 /// public DictionaryData Province { get; set; } /// /// 任务地点所属城市编号 /// public string CityCode { get; set; } /// /// 任务地点所属城市 /// public DictionaryData City { get; set; } /// /// 任务地点名称 /// public string AddressName { get; set; } /// /// 任务地点详细地址 /// public string AddressDetail { get; set; } /// /// 经度 /// [Column(TypeName = "decimal(18,6)")] public decimal? Longitude { get; set; } /// /// 纬度 /// [Column(TypeName = "decimal(18,6)")] public decimal? Latitude { get; set; } /// /// 任务开始时间 /// public DateTime BeginTime { get; set; } /// /// 任务结束时间 /// public DateTime EndTime { get; set; } /// /// 任务状态 /// public EnumTaskStatus Status { get; set; } /// /// 发布状态 /// public EnumTaskReleaseStatus ReleaseStatus { get; set; } /// /// 验收状态 /// public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; } /// /// 验收完成时间 /// public DateTime? CheckReceiveTime { get; set; } /// /// 最近提交时间 /// public DateTime? LastSubmitTime { get; set; } /// /// 最近验收时间 /// public DateTime? LastCheckReceiveTime { get; set; } /// /// 结算单状态 /// public EnumTaskSettlementOrderStatus? SettlementOrderStatus { get; set; } /// /// 结算单名称 /// public string SettlementOrderName { get; set; } /// /// 结算单地址 /// public string SettlementOrderUrl { get; set; } /// /// 结算单上传时间 /// public DateTime? SettlementOrderTime { get; set; } /// /// 结算状态 /// public EnumTaskSettlementStatus? SettlementStatus { get; set; } /// /// 结算金额 /// public decimal? SettlementAmount { get; set; } /// /// 实发金额 /// public decimal? ActualSettlementAmount { get; set; } /// /// 结算人数 /// public int SettlementUserCount { get; set; } /// /// 结算操作人Id /// public Guid? SettlementOperatorUserId { get; set; } /// /// 结算操作人 /// public User SettlementOperatorUser { get; set; } /// /// 结算开始时间 /// public DateTime? SettlementStartTime { get; set; } /// /// 结算时间 /// public DateTime? SettlementTime { get; set; } /// /// 结算备注 /// public string SettlementRemark { get; set; } /// /// 推荐状态 /// public EnumTaskRecommendStatus RecommendStatus { get; set; } /// /// 推荐时间 /// public DateTime? RecommendTime { get; set; } /// /// 用户 /// public List TaskInfoUsers { get; set; } /// /// 谁收藏此任务 /// public List TaskUserCollects { get; set; } public void Configure(EntityTypeBuilder 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); } } }