Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
package queries
import (
"time"
"fiskerinc.com/modules/common"
"github.com/go-pg/pg/v10/orm"
"github.com/pkg/errors"
)
const versionsAtSQL = "SELECT version_source, version FROM public.car_version_logs WHERE id IN (SELECT MAX(id) as id FROM public.car_version_logs WHERE vin = ? AND created_at <= ? GROUP BY vin, version_source)"
type CarVersionsLogInterface interface {
LogVersionChange(log *common.CarVersionLogs) (orm.Result, error)
SelectByVIN(vin string, options *PageQueryOptions) ([]common.CarVersionLogs, int, error)
GetCarVersions(vin string, timestamp time.Time) (map[string]string, error)
}
// CarVersionsLog query methods
type CarVersionsLog struct {
QueryBase
}
func (c *CarVersionsLog) LogVersionChange(log *common.CarVersionLogs) (orm.Result, error) {
return c.insert(log)
}
func (c *CarVersionsLog) SelectByVIN(vin string, options *PageQueryOptions) ([]common.CarVersionLogs, int, error) {
var logs []common.CarVersionLogs
query := c.GetDBConn().Model(&logs).Where("vin = ?", vin)
query = c.pageQuery(query, options)
total, err := query.SelectAndCount()
return logs, total, errors.WithStack(err)
}
func (c *CarVersionsLog) GetCarVersions(vin string, timestamp time.Time) (map[string]string, error) {
logs := []common.CarVersionLogs{}
result := map[string]string{}
_, err := c.GetDBConn().Query(&logs, versionsAtSQL, vin, timestamp)
if err == nil {
result = map[string]string{}
for _, log := range logs {
result[string(log.VersionSource)] = log.Version
}
}
return result, errors.WithStack(err)
}