//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行时版本:4.0.30319.42000
//     Website: http://www.freesql.net
//     对此文件的更改可能会导致不正确的行为，并且如果
//     重新生成代码，这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;

namespace ZX.Model {

    [JsonObject(MemberSerialization.OptIn)]
    public class CustomerMember {
        public CustomerMember()
        {
            CheckupGroups = new List<CustomerCheckupGroup>();
        }

        [JsonProperty, Column(DbType = "nvarchar(50)", IsPrimary = true)]
        public string MemberId { get; set; }

        [JsonProperty, Column(IsPrimary = true)]
        public short ShopId { get; set; }

        [JsonProperty]
        public long? CustomerId { get => _CustomerId; set {
            if (_CustomerId == value) return;
            _CustomerId = value;
        } }
        private long? _CustomerId;

        [JsonProperty, Column(DbType = "varchar(500)")]
        public string Address { get; set; }

        [JsonProperty, Column(DbType = "smalldatetime")]
        public DateTime? Birthday { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string CardNo { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string CardType { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Doctor { get; set; }

        [JsonProperty]
        public DateTime? EndDate { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Group { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Marry { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Name { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Part { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string PayType { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Phone { get; set; }

        [JsonProperty, Column(DbType = "varchar(10)")]
        public string Sex { get; set; }

        [JsonProperty]
        public DateTime? StartDate { get; set; }

        [JsonProperty, Column(DbType = "text")]
        public string Suggest { get; set; }

        [JsonProperty, Column(DbType = "text")]
        public string SumUp { get; set; }

        [JsonProperty, Column(DbType = "varchar(50)")]
        public string Team { get; set; }

        [JsonProperty, Column(DbType = "decimal(9,2)")]
        public decimal? TotalFee { get; set; }


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

        [Navigate("MemberId,ShopId")]
        public virtual List<CustomerCheckupGroup> CheckupGroups { get; set; }

        #endregion

        #region 外键 => 导航属性，ManyToMany

        #endregion
    }

}
