// Code generated by sqlc. DO NOT EDIT.
// versions:
//   sqlc v1.13.0

package db

import (
	"database/sql"
	"time"

	"github.com/google/uuid"
)

type Task struct {
	WorkflowID uuid.UUID
	Name       string
	Finished   bool
	Result     sql.NullString
	Error      sql.NullString
	CreatedAt  time.Time
	UpdatedAt  time.Time
}

type TaskLog struct {
	ID         int32
	WorkflowID uuid.UUID
	TaskName   string
	Body       string
	CreatedAt  time.Time
	UpdatedAt  time.Time
}

type Workflow struct {
	ID        uuid.UUID
	Params    sql.NullString
	Name      sql.NullString
	CreatedAt time.Time
	UpdatedAt time.Time
	Finished  bool
	Output    string
	Error     string
}
