Add UI console and spare forecast naming

This commit is contained in:
2026-02-06 00:01:52 +03:00
parent 5af1462645
commit ee46a093d3
21 changed files with 1573 additions and 207 deletions

View File

@@ -123,3 +123,50 @@ func (r *TicketRepository) ListByAsset(ctx context.Context, assetID int64) ([]do
}
return items, nil
}
func (r *TicketRepository) ListAll(ctx context.Context, limit int) ([]domain.Ticket, error) {
if limit <= 0 {
limit = 200
}
rows, err := r.db.QueryContext(ctx,
`SELECT t.id, t.source, t.external_id, t.title, t.status, t.opened_at, t.closed_at, t.url, t.created_at, t.updated_at
FROM tickets t
ORDER BY t.updated_at DESC, t.id DESC
LIMIT ?`,
limit,
)
if err != nil {
return nil, err
}
defer rows.Close()
items := make([]domain.Ticket, 0)
for rows.Next() {
var ticket domain.Ticket
var openedAt sql.NullTime
var closedAt sql.NullTime
var url sql.NullString
if err := rows.Scan(&ticket.ID, &ticket.Source, &ticket.ExternalID, &ticket.Title, &ticket.Status, &openedAt, &closedAt, &url, &ticket.CreatedAt, &ticket.UpdatedAt); err != nil {
return nil, err
}
if openedAt.Valid {
value := openedAt.Time
ticket.OpenedAt = &value
}
if closedAt.Valid {
value := closedAt.Time
ticket.ClosedAt = &value
}
if url.Valid {
value := url.String
ticket.URL = &value
}
items = append(items, ticket)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}