Files
2026-06-08 13:34:53 -05:00

91 lines
2.7 KiB
Go

package model
import "time"
type User struct {
ID int64 `json:"id"`
Email string `json:"email"`
Username string `json:"username"`
IsAdmin bool `json:"is_admin"`
}
type Repository struct {
ID int64 `json:"id"`
OwnerUserID int64 `json:"-"`
Owner string `json:"owner"`
Name string `json:"name"`
Visibility string `json:"visibility"`
Description string `json:"description"`
DefaultBranch string `json:"default_branch"`
Archived bool `json:"archived"`
ForkedFromID *int64 `json:"forked_from_id,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type PullRequest struct {
ID int64 `json:"id"`
Number int `json:"number"`
TargetRepositoryID int64 `json:"-"`
SourceRepositoryID int64 `json:"-"`
AuthorUserID int64 `json:"-"`
Author string `json:"author"`
SourceOwner string `json:"source_owner"`
SourceRepo string `json:"source_repo"`
SourceBranch string `json:"source_branch"`
TargetOwner string `json:"target_owner"`
TargetRepo string `json:"target_repo"`
TargetBranch string `json:"target_branch"`
Title string `json:"title"`
Description string `json:"description"`
Status string `json:"status"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ClosedAt *time.Time `json:"closed_at,omitempty"`
MergedAt *time.Time `json:"merged_at,omitempty"`
}
type ServerConfig struct {
Addr string `json:"addr"`
PublicURL string `json:"public_url"`
Storage string `json:"storage"`
MySQLDSN string `json:"mysql_dsn"`
}
type RefInfo struct {
Name string `json:"name"`
Commit string `json:"commit"`
Date time.Time `json:"date"`
Message string `json:"message"`
}
type Collaborator struct {
ID int64 `json:"id"`
Username string `json:"username"`
Role string `json:"role"`
CreatedAt time.Time `json:"created_at"`
}
type PRComment struct {
ID int64 `json:"id"`
Author string `json:"author"`
Body string `json:"body"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type TokenInfo struct {
ID int64 `json:"id"`
CreatedAt time.Time `json:"created_at"`
ExpiresAt time.Time `json:"expires_at"`
RevokedAt *time.Time `json:"revoked_at,omitempty"`
Active bool `json:"active"`
}
type Config struct {
Server string `json:"server"`
Username string `json:"username"`
Token string `json:"token"`
ExpiresAt time.Time `json:"expires_at"`
}