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