package model

import "github.com/loveuer/nfflow/internal/sqlType"

type Task struct {
	Id        uint64 `json:"id" gorm:"primaryKey;column:id"`
	CreatedAt int64  `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
	UpdatedAt int64  `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
	DeletedAt int64  `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`

	TaskName string
}

type Input struct {
	Id          uint64 `json:"id" gorm:"primaryKey;column:id"`
	CreatedAt   int64  `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
	UpdatedAt   int64  `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
	DeletedAt   int64  `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
	InputType   InputType
	InputConfig sqlType.JSONB
}

type Output struct {
	Id           uint64 `json:"id" gorm:"primaryKey;column:id"`
	CreatedAt    int64  `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
	UpdatedAt    int64  `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
	DeletedAt    int64  `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
	OutputType   OutputType
	OutputConfig sqlType.JSONB
}

type Pipe struct {
	Id        uint64 `json:"id" gorm:"primaryKey;column:id"`
	CreatedAt int64  `json:"created_at" gorm:"column:created_at;autoCreateTime:milli"`
	UpdatedAt int64  `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:milli"`
	DeletedAt int64  `json:"deleted_at" gorm:"index;column:deleted_at;default:0"`
}