using Furion.DatabaseAccessor; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// /// 用户信息 /// public class UserInfo : CommonEntity, IEntitySeedData, IEntityTypeBuilder { public UserInfo() { UserInfoRoles = []; UserInfoDepartments = []; UserInfoExpectJobs = []; UserInfoCredentials = []; } /// /// 用户Id /// public Guid UserAuthId { get; set; } /// /// 用户 /// public UserAuth UserAuth { get; set; } /// /// 用户类型 /// public EnumUserType Type { get; set; } /// /// 企业Id /// public Guid? EnterpriseId { get; set; } /// /// 企业 /// public Enterprise Enterprise { get; set; } /// /// 头像 /// public string Avatar { get; set; } /// /// 微信开放Id /// [MaxLength(32)] public string WxmpOpenId { get; set; } /// /// 级别 /// public int Level { get; set; } /// /// 用户信息角色 /// public List UserInfoRoles { get; set; } /// /// 用户信息部门 /// public List UserInfoDepartments { get; set; } /// /// 身份编号 /// public string PersonalIdentityCode { get; set; } /// /// 身份 /// public DictionaryData PersonalIdentity { get; set; } /// /// 学历编号 /// public string EducationalBackgroundCode { get; set; } /// /// 学历 /// public DictionaryData EducationalBackground { get; set; } /// /// 常驻省份编号 /// public string ProvinceCode { get; set; } /// /// 常驻省份 /// public DictionaryData Province { get; set; } /// /// 常驻城市编号 /// public string CityCode { get; set; } /// /// 常驻城市 /// public DictionaryData City { get; set; } /// /// 用户信息期望岗位 /// public List UserInfoExpectJobs { get; set; } /// /// 空闲时间 /// public EnumPersonalFreeTime? FreeTime { get; set; } /// /// 求职状态 /// public EnumPersonalJobSeekingStatus? JobSeekingStatus { get; set; } /// /// 用户信息资格证书 /// public List UserInfoCredentials { get; set; } /// /// 工作资历 /// public string WorkSeniority { get; set; } /// /// 工作经验 /// public string WorkExperience { get; set; } /// /// 身高 /// public int? Height { get; set; } /// /// 体重 /// public int? Weight { get; set; } /// /// 备注 /// public string Remark { get; set; } /// /// 状态 /// public EnumUserInfoStatus Status { get; set; } public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder .HasOne(it => it.PersonalIdentity) .WithMany() .HasForeignKey(it => it.PersonalIdentityCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); entityBuilder .HasOne(it => it.EducationalBackground) .WithMany() .HasForeignKey(it => it.EducationalBackgroundCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); 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); } public IEnumerable HasData(DbContext dbContext, Type dbContextLocator) { return new List { new UserInfo { Id = new Guid("11111111-1111-1111-1111-111111111112"), UserAuthId = new Guid("11111111-1111-1111-1111-111111111111"), Type = EnumUserType.Operation, Level = 999, CreatedTime = new DateTime(2000, 1, 1) } }; } } }