using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using ChangkeTec.SDMS.Model.Base;
using ChangkeTec.SDMS.Model.Enums;

namespace ChangkeTec.SDMS.Model.ExchangeCenterTables
{
    [Description("供应商表")]
    public class TES_SUPPLIER : ITaskTable
    {
        [Description("供应商代码")]
        [StringLength(50)]
        public string SupplierCode { get; set; }

        [Description("供应商名称")]
        [StringLength(50)]
        public string SupplierName { get; set; }

        [Description("搜索名称")]
        [StringLength(50)]
        public string SearchName { get; set; }

        [Description("中间名称")]
        [StringLength(50)]
        public string SecondName { get; set; }

        [Description("第三级名称")]
        [StringLength(50)]
        public string ThirdName { get; set; }

        [Description("组名")]
        [StringLength(50)]
        public string GroupName { get; set; }

        [Description("启用")]
        public bool Active { get; set; }

        [Description("供应商地址")]
        [StringLength(50)]
        public string Address1 { get; set; }

        [Description("供应商地址")]
        [StringLength(50)]
        public string Address2 { get; set; }

        [Description("供应商地址")]
        [StringLength(50)]
        public string Address3 { get; set; }

        [Description("邮编")]
        public int ZipCode { get; set; }

        [Description("城市")]
        [StringLength(50)]
        public string City { get; set; }

        [Description("国家")]
        [StringLength(50)]
        public string Country { get; set; }

        [Description("电话")]
        public int Telephone { get; set; }

        [Description("省")]
        [StringLength(50)]
        public string province { get; set; }

        [Description("县")]
        [StringLength(50)]
        public string County { get; set; }

        [Description("传真")]
        public int Fax { get; set; }

        [Description("语言代码")]
        [StringLength(50)]
        public string LanguageCode { get; set; }

        [Description("电子邮件")]
        public int Email { get; set; }

        [Description("网址")]
        public int Internet { get; set; }

        [Description("纳税地址")]
        public bool AddressIsTaxable { get; set; }

        [Description("含税")]
        public bool AddressIsTaxIncluded { get; set; }

        [Description("联邦税")]
        [StringLength(50)]
        public string FederalTax { get; set; }

        [Description("州税")]
        [StringLength(50)]
        public string StateTax { get; set; }

        [Description("杂项税1")]
        [StringLength(50)]
        public string MiscTax1 { get; set; }

        [Description("杂项税2")]
        [StringLength(50)]
        public string MiscTax2 { get; set; }

        [Description("杂项税3")]
        [StringLength(50)]
        public string MiscTax3 { get; set; }

        [Description("城市税")]
        public bool TaxInCity { get; set; }

        [Description("税区")]
        [StringLength(50)]
        public string TaxZone { get; set; }

        [Description("税种")]
        public int TaxClass { get; set; }

        [Description("税用途")]
        [StringLength(50)]
        public string TaxUsage { get; set; }

        [Description("标题")]
        [StringLength(50)]
        public string Title { get; set; }

        [Description("联系人名称")]
        [StringLength(50)]
        public string ContactName { get; set; }

        [Description("缩写")]
        [StringLength(50)]
        public string Initials { get; set; }

        [Description("函数")]
        [StringLength(50)]
        public string Function { get; set; }

        [Description("性别")]
        [StringLength(50)]
        public string Gender { get; set; }

        [Description("主要联系人")]
        public bool ContactIsPrimary { get; set; }

        [Description("次要联系人")]
        public bool ContactIsSecondary { get; set; }

        [Description("允许补偿")]
        public bool Compens { get; set; }

        [Description("发票控制文件")]
        public int GlProfileInvoice { get; set; }

        [Description("信用票据控制文件")]
        public int GlProfileCreditNote { get; set; }

        [Description("预付款控制文件")]
        public int GlProfilePrepayment { get; set; }

        [Description("总账控制文件")]
        public int AccountGLProfile { get; set; }

        [Description("分账户控制文件")]
        public int SubAccountProfile { get; set; }

        [Description("信贷机构引用")]
        [StringLength(50)]
        public string CreditAgencyReference { get; set; }

        [Description("商会号")]
        [StringLength(50)]
        public string CommerceNumber { get; set; }

        [Description("TID通知")]
        [StringLength(50)]
        public string TidNotice { get; set; }

        [Description("外部客户号")]
        [StringLength(50)]
        public string ExternalCustomerNumber { get; set; }

        [Description("币种")]
        [StringLength(50)]
        public string Currency { get; set; }

        [Description("供应商类型")]
        [StringLength(50)]
        public string SupplierType { get; set; }

        [Description("采购类型")]
        [StringLength(50)]
        public string Purchasetype { get; set; }

        [Description("支付期")]
        [StringLength(50)]
        public string CreditTerms { get; set; }

        [Description("发票状态代码")]
        [StringLength(50)]
        public string InvoiceStatusCode { get; set; }

        [Description("付款组")]
        [StringLength(50)]
        public string PaymentGroup { get; set; }

        [Description("发送汇款单")]
        public bool SendRemittance { get; set; }

        [Description("分隔基础")]
        public bool SplitAccount { get; set; }

        [Description("发货方式")]
        [StringLength(50)]
        public string ShipVia { get; set; }

        [Description("备注")]
        [StringLength(50)]
        public string Remarks { get; set; }

        [Description("承运人")]
        [StringLength(50)]
        public string Carrier { get; set; }

        [Description("采购联系人")]
        [StringLength(50)]
        public string Purchasecontact { get; set; }

        [Description("日记账集")]
        [StringLength(50)]
        public string DayBookSet { get; set; }

        [Description("看板供应商")]
        public bool KanBanSupplier { get; set; }

        [Description("推销组")]
        [StringLength(50)]
        public string PromotionGroup { get; set; }

        [Description("采购员")]
        [StringLength(50)]
        public string Buyer { get; set; }

        [Description("价格表")]
        [StringLength(50)]
        public string PriceTable { get; set; }

        [Description("折扣表")]
        [StringLength(50)]
        public string DiscountTable { get; set; }

        [Description("固定价格")]
        public bool FixedPrice { get; set; }

        [Description("非销售单价格单")]
        [StringLength(50)]
        public string NonSoPrice { get; set; }

        [Description("银行格式")]
        [StringLength(50)]
        public string BankFormat { get; set; }

        [Description("供应商银行")]
        [StringLength(50)]
        public string SupplierBank { get; set; }

        [Description("自有银行")]
        [StringLength(50)]
        public string OwnBank { get; set; }


        [Key]
        public Guid GUID { get; set; } = Guid.NewGuid();

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int UID { get; set; }

        [Description("创建人")]
        [StringLength(50)]
        public string CreateUser { get; set; }

        [Description("创建时间")]
        public DateTime CreateTime { get; set; }


        [Description("备注")]
        public string Remark { get; set; }

        [Description("任务编号")]
        public Guid TaskID { get; set; }

        [Description("命令类型")]
        [StringLength(50)]
        public string CommandType { get; set; }

        public Guid DataID { get; set; }

        [Description("域")]
        [StringLength(50)]
        public string Domain { get; set; }

        [Description("地点")]
        [StringLength(50)]
        public string Site { get; set; }
        [Description("发票限额")]
        public decimal? Quota { get; set; }
    }
}