// Code generated by sqlc. DO NOT EDIT.

package pg

import (
	"database/sql"
	"time"

	"github.com/google/uuid"
)

type LabelColor struct {
	LabelColorID uuid.UUID `json:"label_color_id"`
	ColorHex     string    `json:"color_hex"`
	Position     float64   `json:"position"`
	Name         string    `json:"name"`
}

type Organization struct {
	OrganizationID uuid.UUID `json:"organization_id"`
	CreatedAt      time.Time `json:"created_at"`
	Name           string    `json:"name"`
}

type Project struct {
	ProjectID uuid.UUID `json:"project_id"`
	TeamID    uuid.UUID `json:"team_id"`
	CreatedAt time.Time `json:"created_at"`
	Name      string    `json:"name"`
	Owner     uuid.UUID `json:"owner"`
}

type ProjectLabel struct {
	ProjectLabelID uuid.UUID      `json:"project_label_id"`
	ProjectID      uuid.UUID      `json:"project_id"`
	LabelColorID   uuid.UUID      `json:"label_color_id"`
	CreatedDate    time.Time      `json:"created_date"`
	Name           sql.NullString `json:"name"`
}

type RefreshToken struct {
	TokenID   uuid.UUID `json:"token_id"`
	UserID    uuid.UUID `json:"user_id"`
	CreatedAt time.Time `json:"created_at"`
	ExpiresAt time.Time `json:"expires_at"`
}

type Task struct {
	TaskID      uuid.UUID      `json:"task_id"`
	TaskGroupID uuid.UUID      `json:"task_group_id"`
	CreatedAt   time.Time      `json:"created_at"`
	Name        string         `json:"name"`
	Position    float64        `json:"position"`
	Description sql.NullString `json:"description"`
	DueDate     sql.NullTime   `json:"due_date"`
}

type TaskAssigned struct {
	TaskAssignedID uuid.UUID `json:"task_assigned_id"`
	TaskID         uuid.UUID `json:"task_id"`
	UserID         uuid.UUID `json:"user_id"`
	AssignedDate   time.Time `json:"assigned_date"`
}

type TaskGroup struct {
	TaskGroupID uuid.UUID `json:"task_group_id"`
	ProjectID   uuid.UUID `json:"project_id"`
	CreatedAt   time.Time `json:"created_at"`
	Name        string    `json:"name"`
	Position    float64   `json:"position"`
}

type TaskLabel struct {
	TaskLabelID    uuid.UUID `json:"task_label_id"`
	TaskID         uuid.UUID `json:"task_id"`
	ProjectLabelID uuid.UUID `json:"project_label_id"`
	AssignedDate   time.Time `json:"assigned_date"`
}

type Team struct {
	TeamID         uuid.UUID `json:"team_id"`
	CreatedAt      time.Time `json:"created_at"`
	Name           string    `json:"name"`
	OrganizationID uuid.UUID `json:"organization_id"`
}

type UserAccount struct {
	UserID           uuid.UUID      `json:"user_id"`
	CreatedAt        time.Time      `json:"created_at"`
	Email            string         `json:"email"`
	Username         string         `json:"username"`
	PasswordHash     string         `json:"password_hash"`
	ProfileBgColor   string         `json:"profile_bg_color"`
	FullName         string         `json:"full_name"`
	Initials         string         `json:"initials"`
	ProfileAvatarUrl sql.NullString `json:"profile_avatar_url"`
}
