first push, broken import, WIP
This commit is contained in:
parent
9e790696a5
commit
a22dcb9f4e
3 changed files with 163 additions and 0 deletions
19
backend/internal/model/timereport
Normal file
19
backend/internal/model/timereport
Normal file
|
@ -0,0 +1,19 @@
|
|||
package model
|
||||
|
||||
type TimeReport struct {
|
||||
reportId string
|
||||
projectName string
|
||||
userName string
|
||||
userRole string
|
||||
reportDate string
|
||||
timeWorked uint64
|
||||
isSigned bool
|
||||
reportStatus string // Example "draft", "signed", "unsigned"
|
||||
}
|
||||
|
||||
type Project struct {
|
||||
timeReports []TimeReport
|
||||
projectName string
|
||||
projectmembers map[string]User
|
||||
projectRoles map[string]User
|
||||
}
|
139
backend/internal/model/user.go
Normal file
139
backend/internal/model/user.go
Normal file
|
@ -0,0 +1,139 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
type Account struct {
|
||||
fullName string
|
||||
userName string
|
||||
}
|
||||
|
||||
type Administrator struct {
|
||||
projects map[string]Project
|
||||
Account
|
||||
ProjectMember // comp
|
||||
}
|
||||
|
||||
// Administrator reciever functions
|
||||
func (administrator Administrator) addUser(project *Project, user *User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (administrator Administrator) removerUser(project *Project, user *User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (administrator Administrator) deleteProject(project *Project) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (administrator Administrator) changeUserRole(project *Project, user *User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (administrator *Administrator) login() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (administrator *Administrator) logout() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
type ProjectManager struct {
|
||||
managedProjects map[string]Project // projekt som förvaltas av projektledaren
|
||||
totalTime uint64 // total totalt tid arbetat av projektledaren
|
||||
Account
|
||||
ProjectMember // comp
|
||||
}
|
||||
|
||||
// ProjectManager reciever functions
|
||||
func (projectManager ProjectManager) signReport(timeReport *TimeReport, user User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager ProjectManager) unsignReport(timeReport *TimeReport, user User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager ProjectManager) getAllReports(project *Project) ([]TimeReport, error) {
|
||||
// WIP
|
||||
return project.timeReports, errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager ProjectManager) assignRole(user *User, project *Project, newRole string) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager ProjectManager) removeMember(project *Project, user *User) error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager ProjectManager) getTotalTime(project *Project) (uint64, error) {
|
||||
// WIP
|
||||
return 0, errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager *ProjectManager) login() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectManager *ProjectManager) logout() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
type ProjectMember struct {
|
||||
timereports []TimeReport
|
||||
role string // ?????
|
||||
Account // comp
|
||||
}
|
||||
|
||||
// User reciever functions
|
||||
|
||||
// function used to create a time report, returning a *TimeReport is questionable
|
||||
func (ProjectMember *ProjectMember) createTimeReport(Project *Project) (*TimeReport, error) {
|
||||
// WIP
|
||||
return &TimeReport{}, errors.New("WIP")
|
||||
}
|
||||
|
||||
func (ProjectMember ProjectMember) getTimeReport(timereports *[]TimeReport) (*TimeReport, error) {
|
||||
// WIP
|
||||
return &TimeReport{}, errors.New("WIP")
|
||||
}
|
||||
|
||||
func (ProjectMember *ProjectMember) editTimeReport(timereport *TimeReport) {
|
||||
// timereport.editReport()
|
||||
// WIP
|
||||
}
|
||||
|
||||
func (projectUser ProjectMember) deleteTimeReport(timeReport *TimeReport) error { // Ska bara project manager kunna göra detta? fråga ledarna!
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectUser *ProjectMember) login() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
func (projectUser *ProjectMember) logout() error {
|
||||
// WIP
|
||||
return errors.New("WIP")
|
||||
}
|
||||
|
||||
type User interface {
|
||||
login()
|
||||
logout()
|
||||
}
|
5
go.work.sum
Normal file
5
go.work.sum
Normal file
|
@ -0,0 +1,5 @@
|
|||
github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0=
|
||||
github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw=
|
||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
Loading…
Add table
Reference in a new issue