From a9a59a3a557042f96550f298be45ad372df1a9b2 Mon Sep 17 00:00:00 2001
From: Kevin Lyda <kevin@lyda.ie>
Date: Sat, 10 May 2025 13:39:43 +0100
Subject: [PATCH] Breaking change - begin splitting things up better

---
 ask/ask.go                             |  5 +++++
 folders/messages.go                    |  1 -
 folders/sql/1_create_table.up.sql      |  9 +++++----
 pager/pager.go                         |  5 +++++
 storage/storage.go                     |  4 ++++
 this/this.go                           | 10 ++++++++++
 accounts/accounts.go => users/users.go |  4 ++--
 7 files changed, 31 insertions(+), 7 deletions(-)
 create mode 100644 ask/ask.go
 create mode 100644 pager/pager.go
 create mode 100644 storage/storage.go
 create mode 100644 this/this.go
 rename accounts/accounts.go => users/users.go (97%)

diff --git a/ask/ask.go b/ask/ask.go
new file mode 100644
index 0000000..30ddba7
--- /dev/null
+++ b/ask/ask.go
@@ -0,0 +1,5 @@
+/*
+Package ask provides routines to ask questions of users. It handles
+getting a line of text, getting a choice from a liat and other things.
+*/
+package ask
diff --git a/folders/messages.go b/folders/messages.go
index bd08ec9..1e49fb7 100644
--- a/folders/messages.go
+++ b/folders/messages.go
@@ -1,4 +1,3 @@
-// Package folders are all the routines and sql for managing folders.
 package folders
 
 import (
diff --git a/folders/sql/1_create_table.up.sql b/folders/sql/1_create_table.up.sql
index 22b497d..d518fc2 100644
--- a/folders/sql/1_create_table.up.sql
+++ b/folders/sql/1_create_table.up.sql
@@ -146,7 +146,7 @@ CREATE TABLE mark (
 CREATE TABLE access (
   login       VARCHAR(25) REFERENCES users(login) ON DELETE CASCADE ON UPDATE CASCADE,
   folder      VARCHAR(25) REFERENCES folders(name) ON DELETE CASCADE ON UPDATE CASCADE,
-  PRIMARY KEY (login, folder),
+  PRIMARY KEY (login, folder)
 ) WITHOUT ROWID;
 
 --- TODO: The following is incomplete:
@@ -161,6 +161,7 @@ CREATE TABLE config (
 
 --- System configs.
 CREATE TABLE system (
-  default_expire  INT     NOT NULL DEFAULT -1,
-  expire_limit    INT     NOT NULL DEFAULT -1,
-) WITHOUT ROWID;
+  name            VARCHAR(12)  NOT NULL PRIMARY KEY,
+  default_expire  INT          NOT NULL DEFAULT -1,
+  expire_limit    INT          NOT NULL DEFAULT -1
+);
diff --git a/pager/pager.go b/pager/pager.go
new file mode 100644
index 0000000..c2a0c4f
--- /dev/null
+++ b/pager/pager.go
@@ -0,0 +1,5 @@
+/*
+Package pager implements the pager.  This is used for any large block of
+text that bulletin needs to show.
+*/
+package pager
diff --git a/storage/storage.go b/storage/storage.go
new file mode 100644
index 0000000..8b2347b
--- /dev/null
+++ b/storage/storage.go
@@ -0,0 +1,4 @@
+/*
+Package storage handles storage for the bulletin system.
+*/
+package storage
diff --git a/this/this.go b/this/this.go
new file mode 100644
index 0000000..40cfe11
--- /dev/null
+++ b/this/this.go
@@ -0,0 +1,10 @@
+/*
+Package this has the current state of the running bulletin process.
+
+Each bulletin process is run by a single user.  The `this` package
+tracks the current user state - it has the user login, the current
+folder, the current message id and other things.
+
+TODO: Eventually `this` will need to handle broadcast messages.
+*/
+package this
diff --git a/accounts/accounts.go b/users/users.go
similarity index 97%
rename from accounts/accounts.go
rename to users/users.go
index becd7b9..a175e1a 100644
--- a/accounts/accounts.go
+++ b/users/users.go
@@ -1,5 +1,5 @@
-// Package accounts manages accounts.
-package accounts
+// Package users manages accounts.
+package users
 
 import (
 	"errors"
-- 
GitLab