using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Attributes;
using WIDESEA_Core.CodeConfigEnum;
using WIDESEA_Core.DB.Models;
namespace WIDESEA_Model.Models
{
    /// 
    /// 出库单
    /// 
    [SugarTable(nameof(Dt_OutboundOrder), "出库单")]
    public class Dt_OutboundOrder : BaseEntity
    {
        /// 
        /// 主键
        /// 
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int Id { get; set; }
        /// 
        /// 仓库主键
        /// 
        [SugarColumn(IsNullable = false, ColumnDescription = "仓库主键")]
        public int WarehouseId { get; set; }
        /// 
        /// 单据编号
        /// 
        [CodeRule(RuleCodeEnum.OutboundOrderRule)]
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "单据编号", IsOnlyIgnoreUpdate = true)]
        public string OrderNo { get; set; }
        /// 
        /// 上游单据编号
        /// 
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "上游单据编号", IsOnlyIgnoreUpdate = true)]
        public string UpperOrderNo { get; set; }
        /// 
        /// 单据类型
        /// 
        [SugarColumn(IsNullable = false, ColumnDescription = "单据类型", IsOnlyIgnoreUpdate = true)]
        public int OrderType { get; set; }
        /// 
        /// 单据状态
        /// 
        [SugarColumn(IsNullable = false, ColumnDescription = "单据状态")]
        public int OrderStatus { get; set; }
        /// 
        /// 创建方式
        /// 
        [SugarColumn(IsNullable = false, ColumnDescription = "创建方式", IsOnlyIgnoreUpdate = true)]
        public int CreateType { get; set; }
        /// 
        /// 部门编号
        /// 
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "部门编号")]
        public string DepartmentCode { get; set; }
        /// 
        /// 部门名称
        /// 
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "部门名称")]
        public string DepartmentName { get; set; }
        /// 
        /// 备注
        /// 
        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "备注")]
        public string Remark { get; set; }
        /// 
        /// 出库单明细
        /// 
        [Navigate(NavigateType.OneToMany, nameof(Dt_OutboundOrderDetail.OrderId), nameof(Id))]
        public List Details { get; set; }
    }
}