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 User : CommonEntity, IEntitySeedData, IEntityTypeBuilder
{
public User()
{
UserRoles = [];
UserDepartments = [];
BankCards = [];
UserExpectJobs = [];
UserCredentials = [];
Photos = [];
}
///
/// 用户认证
///
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; }
///
/// 姓名
///
[Required]
[MaxLength(32)]
public string Name { get; set; }
///
/// 用户名
///
[Required]
[MaxLength(32)]
public string UserName { get; set; }
///
/// 手机号
///
[MaxLength(11)]
public string PhoneNumber { get; set; }
///
/// 是否已校验手机号
///
public bool IsCheckPhoneNumber { get; set; }
///
/// 密码
///
public string Password { get; set; }
///
/// 微信开放Id
///
[MaxLength(32)]
public string WxmpOpenId { get; set; }
///
/// 级别
///
public int Level { get; set; }
///
/// 实名通道
///
public EnumRealAccess? RealAccess { get; set; }
///
/// 是否实名
///
public bool IsReal { get; set; }
///
/// 常驻省份编号
///
public string ProvinceCode { get; set; }
///
/// 常驻省份
///
public DictionaryData Province { get; set; }
///
/// 常驻城市编号
///
public string CityCode { get; set; }
///
/// 常驻城市
///
public DictionaryData City { get; set; }
///
/// 备注
///
public string Remark { get; set; }
///
/// 状态
///
public EnumUserStatus Status { get; set; }
///
/// 用户信息角色
///
public List UserRoles { get; set; }
///
/// 用户信息部门
///
public List UserDepartments { get; set; }
///
/// 银行卡
///
public List BankCards { get; set; }
///
/// 用户信息期望岗位
///
public List UserExpectJobs { get; set; }
///
/// 用户信息资格证书
///
public List UserCredentials { get; set; }
///
/// 生活照
///
public List Photos { get; set; }
public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator)
{
entityBuilder
.HasOne(it => it.UserAuth)
.WithOne(it => it.User)
.HasForeignKey(it => it.Id);
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 User
{
Id = new Guid("11111111-1111-1111-1111-111111111111"),
Name = "管理员",
UserName = "system",
Password = "iEYggKrMhQ3ASUGLobra1w==:fn/DsMJUbD9FGpvBvR3moMpMPptdxzZlourPVhU479I=",
Type = EnumUserType.Operation,
Level = 999,
Status = EnumUserStatus.Normal,
CreatedTime = new DateTime(2000, 1, 1)
}
};
}
}
}