sunpengfei
2025-08-08 32288af3e5f12bc48d8360114c872fde5d9ff4a8
FlexJobApi.Core/Entities/Users/Enterprise.cs
@@ -1,4 +1,7 @@
using System;
using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
@@ -10,18 +13,13 @@
    /// <summary>
    /// 企业
    /// </summary>
    public class Enterprise : CommonEntity
    public class Enterprise : CommonEntity, IEntityTypeBuilder<Enterprise>
    {
        public Enterprise()
        {
            UserInfos = [];
            Users = [];
            Departments = [];
        }
        /// <summary>
        /// 企业认证Id
        /// </summary>
        public Guid EnterpriseAuthId { get; set; }
        /// <summary>
        /// 企业认证
@@ -29,9 +27,40 @@
        public EnterpriseAuth EnterpriseAuth { get; set; }
        /// <summary>
        /// 所在省份Id
        /// 企业全称
        /// </summary>
        public Guid? ProvinceId { get; set; }
        [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>
        /// 所在省份
@@ -39,9 +68,9 @@
        public DictionaryData Province { get; set; }
        /// <summary>
        /// 所在城市Id
        /// 所在城市编号
        /// </summary>
        public Guid? CityId { get; set; }
        public string CityCode { get; set; }
        /// <summary>
        /// 所在城市
@@ -49,9 +78,9 @@
        public DictionaryData City { get; set; }
        /// <summary>
        /// 所属行业Id
        /// 所属行业编号
        /// </summary>
        public Guid? IndustryTypeId { get; set; }
        public string IndustryTypeCode { get; set; }
        /// <summary>
        /// 所属行业
@@ -137,6 +166,11 @@
        public decimal SmsCost { get; set; }
        /// <summary>
        /// 是否实名
        /// </summary>
        public bool IsReal { get; set; }
        /// <summary>
        /// 部门
        /// </summary>
        public List<Department> Departments { get; set; }
@@ -144,6 +178,32 @@
        /// <summary>
        /// 用户信息
        /// </summary>
        public List<UserInfo> UserInfos { get; set; }
        public List<User> Users { 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);
        }
    }
}