From bab57343e178ec63dff9baf4db72d9679f2c2238 Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Wed, 8 Jul 2026 01:18:09 +0200 Subject: [PATCH] chore(jet): regenerate the backend jet to match the migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The committed go-jet code had drifted from the schema: robot_blocks and robot_friend_requests (created in the baseline) had no generated tables, the feedback_messages model was missing app_version/browser_tz (added in 00003 and 00004), and UseSchema omitted account_best_move and the two robot tables. Regenerate so the jet layer mirrors the migrations again. Additive only — two nullable columns appended to feedback_messages plus two new tables; the full build, vet, unit and integration suites stay green. --- PLAN.md | 9 +- .../jet/backend/model/feedback_messages.go | 2 + .../jet/backend/model/robot_blocks.go | 23 +++++ .../backend/model/robot_friend_requests.go | 23 +++++ .../jet/backend/table/feedback_messages.go | 10 +- .../jet/backend/table/robot_blocks.go | 96 +++++++++++++++++++ .../backend/table/robot_friend_requests.go | 96 +++++++++++++++++++ .../jet/backend/table/table_use_schema.go | 3 + 8 files changed, 256 insertions(+), 6 deletions(-) create mode 100644 backend/internal/postgres/jet/backend/model/robot_blocks.go create mode 100644 backend/internal/postgres/jet/backend/model/robot_friend_requests.go create mode 100644 backend/internal/postgres/jet/backend/table/robot_blocks.go create mode 100644 backend/internal/postgres/jet/backend/table/robot_friend_requests.go diff --git a/PLAN.md b/PLAN.md index 01d4b80..5cd1e2a 100644 --- a/PLAN.md +++ b/PLAN.md @@ -200,10 +200,11 @@ E2 flips reads and after Release 2). Reads still use the old columns until E2. ./backend/...` + `go vet` + `gofmt -l .` clean; committed `jet/payments/`; all tests green; no behaviour change for users. -**Notes.** jetgen regenerates the whole `backend` schema; its committed jet was already drifted -from the migrations (`robot_blocks`, `robot_friend_requests`, a `feedback_messages` column), so -that churn was reverted and only `jet/payments/` committed — a pre-existing drift worth a separate -cleanup. The `payments` role creation is idempotent (`DO $$` / `IF NOT EXISTS`) for fresh volumes. +**Notes.** jetgen regenerates the whole `backend` schema; its committed jet had drifted from the +migrations (`robot_blocks`, `robot_friend_requests`, the `feedback_messages` `app_version` / +`browser_tz` columns, and `UseSchema` gaps), so this change also **regenerates and commits +`jet/backend`** to bring it back in sync (additive only — all suites stay green). The `payments` +role creation is idempotent (`DO $$` / `IF NOT EXISTS`) for fresh volumes. --- diff --git a/backend/internal/postgres/jet/backend/model/feedback_messages.go b/backend/internal/postgres/jet/backend/model/feedback_messages.go index 32bbdaa..6481a2a 100644 --- a/backend/internal/postgres/jet/backend/model/feedback_messages.go +++ b/backend/internal/postgres/jet/backend/model/feedback_messages.go @@ -27,4 +27,6 @@ type FeedbackMessages struct { ReplyReadAt *time.Time CreatedAt time.Time Lang *string + AppVersion *string + BrowserTz *string } diff --git a/backend/internal/postgres/jet/backend/model/robot_blocks.go b/backend/internal/postgres/jet/backend/model/robot_blocks.go new file mode 100644 index 0000000..27b2489 --- /dev/null +++ b/backend/internal/postgres/jet/backend/model/robot_blocks.go @@ -0,0 +1,23 @@ +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package model + +import ( + "github.com/google/uuid" + "time" +) + +type RobotBlocks struct { + ID uuid.UUID `sql:"primary_key"` + BlockerID uuid.UUID + GameID uuid.UUID + Seat int16 + RobotID uuid.UUID + DisplayName string + CreatedAt time.Time +} diff --git a/backend/internal/postgres/jet/backend/model/robot_friend_requests.go b/backend/internal/postgres/jet/backend/model/robot_friend_requests.go new file mode 100644 index 0000000..f7b2906 --- /dev/null +++ b/backend/internal/postgres/jet/backend/model/robot_friend_requests.go @@ -0,0 +1,23 @@ +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package model + +import ( + "github.com/google/uuid" + "time" +) + +type RobotFriendRequests struct { + ID uuid.UUID `sql:"primary_key"` + RequesterID uuid.UUID + GameID uuid.UUID + Seat int16 + RobotID uuid.UUID + DisplayName string + CreatedAt time.Time +} diff --git a/backend/internal/postgres/jet/backend/table/feedback_messages.go b/backend/internal/postgres/jet/backend/table/feedback_messages.go index 238c640..f1400b0 100644 --- a/backend/internal/postgres/jet/backend/table/feedback_messages.go +++ b/backend/internal/postgres/jet/backend/table/feedback_messages.go @@ -31,6 +31,8 @@ type feedbackMessagesTable struct { ReplyReadAt postgres.ColumnTimestampz CreatedAt postgres.ColumnTimestampz Lang postgres.ColumnString + AppVersion postgres.ColumnString + BrowserTz postgres.ColumnString AllColumns postgres.ColumnList MutableColumns postgres.ColumnList @@ -86,8 +88,10 @@ func newFeedbackMessagesTableImpl(schemaName, tableName, alias string) feedbackM ReplyReadAtColumn = postgres.TimestampzColumn("reply_read_at") CreatedAtColumn = postgres.TimestampzColumn("created_at") LangColumn = postgres.StringColumn("lang") - allColumns = postgres.ColumnList{MessageIDColumn, AccountIDColumn, BodyColumn, AttachmentColumn, AttachmentNameColumn, SenderIPColumn, ChannelColumn, ReadAtColumn, ArchivedAtColumn, ReplyBodyColumn, RepliedAtColumn, ReplyReadAtColumn, CreatedAtColumn, LangColumn} - mutableColumns = postgres.ColumnList{AccountIDColumn, BodyColumn, AttachmentColumn, AttachmentNameColumn, SenderIPColumn, ChannelColumn, ReadAtColumn, ArchivedAtColumn, ReplyBodyColumn, RepliedAtColumn, ReplyReadAtColumn, CreatedAtColumn, LangColumn} + AppVersionColumn = postgres.StringColumn("app_version") + BrowserTzColumn = postgres.StringColumn("browser_tz") + allColumns = postgres.ColumnList{MessageIDColumn, AccountIDColumn, BodyColumn, AttachmentColumn, AttachmentNameColumn, SenderIPColumn, ChannelColumn, ReadAtColumn, ArchivedAtColumn, ReplyBodyColumn, RepliedAtColumn, ReplyReadAtColumn, CreatedAtColumn, LangColumn, AppVersionColumn, BrowserTzColumn} + mutableColumns = postgres.ColumnList{AccountIDColumn, BodyColumn, AttachmentColumn, AttachmentNameColumn, SenderIPColumn, ChannelColumn, ReadAtColumn, ArchivedAtColumn, ReplyBodyColumn, RepliedAtColumn, ReplyReadAtColumn, CreatedAtColumn, LangColumn, AppVersionColumn, BrowserTzColumn} defaultColumns = postgres.ColumnList{CreatedAtColumn} ) @@ -109,6 +113,8 @@ func newFeedbackMessagesTableImpl(schemaName, tableName, alias string) feedbackM ReplyReadAt: ReplyReadAtColumn, CreatedAt: CreatedAtColumn, Lang: LangColumn, + AppVersion: AppVersionColumn, + BrowserTz: BrowserTzColumn, AllColumns: allColumns, MutableColumns: mutableColumns, diff --git a/backend/internal/postgres/jet/backend/table/robot_blocks.go b/backend/internal/postgres/jet/backend/table/robot_blocks.go new file mode 100644 index 0000000..db6ed95 --- /dev/null +++ b/backend/internal/postgres/jet/backend/table/robot_blocks.go @@ -0,0 +1,96 @@ +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package table + +import ( + "github.com/go-jet/jet/v2/postgres" +) + +var RobotBlocks = newRobotBlocksTable("backend", "robot_blocks", "") + +type robotBlocksTable struct { + postgres.Table + + // Columns + ID postgres.ColumnString + BlockerID postgres.ColumnString + GameID postgres.ColumnString + Seat postgres.ColumnInteger + RobotID postgres.ColumnString + DisplayName postgres.ColumnString + CreatedAt postgres.ColumnTimestampz + + AllColumns postgres.ColumnList + MutableColumns postgres.ColumnList + DefaultColumns postgres.ColumnList +} + +type RobotBlocksTable struct { + robotBlocksTable + + EXCLUDED robotBlocksTable +} + +// AS creates new RobotBlocksTable with assigned alias +func (a RobotBlocksTable) AS(alias string) *RobotBlocksTable { + return newRobotBlocksTable(a.SchemaName(), a.TableName(), alias) +} + +// Schema creates new RobotBlocksTable with assigned schema name +func (a RobotBlocksTable) FromSchema(schemaName string) *RobotBlocksTable { + return newRobotBlocksTable(schemaName, a.TableName(), a.Alias()) +} + +// WithPrefix creates new RobotBlocksTable with assigned table prefix +func (a RobotBlocksTable) WithPrefix(prefix string) *RobotBlocksTable { + return newRobotBlocksTable(a.SchemaName(), prefix+a.TableName(), a.TableName()) +} + +// WithSuffix creates new RobotBlocksTable with assigned table suffix +func (a RobotBlocksTable) WithSuffix(suffix string) *RobotBlocksTable { + return newRobotBlocksTable(a.SchemaName(), a.TableName()+suffix, a.TableName()) +} + +func newRobotBlocksTable(schemaName, tableName, alias string) *RobotBlocksTable { + return &RobotBlocksTable{ + robotBlocksTable: newRobotBlocksTableImpl(schemaName, tableName, alias), + EXCLUDED: newRobotBlocksTableImpl("", "excluded", ""), + } +} + +func newRobotBlocksTableImpl(schemaName, tableName, alias string) robotBlocksTable { + var ( + IDColumn = postgres.StringColumn("id") + BlockerIDColumn = postgres.StringColumn("blocker_id") + GameIDColumn = postgres.StringColumn("game_id") + SeatColumn = postgres.IntegerColumn("seat") + RobotIDColumn = postgres.StringColumn("robot_id") + DisplayNameColumn = postgres.StringColumn("display_name") + CreatedAtColumn = postgres.TimestampzColumn("created_at") + allColumns = postgres.ColumnList{IDColumn, BlockerIDColumn, GameIDColumn, SeatColumn, RobotIDColumn, DisplayNameColumn, CreatedAtColumn} + mutableColumns = postgres.ColumnList{BlockerIDColumn, GameIDColumn, SeatColumn, RobotIDColumn, DisplayNameColumn, CreatedAtColumn} + defaultColumns = postgres.ColumnList{CreatedAtColumn} + ) + + return robotBlocksTable{ + Table: postgres.NewTable(schemaName, tableName, alias, allColumns...), + + //Columns + ID: IDColumn, + BlockerID: BlockerIDColumn, + GameID: GameIDColumn, + Seat: SeatColumn, + RobotID: RobotIDColumn, + DisplayName: DisplayNameColumn, + CreatedAt: CreatedAtColumn, + + AllColumns: allColumns, + MutableColumns: mutableColumns, + DefaultColumns: defaultColumns, + } +} diff --git a/backend/internal/postgres/jet/backend/table/robot_friend_requests.go b/backend/internal/postgres/jet/backend/table/robot_friend_requests.go new file mode 100644 index 0000000..3393469 --- /dev/null +++ b/backend/internal/postgres/jet/backend/table/robot_friend_requests.go @@ -0,0 +1,96 @@ +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package table + +import ( + "github.com/go-jet/jet/v2/postgres" +) + +var RobotFriendRequests = newRobotFriendRequestsTable("backend", "robot_friend_requests", "") + +type robotFriendRequestsTable struct { + postgres.Table + + // Columns + ID postgres.ColumnString + RequesterID postgres.ColumnString + GameID postgres.ColumnString + Seat postgres.ColumnInteger + RobotID postgres.ColumnString + DisplayName postgres.ColumnString + CreatedAt postgres.ColumnTimestampz + + AllColumns postgres.ColumnList + MutableColumns postgres.ColumnList + DefaultColumns postgres.ColumnList +} + +type RobotFriendRequestsTable struct { + robotFriendRequestsTable + + EXCLUDED robotFriendRequestsTable +} + +// AS creates new RobotFriendRequestsTable with assigned alias +func (a RobotFriendRequestsTable) AS(alias string) *RobotFriendRequestsTable { + return newRobotFriendRequestsTable(a.SchemaName(), a.TableName(), alias) +} + +// Schema creates new RobotFriendRequestsTable with assigned schema name +func (a RobotFriendRequestsTable) FromSchema(schemaName string) *RobotFriendRequestsTable { + return newRobotFriendRequestsTable(schemaName, a.TableName(), a.Alias()) +} + +// WithPrefix creates new RobotFriendRequestsTable with assigned table prefix +func (a RobotFriendRequestsTable) WithPrefix(prefix string) *RobotFriendRequestsTable { + return newRobotFriendRequestsTable(a.SchemaName(), prefix+a.TableName(), a.TableName()) +} + +// WithSuffix creates new RobotFriendRequestsTable with assigned table suffix +func (a RobotFriendRequestsTable) WithSuffix(suffix string) *RobotFriendRequestsTable { + return newRobotFriendRequestsTable(a.SchemaName(), a.TableName()+suffix, a.TableName()) +} + +func newRobotFriendRequestsTable(schemaName, tableName, alias string) *RobotFriendRequestsTable { + return &RobotFriendRequestsTable{ + robotFriendRequestsTable: newRobotFriendRequestsTableImpl(schemaName, tableName, alias), + EXCLUDED: newRobotFriendRequestsTableImpl("", "excluded", ""), + } +} + +func newRobotFriendRequestsTableImpl(schemaName, tableName, alias string) robotFriendRequestsTable { + var ( + IDColumn = postgres.StringColumn("id") + RequesterIDColumn = postgres.StringColumn("requester_id") + GameIDColumn = postgres.StringColumn("game_id") + SeatColumn = postgres.IntegerColumn("seat") + RobotIDColumn = postgres.StringColumn("robot_id") + DisplayNameColumn = postgres.StringColumn("display_name") + CreatedAtColumn = postgres.TimestampzColumn("created_at") + allColumns = postgres.ColumnList{IDColumn, RequesterIDColumn, GameIDColumn, SeatColumn, RobotIDColumn, DisplayNameColumn, CreatedAtColumn} + mutableColumns = postgres.ColumnList{RequesterIDColumn, GameIDColumn, SeatColumn, RobotIDColumn, DisplayNameColumn, CreatedAtColumn} + defaultColumns = postgres.ColumnList{CreatedAtColumn} + ) + + return robotFriendRequestsTable{ + Table: postgres.NewTable(schemaName, tableName, alias, allColumns...), + + //Columns + ID: IDColumn, + RequesterID: RequesterIDColumn, + GameID: GameIDColumn, + Seat: SeatColumn, + RobotID: RobotIDColumn, + DisplayName: DisplayNameColumn, + CreatedAt: CreatedAtColumn, + + AllColumns: allColumns, + MutableColumns: mutableColumns, + DefaultColumns: defaultColumns, + } +} diff --git a/backend/internal/postgres/jet/backend/table/table_use_schema.go b/backend/internal/postgres/jet/backend/table/table_use_schema.go index 540bcec..1fab25c 100644 --- a/backend/internal/postgres/jet/backend/table/table_use_schema.go +++ b/backend/internal/postgres/jet/backend/table/table_use_schema.go @@ -10,6 +10,7 @@ package table // UseSchema sets a new schema name for all generated table SQL builder types. It is recommended to invoke // this method only once at the beginning of the program. func UseSchema(schema string) { + AccountBestMove = AccountBestMove.FromSchema(schema) AccountRoles = AccountRoles.FromSchema(schema) AccountStats = AccountStats.FromSchema(schema) AccountSuspensions = AccountSuspensions.FromSchema(schema) @@ -35,6 +36,8 @@ func UseSchema(schema string) { Games = Games.FromSchema(schema) Identities = Identities.FromSchema(schema) RetainedIdentities = RetainedIdentities.FromSchema(schema) + RobotBlocks = RobotBlocks.FromSchema(schema) + RobotFriendRequests = RobotFriendRequests.FromSchema(schema) Sessions = Sessions.FromSchema(schema) SuspensionReasons = SuspensionReasons.FromSchema(schema) }