From ebbb2bac41ce3c15da69341ff47a25eb9e68772e Mon Sep 17 00:00:00 2001
From: garionion <git@entr0py.de>
Date: Fri, 28 Feb 2025 22:18:24 +0100
Subject: [PATCH] feat: Add name column to storagespace and update related
 queries

---
 database/sqlite/generated/models.go           |  1 +
 database/sqlite/generated/query.sql.go        | 42 ++++++++++++++++---
 .../00002_add_name_to_storagespace.sql        |  9 ++++
 database/sqlite/schema.sql                    |  1 +
 web/src/components.d.ts                       |  1 +
 web/src/typed-router.d.ts                     |  1 +
 6 files changed, 49 insertions(+), 6 deletions(-)
 create mode 100644 database/sqlite/migration/00002_add_name_to_storagespace.sql

diff --git a/database/sqlite/generated/models.go b/database/sqlite/generated/models.go
index 9b7d784..838ff3e 100644
--- a/database/sqlite/generated/models.go
+++ b/database/sqlite/generated/models.go
@@ -124,6 +124,7 @@ type Storagespace struct {
 	ID       int64
 	Parent   sql.NullInt64
 	Location sql.NullString
+	Name     string
 }
 
 type User struct {
diff --git a/database/sqlite/generated/query.sql.go b/database/sqlite/generated/query.sql.go
index 3c786a7..5646b39 100644
--- a/database/sqlite/generated/query.sql.go
+++ b/database/sqlite/generated/query.sql.go
@@ -175,8 +175,23 @@ func (q *Queries) CreateEvent(ctx context.Context, arg CreateEventParams) error
 	return err
 }
 
+const createStorageSpace = `-- name: CreateStorageSpace :exec
+INSERT INTO storagespace (parent, location, name) VALUES (?, ?, ?)
+`
+
+type CreateStorageSpaceParams struct {
+	Parent   sql.NullInt64
+	Location sql.NullString
+	Name     string
+}
+
+func (q *Queries) CreateStorageSpace(ctx context.Context, arg CreateStorageSpaceParams) error {
+	_, err := q.db.ExecContext(ctx, createStorageSpace, arg.Parent, arg.Location, arg.Name)
+	return err
+}
+
 const getAllStorageSpaces = `-- name: GetAllStorageSpaces :many
-SELECT id, parent, location FROM storagespace
+SELECT id, parent, location, name FROM storagespace
 `
 
 func (q *Queries) GetAllStorageSpaces(ctx context.Context) ([]Storagespace, error) {
@@ -188,7 +203,12 @@ func (q *Queries) GetAllStorageSpaces(ctx context.Context) ([]Storagespace, erro
 	var items []Storagespace
 	for rows.Next() {
 		var i Storagespace
-		if err := rows.Scan(&i.ID, &i.Parent, &i.Location); err != nil {
+		if err := rows.Scan(
+			&i.ID,
+			&i.Parent,
+			&i.Location,
+			&i.Name,
+		); err != nil {
 			return nil, err
 		}
 		items = append(items, i)
@@ -230,7 +250,7 @@ func (q *Queries) GetAllUsers(ctx context.Context) ([]User, error) {
 }
 
 const getChildStorageSpaces = `-- name: GetChildStorageSpaces :many
-SELECT id, parent, location FROM storagespace WHERE parent = ?
+SELECT id, parent, location, name FROM storagespace WHERE parent = ?
 `
 
 func (q *Queries) GetChildStorageSpaces(ctx context.Context, parent sql.NullInt64) ([]Storagespace, error) {
@@ -242,7 +262,12 @@ func (q *Queries) GetChildStorageSpaces(ctx context.Context, parent sql.NullInt6
 	var items []Storagespace
 	for rows.Next() {
 		var i Storagespace
-		if err := rows.Scan(&i.ID, &i.Parent, &i.Location); err != nil {
+		if err := rows.Scan(
+			&i.ID,
+			&i.Parent,
+			&i.Location,
+			&i.Name,
+		); err != nil {
 			return nil, err
 		}
 		items = append(items, i)
@@ -463,13 +488,18 @@ func (q *Queries) GetObjectsInStorage(ctx context.Context, storageLocation sql.N
 }
 
 const getStorageSpaceByID = `-- name: GetStorageSpaceByID :one
-SELECT id, parent, location FROM storagespace WHERE id = ?
+SELECT id, parent, location, name FROM storagespace WHERE id = ?
 `
 
 func (q *Queries) GetStorageSpaceByID(ctx context.Context, id int64) (Storagespace, error) {
 	row := q.db.QueryRowContext(ctx, getStorageSpaceByID, id)
 	var i Storagespace
-	err := row.Scan(&i.ID, &i.Parent, &i.Location)
+	err := row.Scan(
+		&i.ID,
+		&i.Parent,
+		&i.Location,
+		&i.Name,
+	)
 	return i, err
 }
 
diff --git a/database/sqlite/migration/00002_add_name_to_storagespace.sql b/database/sqlite/migration/00002_add_name_to_storagespace.sql
new file mode 100644
index 0000000..22c43e4
--- /dev/null
+++ b/database/sqlite/migration/00002_add_name_to_storagespace.sql
@@ -0,0 +1,9 @@
+-- +goose Up
+-- +goose StatementBegin
+ALTER TABLE storagespace ADD COLUMN Name TEXT NOT NULL DEFAULT '';
+-- +goose StatementEnd
+
+-- +goose Down
+-- +goose StatementBegin
+ALTER TABLE storagespace DROP COLUMN Name;
+-- +goose StatementEnd
\ No newline at end of file
diff --git a/database/sqlite/schema.sql b/database/sqlite/schema.sql
index 21d54bf..4817d01 100644
--- a/database/sqlite/schema.sql
+++ b/database/sqlite/schema.sql
@@ -28,6 +28,7 @@ CREATE TABLE storagespace
     ID       INTEGER PRIMARY KEY AUTOINCREMENT,
     Parent   INTEGER,
     Location TEXT,
+    Name     TEXT NOT NULL,
     FOREIGN KEY (Parent) REFERENCES storagespace (ID)
 );
 
diff --git a/web/src/components.d.ts b/web/src/components.d.ts
index b428e50..4b90ef7 100644
--- a/web/src/components.d.ts
+++ b/web/src/components.d.ts
@@ -8,6 +8,7 @@ export {}
 declare module 'vue' {
   export interface GlobalComponents {
     AppFooter: typeof import('./components/AppFooter.vue')['default']
+    AppHeader: typeof import('./components/AppHeader.vue')['default']
     HelloWorld: typeof import('./components/HelloWorld.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
diff --git a/web/src/typed-router.d.ts b/web/src/typed-router.d.ts
index 98d1283..e67bdca 100644
--- a/web/src/typed-router.d.ts
+++ b/web/src/typed-router.d.ts
@@ -20,5 +20,6 @@ declare module 'vue-router/auto-routes' {
   export interface RouteNamedMap {
     '/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
     '/auth': RouteRecordInfo<'/auth', '/auth', Record<never, never>, Record<never, never>>,
+    '/storage': RouteRecordInfo<'/storage', '/storage', Record<never, never>, Record<never, never>>,
   }
 }