MapResource.cs 2.02 KB
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Rcs.Domain.Attributes;

namespace Rcs.Domain.Entities
{
    [Table("map_resources")]
    public partial class MapResource : Entity
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        [Column("resource_id")]
        public Guid ResourceId { get; set; }

        /// <summary>
        /// 地图ID(外键)
        /// </summary>
        [Column("map_id")]
        public Guid MapId { get; set; }

        /// <summary>
        /// 资源编码
        /// </summary>
        [Required]
        [Column("resource_code")]
        [MaxLength(50)]
        public string ResourceCode { get; set; }

        [Column("resource_name")]
        [MaxLength(100)]
        public string ResourceName { get; set; }

        [Column("type")]
        public MapResourcesTYPE Type { get; set; }
        /// <summary>
        /// 区域内车容量
        /// </summary>

        [Column("capacity")]
        public int? Capacity { get; set; } = 1;

        [Column("location_coordinates", TypeName = "jsonb")]
        public List<Point>? LocationCoordinates { get; set; }

        [Column("created_at", TypeName = "timestamp")]
        public DateTime? CreatedAt { get; set; }

        [Column("active")]
        public bool Active { get; set; }

        #region 外键 => 导航属性,ManyToOne/OneToOne

        [ForeignKey(nameof(MapId))]
        public virtual Map Maps { get; set; }

        #endregion
    }

    public enum MapResourcesTYPE
    {
        [EnumDescription("停靠点", "Dock")]
        dock = 1,

        [EnumDescription("充电桩", "Charger")]
        charger,

        [EnumDescription("电梯", "Elevator")]
        elevator,

        [EnumDescription("风淋门", "Airlock")]
        airlock,

        [EnumDescription("传送带", "Conveyor")]
        conveyor,

        [EnumDescription("存储区", "Storage")]
        storage,

        [EnumDescription("其他", "Other")]
        other
    }
}