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)
}
};
}
}
}