using Furion.DatabaseAccessor; using Mapster; 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 Enterprise : CommonEntity, IEntityTypeBuilder { public Enterprise() { Users = []; Departments = []; ContractTemplates = []; ElectronSignSettings = []; } /// /// 企业认证 /// public EnterpriseAuth EnterpriseAuth { get; set; } /// /// 园区Id /// public Guid? IndustrialParkId { get; set; } /// /// 企业全称 /// [Required] [MaxLength(128)] public string EnterpriseName { get; set; } /// /// 统一社会信用代码 /// [Required] [MaxLength(18)] public string SocietyCreditCode { get; set; } /// /// 营业执照照片 /// public string LicenseImage { get; set; } /// /// 法人姓名 /// [MaxLength(32)] public string LegalPerson { get; set; } /// /// 法人身份证号 /// [MaxLength(18)] public string LegalIdentity { get; set; } /// /// 所在省份编号 /// public string ProvinceCode { get; set; } /// /// 所在省份 /// public DictionaryData Province { get; set; } /// /// 所在城市编号 /// public string CityCode { get; set; } /// /// 所在城市 /// public DictionaryData City { get; set; } /// /// 所属行业编号 /// public string IndustryTypeCode { get; set; } /// /// 所属行业 /// public DictionaryData IndustryType { get; set; } /// /// 企业类型 /// public string EnterpriseType { get; set; } /// /// 注册资本 /// public string RegisteredCapital { get; set; } /// /// 成立日期 /// public string EstablishmentDate { get; set; } /// /// 企业地址 /// public string Address { get; set; } /// /// 经营范围 /// public string MainBusiness { get; set; } /// /// 联系人 /// [MaxLength(32)] public string Contacts { get; set; } /// /// 联系电话 /// [MaxLength(11)] public string ContactPhoneNumber { get; set; } /// /// 联系邮箱 /// public string ContactEmail { get; set; } /// /// 支付通道 /// public EnumPayAccess? PayAccess { get; set; } /// /// 开户总行 /// public string BankName { get; set; } /// /// 开户支行 /// public string BankBranchName { get; set; } /// /// 银行账户 /// [MaxLength(32)] public string BankCard { get; set; } /// /// 是否已校验银行账户 /// public bool IsCheckedBankCard { get; set; } /// /// 短信通道 /// public EnumSmsAccess? SmsAccess { get; set; } /// /// 短信费用 /// public decimal SmsCost { get; set; } /// /// 实名通道 /// public EnumRealAccess? RealAccess { get; set; } /// /// 是否实名 /// public bool IsReal { get; set; } /// /// 部门 /// public List Departments { get; set; } /// /// 用户信息 /// public List Users { get; set; } /// /// 合同模板 /// public List ContractTemplates { get; set; } /// /// 电子签配置 /// public List ElectronSignSettings { get; set; } public void Configure(EntityTypeBuilder entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder .HasOne(it => it.EnterpriseAuth) .WithOne(it => it.Enterprise) .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); entityBuilder .HasOne(it => it.IndustryType) .WithMany() .HasForeignKey(it => it.IndustryTypeCode) .HasPrincipalKey(it => it.Code) .OnDelete(DeleteBehavior.Restrict); } } }