using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using CK.SCP.Models.Base;

namespace CK.SCP.Models.ExchangeCenterTables
{
    [Description("发票附加表")]
    public class TED_INVOICE_ADD : TED_BASE,ITaskTable
    {
        [Description("总账账户代码")]
        [StringLength(50)]
        public string GLCode { get; set; }

        [Description("分账户代码")]
        [StringLength(50)]
        public string DivisionCode { get; set; }

        [Description("成本中心代码")]
        [StringLength(50)]
        public string CostCentreCode { get; set; }

        [Description("项目代码")]
        [StringLength(50)]
        public string ProjectCode { get; set; }

        [Description("SAF代码")]
        [StringLength(50)]
        public string SafStructureCode { get; set; }

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

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

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

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

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

        [Description("税等级")]
        [StringLength(50)]
        public string TaxClass { get; set; }

        [Description("日期(today)")]
        public DateTime TaxPointDate { get; set; }

        [Description("税交易类型")]
        [StringLength(50)]
        public string TaxTransactionType { get; set; }

        [Description("事务类型")]
        [StringLength(50)]
        public string TransactionType { get; set; }

        [Description("状态")]
        [StringLength(50)]
        public string Status { get; set; }

        [Description("过账税输入输出")]
        [StringLength(50)]
        public string PostingVatInOut { get; set; }

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

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

        [Description("税类型")]
        [StringLength(50)]
        public string TaxType { get; set; }

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

        [Description("交易货币金额")]
        public decimal VatDebitTC { get; set; }

        [Description("本位币金额")]
        public decimal VatDebitLC { get; set; }

        [Description("法定货币金额")]
        public decimal VatDebitCC { 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; }
    }
}