package models

import "time"

type UserDeviceDetail struct {

	ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
	UserID uint `gorm:"column:userId;not null;index" json:"userId"`
	AppID string `gorm:"column:appId;type:varchar(20);not null" json:"appId"`
	DeviceID *string `gorm:"column:deviceId;type:varchar(255)" json:"deviceId,omitempty"`
	FcmToken *string `gorm:"column:fcmToken;type:varchar(255)" json:"fcmToken,omitempty"`
	DeviceLocation *string `gorm:"column:deviceLocation;type:varchar(255)" json:"deviceLocation,omitempty"`
	DeviceManufacturer *string `gorm:"column:deviceManufacturer;type:varchar(255)" json:"deviceManufacturer,omitempty"`
	DeviceModel *string `gorm:"column:deviceModel;type:varchar(255)" json:"deviceModel,omitempty"`
	AppVersion *string `gorm:"column:appVersion;type:varchar(255)" json:"appVersion,omitempty"`
	IsActive *bool `gorm:"column:isActive;default:true" json:"isActive,omitempty"`
	IsDelete *bool `gorm:"column:isDelete;default:false" json:"isDelete,omitempty"`
	CreatedAt *time.Time `gorm:"column:created_at" json:"created_at,omitempty"`
	UpdatedAt *time.Time `gorm:"column:updated_at" json:"updated_at,omitempty"`
	// Relation
	User User `gorm:"foreignKey:UserID;references:ID" json:"user,omitempty"`
}

func (UserDeviceDetail) TableName() string {
	return "user_device_details"
}