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