package models import ( "database/sql" "time" pb "git.unistack.org/unistack-org/pkgdash/proto" "google.golang.org/protobuf/types/known/timestamppb" ) type Package struct { Created time.Time `db:"created"` Updated time.Time `db:"updated"` Name string `db:"name"` URL string `db:"url"` Modules uint64 `db:"modules"` Issues uint64 `db:"issues"` Comments uint64 `db:"comments"` ID uint64 `db:"id"` Status uint64 `db:"status"` LastCheck sql.NullTime `db:"last_check"` } func NewPackage(pkg *Package) *pb.Package { rsp := &pb.Package{ Name: pkg.Name, Url: pkg.URL, Modules: pkg.Modules, Issues: pkg.Issues, Comments: pkg.Comments, Id: pkg.ID, Created: timestamppb.New(pkg.Created), Updated: timestamppb.New(pkg.Updated), } if pkg.LastCheck.Valid { rsp.LastCheck = timestamppb.New(pkg.LastCheck.Time) } return rsp } type Module struct { Created time.Time `db:"created"` Updated time.Time `db:"updated"` Name string `db:"name"` Version string `db:"version"` LastVersion string `db:"last_version"` ID uint64 `db:"id"` Package uint64 `db:"package"` } func NewModule(mod *Module) *pb.Module { return &pb.Module{ Name: mod.Name, Version: mod.Version, LastVersion: mod.LastVersion, Package: mod.Package, Id: mod.ID, Created: timestamppb.New(mod.Created), Updated: timestamppb.New(mod.Updated), } } type Issue struct { Comment string `db:"comment"` Modules []int64 `db:"modules"` ID uint64 `db:"id"` Status uint64 `db:"status"` Package uint64 `db:"package"` } type Comment struct { Created time.Time `db:"created"` Updated time.Time `db:"updated"` Comment string `db:"comment"` ID uint64 `db:"id"` } func NewComment(com *Comment) *pb.Comment { return &pb.Comment{ Id: com.ID, Comment: com.Comment, Created: timestamppb.New(com.Created), Updated: timestamppb.New(com.Updated), } }