add is_folder notion
This commit is contained in:
@@ -14,7 +14,7 @@ import (
|
|||||||
const createFile = `-- name: CreateFile :one
|
const createFile = `-- name: CreateFile :one
|
||||||
INSERT INTO files (id, name, mime_type, size, storage_key, checksum, created_at, updated_at)
|
INSERT INTO files (id, name, mime_type, size, storage_key, checksum, created_at, updated_at)
|
||||||
VALUES ($1, $2, $3, $4, $5, $6, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
VALUES ($1, $2, $3, $4, $5, $6, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
RETURNING id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at
|
RETURNING id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at, is_folder
|
||||||
`
|
`
|
||||||
|
|
||||||
type CreateFileParams struct {
|
type CreateFileParams struct {
|
||||||
@@ -46,6 +46,36 @@ func (q *Queries) CreateFile(ctx context.Context, arg CreateFileParams) (File, e
|
|||||||
&i.OcrText,
|
&i.OcrText,
|
||||||
&i.CreatedAt,
|
&i.CreatedAt,
|
||||||
&i.UpdatedAt,
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
|
)
|
||||||
|
return i, err
|
||||||
|
}
|
||||||
|
|
||||||
|
const createFolder = `-- name: CreateFolder :one
|
||||||
|
INSERT INTO files (id, name, created_at, updated_at)
|
||||||
|
VALUES ($1, $2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
|
RETURNING id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at, is_folder
|
||||||
|
`
|
||||||
|
|
||||||
|
type CreateFolderParams struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (q *Queries) CreateFolder(ctx context.Context, arg CreateFolderParams) (File, error) {
|
||||||
|
row := q.db.QueryRowContext(ctx, createFolder, arg.ID, arg.Name)
|
||||||
|
var i File
|
||||||
|
err := row.Scan(
|
||||||
|
&i.ID,
|
||||||
|
&i.Name,
|
||||||
|
&i.MimeType,
|
||||||
|
&i.Size,
|
||||||
|
&i.StorageKey,
|
||||||
|
&i.Checksum,
|
||||||
|
&i.OcrText,
|
||||||
|
&i.CreatedAt,
|
||||||
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
)
|
)
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
@@ -61,7 +91,7 @@ func (q *Queries) DeleteFile(ctx context.Context, id string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getFile = `-- name: GetFile :one
|
const getFile = `-- name: GetFile :one
|
||||||
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at FROM files
|
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at, is_folder FROM files
|
||||||
WHERE id = $1 LIMIT 1
|
WHERE id = $1 LIMIT 1
|
||||||
`
|
`
|
||||||
|
|
||||||
@@ -78,12 +108,13 @@ func (q *Queries) GetFile(ctx context.Context, id string) (File, error) {
|
|||||||
&i.OcrText,
|
&i.OcrText,
|
||||||
&i.CreatedAt,
|
&i.CreatedAt,
|
||||||
&i.UpdatedAt,
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
)
|
)
|
||||||
return i, err
|
return i, err
|
||||||
}
|
}
|
||||||
|
|
||||||
const listFiles = `-- name: ListFiles :many
|
const listFiles = `-- name: ListFiles :many
|
||||||
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at FROM files
|
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at, is_folder FROM files
|
||||||
ORDER BY created_at DESC
|
ORDER BY created_at DESC
|
||||||
`
|
`
|
||||||
|
|
||||||
@@ -106,6 +137,7 @@ func (q *Queries) ListFiles(ctx context.Context) ([]File, error) {
|
|||||||
&i.OcrText,
|
&i.OcrText,
|
||||||
&i.CreatedAt,
|
&i.CreatedAt,
|
||||||
&i.UpdatedAt,
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -121,7 +153,7 @@ func (q *Queries) ListFiles(ctx context.Context) ([]File, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const listFilesByID = `-- name: ListFilesByID :many
|
const listFilesByID = `-- name: ListFilesByID :many
|
||||||
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at FROM files
|
SELECT id, name, mime_type, size, storage_key, checksum, ocr_text, created_at, updated_at, is_folder FROM files
|
||||||
WHERE id = ANY($1::text[])
|
WHERE id = ANY($1::text[])
|
||||||
ORDER BY created_at DESC
|
ORDER BY created_at DESC
|
||||||
`
|
`
|
||||||
@@ -145,6 +177,7 @@ func (q *Queries) ListFilesByID(ctx context.Context, dollar_1 []string) ([]File,
|
|||||||
&i.OcrText,
|
&i.OcrText,
|
||||||
&i.CreatedAt,
|
&i.CreatedAt,
|
||||||
&i.UpdatedAt,
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
-- VaultDrop 003: tags table
|
||||||
|
ALTER TABLE files DROP COLUMN IF EXISTS is_folder;
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE files ADD COLUMN is_folder BOOLEAN NOT NULL DEFAULT false;
|
||||||
@@ -19,6 +19,7 @@ type File struct {
|
|||||||
OcrText string `json:"ocr_text"`
|
OcrText string `json:"ocr_text"`
|
||||||
CreatedAt time.Time `json:"created_at"`
|
CreatedAt time.Time `json:"created_at"`
|
||||||
UpdatedAt time.Time `json:"updated_at"`
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
IsFolder bool `json:"is_folder"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type FileTag struct {
|
type FileTag struct {
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ INSERT INTO files (id, name, mime_type, size, storage_key, checksum, created_at,
|
|||||||
VALUES ($1, $2, $3, $4, $5, $6, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
VALUES ($1, $2, $3, $4, $5, $6, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
RETURNING *;
|
RETURNING *;
|
||||||
|
|
||||||
|
-- name: CreateFolder :one
|
||||||
|
INSERT INTO files (id, name, created_at, updated_at)
|
||||||
|
VALUES ($1, $2, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
||||||
|
RETURNING *;
|
||||||
|
|
||||||
-- name: UpdateFile :exec
|
-- name: UpdateFile :exec
|
||||||
UPDATE files
|
UPDATE files
|
||||||
SET name = $1, mime_type = $2, ocr_text = $3, updated_at = CURRENT_TIMESTAMP
|
SET name = $1, mime_type = $2, ocr_text = $3, updated_at = CURRENT_TIMESTAMP
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ func (q *Queries) DeleteTag(ctx context.Context, id string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getFilesByTagID = `-- name: GetFilesByTagID :many
|
const getFilesByTagID = `-- name: GetFilesByTagID :many
|
||||||
SELECT f.id, f.name, f.mime_type, f.size, f.storage_key, f.checksum, f.ocr_text, f.created_at, f.updated_at FROM files f
|
SELECT f.id, f.name, f.mime_type, f.size, f.storage_key, f.checksum, f.ocr_text, f.created_at, f.updated_at, f.is_folder FROM files f
|
||||||
JOIN file_tags ft ON f.id = ft.file_id
|
JOIN file_tags ft ON f.id = ft.file_id
|
||||||
WHERE ft.tag_id = $1
|
WHERE ft.tag_id = $1
|
||||||
ORDER BY f.created_at DESC
|
ORDER BY f.created_at DESC
|
||||||
@@ -89,6 +89,7 @@ func (q *Queries) GetFilesByTagID(ctx context.Context, tagID sql.NullString) ([]
|
|||||||
&i.OcrText,
|
&i.OcrText,
|
||||||
&i.CreatedAt,
|
&i.CreatedAt,
|
||||||
&i.UpdatedAt,
|
&i.UpdatedAt,
|
||||||
|
&i.IsFolder,
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user