//
//  Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

package entity

import "time"

// SystemSettings system settings model
type SystemSettings struct {
	Name       string     `gorm:"column:name;primaryKey;size:128" json:"name"`
	Source     string     `gorm:"column:source;size:32;not null" json:"source"`
	DataType   string     `gorm:"column:data_type;size:32;not null" json:"data_type"`
	Value      string     `gorm:"column:value;type:longtext;not null" json:"value"`
	CreateTime *int64     `gorm:"column:create_time" json:"create_time"`
	CreateDate *time.Time `gorm:"column:create_date" json:"create_date"`
	UpdateTime *int64     `gorm:"column:update_time" json:"update_time"`
	UpdateDate *time.Time `gorm:"column:update_date" json:"update_date"`
}

// TableName specify table name
func (SystemSettings) TableName() string {
	return "system_settings"
}
