From 7fee1dd855b0e842a30a1a37f401464c81a34163 Mon Sep 17 00:00:00 2001 From: Siddharth Vasu Date: Sat, 14 Feb 2026 20:08:50 -0800 Subject: [PATCH 1/4] Added workshop schema --- sql/migrations/000004_create_workshops.down.sql | 3 +++ sql/migrations/000004_create_workshops.up.sql | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 sql/migrations/000004_create_workshops.down.sql create mode 100644 sql/migrations/000004_create_workshops.up.sql diff --git a/sql/migrations/000004_create_workshops.down.sql b/sql/migrations/000004_create_workshops.down.sql new file mode 100644 index 00000000..d487ee9a --- /dev/null +++ b/sql/migrations/000004_create_workshops.down.sql @@ -0,0 +1,3 @@ +-- Language: sqlite + +DROP TABLE IF EXISTS workshop; diff --git a/sql/migrations/000004_create_workshops.up.sql b/sql/migrations/000004_create_workshops.up.sql new file mode 100644 index 00000000..f538d435 --- /dev/null +++ b/sql/migrations/000004_create_workshops.up.sql @@ -0,0 +1,10 @@ +-- Language: sqlite + +CREATE TABLE IF NOT EXISTS workshop ( + uuid INT PRIMARY KEY, + title VARCHAR(100), + team VARCHAR(20), + semester CHAR(3), + date DATE, + url TEXT +); From d93abc270fff65e87f75afd41b920c89432b3992 Mon Sep 17 00:00:00 2001 From: Siddharth Vasu Date: Sat, 14 Feb 2026 20:21:49 -0800 Subject: [PATCH 2/4] Added create and delete queries --- sql/migrations/000004_create_workshops.up.sql | 4 ++-- sql/queries/workshop.sql | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 sql/queries/workshop.sql diff --git a/sql/migrations/000004_create_workshops.up.sql b/sql/migrations/000004_create_workshops.up.sql index f538d435..278caa74 100644 --- a/sql/migrations/000004_create_workshops.up.sql +++ b/sql/migrations/000004_create_workshops.up.sql @@ -5,6 +5,6 @@ CREATE TABLE IF NOT EXISTS workshop ( title VARCHAR(100), team VARCHAR(20), semester CHAR(3), - date DATE, - url TEXT + start_at DATE, + link TEXT ); diff --git a/sql/queries/workshop.sql b/sql/queries/workshop.sql new file mode 100644 index 00000000..a80fab17 --- /dev/null +++ b/sql/queries/workshop.sql @@ -0,0 +1,17 @@ +-- name: CreateWorkshop :exec +INSERT INTO +workshop ( + uuid, + title, + team, + semester, + start_at, + link +) +VALUES +(?, ?, ?, ?, ?, ?) +RETURNING *; + +-- name: DeleteWorkshop :exec +DELETE FROM workshop +WHERE uuid = ?; From 3fcab09865808980488ef8819062f357a06e7a15 Mon Sep 17 00:00:00 2001 From: Josh Holman Date: Mon, 9 Mar 2026 20:18:22 -0700 Subject: [PATCH 3/4] sqlc --- internal/api/dbmodels/models.go | 9 +++++ internal/api/dbmodels/workshop.sql.go | 57 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 internal/api/dbmodels/workshop.sql.go diff --git a/internal/api/dbmodels/models.go b/internal/api/dbmodels/models.go index 45c1738b..857bbc4f 100644 --- a/internal/api/dbmodels/models.go +++ b/internal/api/dbmodels/models.go @@ -48,3 +48,12 @@ type Tier struct { TIndex sql.NullInt64 `json:"t_index"` Team sql.NullString `json:"team"` } + +type Workshop struct { + Uuid int64 `json:"uuid"` + Title sql.NullString `json:"title"` + Team sql.NullString `json:"team"` + Semester interface{} `json:"semester"` + StartAt sql.NullTime `json:"start_at"` + Link sql.NullString `json:"link"` +} diff --git a/internal/api/dbmodels/workshop.sql.go b/internal/api/dbmodels/workshop.sql.go new file mode 100644 index 00000000..a4ee4b19 --- /dev/null +++ b/internal/api/dbmodels/workshop.sql.go @@ -0,0 +1,57 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.30.0 +// source: workshop.sql + +package dbmodels + +import ( + "context" + "database/sql" +) + +const createWorkshop = `-- name: CreateWorkshop :exec +INSERT INTO +workshop ( + uuid, + title, + team, + semester, + start_at, + link +) +VALUES +(?, ?, ?, ?, ?, ?) +RETURNING uuid, title, team, semester, start_at, link +` + +type CreateWorkshopParams struct { + Uuid int64 `json:"uuid"` + Title sql.NullString `json:"title"` + Team sql.NullString `json:"team"` + Semester interface{} `json:"semester"` + StartAt sql.NullTime `json:"start_at"` + Link sql.NullString `json:"link"` +} + +func (q *Queries) CreateWorkshop(ctx context.Context, arg CreateWorkshopParams) error { + _, err := q.db.ExecContext(ctx, createWorkshop, + arg.Uuid, + arg.Title, + arg.Team, + arg.Semester, + arg.StartAt, + arg.Link, + ) + return err +} + +const deleteWorkshop = `-- name: DeleteWorkshop :exec +DELETE FROM workshop +WHERE uuid = ? +` + +func (q *Queries) DeleteWorkshop(ctx context.Context, uuid int64) error { + _, err := q.db.ExecContext(ctx, deleteWorkshop, uuid) + return err +} From 6fe0f3147cc944ec11e157ca31b67ffadd2366a7 Mon Sep 17 00:00:00 2001 From: sidvasu Date: Fri, 13 Mar 2026 17:48:10 -0700 Subject: [PATCH 4/4] Added get and update queries --- sql/queries/workshop.sql | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/sql/queries/workshop.sql b/sql/queries/workshop.sql index a80fab17..036feb0a 100644 --- a/sql/queries/workshop.sql +++ b/sql/queries/workshop.sql @@ -12,6 +12,40 @@ VALUES (?, ?, ?, ?, ?, ?) RETURNING *; +-- name: GetWorkshop :one +SELECT + title, + team, + semester, + start_at, + link +FROM + workshop +WHERE + uuid = ?; + +-- name: UpdateWorkshop :exec +UPDATE workshop +SET + title = COALESCE(sqlc.narg('title'), title), + team = COALESCE(sqlc.narg('team'), team), + semester = COALESCE(sqlc.narg('semester'), semester), + start_at = COALESCE(sqlc.narg('start_at'), start_at), + link = COALESCE(sqlc.narg('link'), link) +WHERE + uuid = sqlc.arg('uuid'); + +-- name: GetWorkshops :many +SELECT + uuid, + title, + team, + semester, + start_at, + link +FROM + workshop; + -- name: DeleteWorkshop :exec DELETE FROM workshop WHERE uuid = ?;