From 13800ab1838bec70c50f11e0c1297a4a01c883ae Mon Sep 17 00:00:00 2001 From: eyedeekay Date: Mon, 5 May 2025 17:05:38 -0400 Subject: [PATCH] basic idea... --- pkg/types/types.go | 83 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 pkg/types/types.go diff --git a/pkg/types/types.go b/pkg/types/types.go new file mode 100644 index 0000000..0582955 --- /dev/null +++ b/pkg/types/types.go @@ -0,0 +1,83 @@ +package types + +import "time" + +// Repository represents a GitHub repository with its basic information +type Repository struct { + Name string + FullName string + Description string + URL string + Owner string + Stars int + Forks int + LastUpdated time.Time + + PullRequests []PullRequest + Issues []Issue + Discussions []Discussion +} + +// PullRequest represents a GitHub pull request +type PullRequest struct { + Number int + Title string + URL string + Author string + AuthorURL string + CreatedAt time.Time + UpdatedAt time.Time + Labels []Label + Status string +} + +// Issue represents a GitHub issue +type Issue struct { + Number int + Title string + URL string + Author string + AuthorURL string + CreatedAt time.Time + UpdatedAt time.Time + Labels []Label +} + +// Discussion represents a GitHub discussion +type Discussion struct { + Title string + URL string + Author string + AuthorURL string + CreatedAt time.Time + LastUpdated time.Time + Category string +} + +// Label represents a GitHub label +type Label struct { + Name string + Color string +} + +// Dashboard represents the entire dashboard data +type Dashboard struct { + Username string + Organization string + GeneratedAt time.Time + Repositories []Repository + TotalPRs int + TotalIssues int + TotalDiscussions int +} + +// Config holds the application configuration +type Config struct { + User string + Organization string + OutputDir string + GithubToken string + CacheDir string + CacheTTL time.Duration + Verbose bool +}