summaryrefslogtreecommitdiffhomepage
path: root/internal/session
diff options
context:
space:
mode:
authoradamdottv <[email protected]>2025-05-13 10:45:58 -0500
committeradamdottv <[email protected]>2025-05-13 10:45:58 -0500
commit1f9610e266c2c630cd39d3c5d5e62328e2eac95b (patch)
tree999cb15e99fe337f04cc4cba32e35c9f108d1e4d /internal/session
parentae86ef519c5dc557914c29bd1786b1c87d8dcb95 (diff)
downloadopencode-1f9610e266c2c630cd39d3c5d5e62328e2eac95b.tar.gz
opencode-1f9610e266c2c630cd39d3c5d5e62328e2eac95b.zip
chore: refactoring
Diffstat (limited to 'internal/session')
-rw-r--r--internal/session/session.go24
1 files changed, 17 insertions, 7 deletions
diff --git a/internal/session/session.go b/internal/session/session.go
index f670cf4f9..aea4fdaa5 100644
--- a/internal/session/session.go
+++ b/internal/session/session.go
@@ -21,9 +21,9 @@ type Session struct {
CompletionTokens int64
Cost float64
Summary string
- SummarizedAt int64
- CreatedAt int64
- UpdatedAt int64
+ SummarizedAt time.Time
+ CreatedAt time.Time
+ UpdatedAt time.Time
}
const (
@@ -153,6 +153,11 @@ func (s *service) Update(ctx context.Context, session Session) (Session, error)
if session.ID == "" {
return Session{}, fmt.Errorf("cannot update session with empty ID")
}
+ var summarizedAt sql.NullInt64
+ if !session.SummarizedAt.IsZero() {
+ summarizedAt = sql.NullInt64{Int64: session.SummarizedAt.UnixMilli(), Valid: true}
+ }
+
params := db.UpdateSessionParams{
ID: session.ID,
Title: session.Title,
@@ -160,7 +165,7 @@ func (s *service) Update(ctx context.Context, session Session) (Session, error)
CompletionTokens: session.CompletionTokens,
Cost: session.Cost,
Summary: sql.NullString{String: session.Summary, Valid: session.Summary != ""},
- SummarizedAt: sql.NullInt64{Int64: session.SummarizedAt, Valid: session.SummarizedAt > 0},
+ SummarizedAt: summarizedAt,
}
dbSession, err := s.db.UpdateSession(ctx, params)
if err != nil {
@@ -199,6 +204,11 @@ func (s *service) Subscribe(ctx context.Context) <-chan pubsub.Event[Session] {
}
func (s *service) fromDBItem(item db.Session) Session {
+ var summarizedAt time.Time
+ if item.SummarizedAt.Valid {
+ summarizedAt = time.UnixMilli(item.SummarizedAt.Int64)
+ }
+
return Session{
ID: item.ID,
ParentSessionID: item.ParentSessionID.String,
@@ -208,9 +218,9 @@ func (s *service) fromDBItem(item db.Session) Session {
CompletionTokens: item.CompletionTokens,
Cost: item.Cost,
Summary: item.Summary.String,
- SummarizedAt: item.SummarizedAt.Int64,
- CreatedAt: item.CreatedAt * 1000,
- UpdatedAt: item.UpdatedAt * 1000,
+ SummarizedAt: summarizedAt,
+ CreatedAt: time.UnixMilli(item.CreatedAt * 1000),
+ UpdatedAt: time.UnixMilli(item.UpdatedAt * 1000),
}
}