package chart_permission

import "time"

// ChartPermission 报告权限表
type ChartPermission struct {
	ChartPermissionID   uint64    `gorm:"primaryKey;column:chart_permission_id;type:bigint(20) unsigned;not null" json:"-"`                  // 主键
	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(20)" json:"chartPermissionName"`                          // 名称
	PermissionName      string    `gorm:"column:permission_name;type:varchar(50);default:''" json:"permissionName"`                          // 权限名
	Sort                int       `gorm:"column:sort;type:int(10);default:1" json:"sort"`                                                    // 排序
	Enabled             int8      `gorm:"column:enabled;type:tinyint(1);default:1" json:"enabled"`                                           // 是否可用
	CreatedTime         time.Time `gorm:"index:created_time;column:created_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createdTime"` // 创建时间
	LastUpdatedTime     time.Time `gorm:"index:last_updated_time;column:last_updated_time;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:"lastUpdatedTime"`
	TeleconferenceSort  int       `gorm:"column:teleconference_sort;type:int(4);default:0" json:"teleconferenceSort"` // 电话会类型排序
	Remark              string    `gorm:"column:remark;type:varchar(30)" json:"remark"`
	ClassifyName        string    `gorm:"column:classify_name;type:varchar(50)" json:"classifyName"`
	ProductName         string    `gorm:"column:product_name;type:varchar(50);default:''" json:"productName"`
	ProductID           int       `gorm:"column:product_id;type:int(11);default:0" json:"productId"`
	ImageURL            string    `gorm:"column:image_url;type:varchar(255)" json:"imageUrl"`                                     // 图片地址
	ShowType            int8      `gorm:"column:show_type;type:tinyint(4);default:0" json:"showType"`                             // 1:查研观向小程序展示
	IsOther             int8      `gorm:"column:is_other;type:tinyint(2);not null;default:0" json:"isOther"`                      // 是否是其他，用于查研观向小程序后台展示
	IsReport            int8      `gorm:"index:is_report;column:is_report;type:tinyint(4);not null;default:0" json:"isReport"`    // 是否是报告，用于查研观向小程序前台报告展示
	CygxAuth            int8      `gorm:"column:cygx_auth;type:tinyint(4);not null;default:0" json:"cygxAuth"`                    // 是否是权限，用于查研观向小程序前台权限校验
	YbImgUrl            string    `gorm:"column:yb_img_url;type:varchar(255)" json:"yb_img_url"`                                  // 研报小程序报告列表icon
	PriceDrivenState    int       `gorm:"column:price_driven_state;type:tinyint(4);not null;default:0" json:"price_driven_state"` // 品种价格驱动状态：0-关闭 1-开启
	ParentId            int       `gorm:"column:parent_id;default:0;NOT NULL;comment:'父级权限id'" json:"parent_id"`
	IsPublic            int       `gorm:"column:is_public;default:0;NOT NULL;comment:'是否是公有权限1:公有权限，0私有权限'" json:"is_public"`
}

// TableName get sql table name.获取数据库表名
func (m *ChartPermission) TableName() string {
	return "chart_permission"
}

// ChartPermissionColumns get sql column name.获取数据库列名
var ChartPermissionColumns = struct {
	ChartPermissionID   string
	ChartPermissionName string
	PermissionName      string
	Sort                string
	Enabled             string
	CreatedTime         string
	LastUpdatedTime     string
	TeleconferenceSort  string
	Remark              string
	ClassifyName        string
	ProductName         string
	ProductID           string
	ImageURL            string
	ShowType            string
	IsOther             string
	IsReport            string
	CygxAuth            string
	ParentId            string
	IsPublic            string
}{
	ChartPermissionID:   "chart_permission_id",
	ChartPermissionName: "chart_permission_name",
	PermissionName:      "permission_name",
	Sort:                "sort",
	Enabled:             "enabled",
	CreatedTime:         "created_time",
	LastUpdatedTime:     "last_updated_time",
	TeleconferenceSort:  "teleconference_sort",
	Remark:              "remark",
	ClassifyName:        "classify_name",
	ProductName:         "product_name",
	ProductID:           "product_id",
	ImageURL:            "image_url",
	ShowType:            "show_type",
	IsOther:             "is_other",
	IsReport:            "is_report",
	CygxAuth:            "cygx_auth",
	ParentId:            "parent_id",
	IsPublic:            "is_public",
}
