models

package
v0.0.0-...-e75809f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2020 License: GPL-3.0 Imports: 4 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Category

type Category struct {
	gorm.Model
	Title       string `gorm:"type:varchar(255); not null"`
	Description string `gorm:"type:text"`
}

Category represent a category in feedback form

type Feedback

type Feedback struct {
	gorm.Model
	FeedbackForm     FeedbackForm
	Title            string `gorm:"type:varchar(255); not null"`
	FeedbackFormID   uint   `gorm:"not null"`
	ForUserProfile   UserProfile
	ForUserProfileID uint
	ByUserProfile    UserProfile
	ByUserProfileID  uint `gorm:"not null"`
	Team             Team
	TeamID           uint `gorm:"not null"`
	Status           int8 `gorm:"default:0; not null;"`
	SubmittedAt      *time.Time
	DurationStart    time.Time `gorm:"not null"`
	DurationEnd      time.Time `gorm:"not null"`
	ExpireAt         time.Time `gorm:"not null"`
}

Feedback represent a submitted/in-progress feedback form by a user

type FeedbackForm

type FeedbackForm struct {
	gorm.Model
	Title       string `gorm:"type:varchar(255); not null"`
	Description string `gorm:"type:text;"`
	Status      int8   `gorm:"default:0; not null"`
	Archive     bool   `gorm:"default:false; not null"`
}

FeedbackForm represent template form for feedback TODO Add support for versioning

type FeedbackFormContent

type FeedbackFormContent struct {
	gorm.Model
	FeedbackForm   FeedbackForm
	FeedbackFormID uint `gorm:"not null"`
	Skill          Skill
	SkillID        uint `gorm:"not null"`
	Category       Category
	CategoryID     uint `gorm:"not null"`
}

FeedbackFormContent represent the content of the feedback form TODO Add support for making it non-editable

type OTP

type OTP struct {
	Code     string `gorm:"type:varchar(16);not null"`
	ExpiryAt time.Time
	User     User
	UserID   uint `gorm:"unique"`
}

OTP ...

type Question

type Question struct {
	gorm.Model
	Text    string `gorm:"type:text; not null"`
	Type    int8   `gorm:"default:0; not null"`
	Skill   Skill
	SkillID uint         `gorm:"not null"`
	Options fields.JSONB `gorm:"type:jsonb; not null; default:'{}'::jsonb"`
	Weight  int          `gorm:"default:1; not null"`
}

Question represent the questions asked for a skill TODO Add support for versioning and making it non-editable

type QuestionResponse

type QuestionResponse struct {
	gorm.Model
	Feedback              Feedback
	FeedbackID            uint `gorm:"not null"`
	FeedbackFormContent   FeedbackFormContent
	FeedbackFormContentID uint `gorm:"not null"`
	Question              Question
	QuestionID            uint   `gorm:"not null"`
	Response              string `gorm:"type:text"`
	Comment               string `gorm:"type:text"`
}

QuestionResponse represent the response/answer to a question asked for a skill

type Retrospective

type Retrospective struct {
	gorm.Model
	Title              string       `gorm:"type:varchar(255); not null"`
	ProjectName        string       `gorm:"type:varchar(255); not null"`
	TaskProviderConfig fields.JSONB `gorm:"type:jsonb; not null; default:'[]'::jsonb"`
	Team               Team
	TeamID             uint `gorm:"not null"`
	Sprints            []Sprint
	HrsPerStoryPoint   float64 `gorm:"not null"`
	CreatedBy          User
	CreatedByID        uint `gorm:"not null"`
}

Retrospective ...

type RetrospectiveFeedback

type RetrospectiveFeedback struct {
	gorm.Model
	SubType         string `gorm:"type:varchar(30); not null"`
	Type            int8   `gorm:"default:0; not null"`
	Retrospective   Retrospective
	RetrospectiveID uint   `gorm:"not null"`
	Text            string `gorm:"type:text; not null"`
	Scope           int8   `gorm:"default:0; not null"`
	AssigneeID      uint
	Assignee        userModels.User
	AddedAt         *time.Time
	ResolvedAt      *time.Time
	ExpectedAt      *time.Time
	CreatedByID     uint `gorm:"not null"`
	CreatedBy       userModels.User
}

RetrospectiveFeedback represent Goals, Highlights and Notes of a sprint

type Role

type Role struct {
	gorm.Model
	Name string `gorm:"type:varchar(64)"`
}

Role represent supported user roles

type Schedule

type Schedule struct {
	gorm.Model
	Team          Team
	TeamID        uint      `gorm:"not null"`
	PeriodValue   uint      `gorm:"not null"`                   // consecutive period units, after which event need to be recreated
	PeriodUnit    string    `gorm:"type:varchar(15); not null"` // Unit of period, eg: year, week, days
	PeriodOffset  uint      `gorm:"default:1; not null"`        // Offset in days between the period end and actual event date
	FeedbackTitle string    `gorm:"type:varchar(255); not null"`
	ExpireInDays  uint      `gorm:"default:10; not null"`
	NextEventAt   time.Time `gorm:"not null"`
	Active        bool      `gorm:"default:true; not null"`
}

Schedule at which feedback events would be created for a team

type Skill

type Skill struct {
	gorm.Model
	Title        string `gorm:"type:varchar(255); not null"`
	DisplayTitle string `gorm:"type:varchar(255)"`
	Description  string `gorm:"type:text"`
	Weight       int    `gorm:"default:1"`
	Questions    []Question
}

Skill represent the skill comprised by category TODO Add support for versioning and making it non-editable

type Sprint

type Sprint struct {
	gorm.Model
	Title            string `gorm:"type:varchar(255); not null"`
	SprintID         string `gorm:"type:varchar(30); not null"`
	Retrospective    Retrospective
	RetrospectiveID  uint `gorm:"not null"`
	Status           int8 `gorm:"default:0; not null"`
	StartDate        *time.Time
	EndDate          *time.Time
	SprintMembers    []SprintMember
	LastSyncedAt     *time.Time
	CurrentlySyncing bool `gorm:"default:true;not null"`
	CreatedBy        User
	CreatedByID      uint `gorm:"not null"`
}

Sprint ...

type SprintMember

type SprintMember struct {
	gorm.Model
	Sprint             Sprint
	SprintID           uint `gorm:"not null"`
	Member             User
	MemberID           uint    `gorm:"not null"`
	AllocationPercent  float64 `gorm:"not null;default:100"`
	ExpectationPercent float64 `gorm:"not null;default:100"`
	Tasks              []SprintMemberTask
	Vacations          float64 `gorm:"not null;default:0"`
	Rating             int8    `gorm:"default:2; not null"`
	Comment            string  `gorm:"type:text"`
}

SprintMember ...

type SprintMemberTask

type SprintMemberTask struct {
	gorm.Model
	SprintMember     SprintMember
	SprintMemberID   uint `gorm:"not null"`
	Task             Task
	TaskID           uint    `gorm:"not null"`
	TimeSpentMinutes uint    `gorm:"not null"`
	PointsEarned     float64 `gorm:"default:0; not null"`
	PointsAssigned   float64 `gorm:"default:0; not null"`
	Rating           int8    `gorm:"default:2; not null"`
	Comment          string  `gorm:"type:text"`
}

SprintMemberTask ...

type SprintSyncStatus

type SprintSyncStatus struct {
	gorm.Model
	SprintID uint `gorm:"not null"`
	Sprint   Sprint
	Status   int8 `gorm:"default:0; not null"`
}

SprintSyncStatus stores the sync history of a sprint

type SprintTask

type SprintTask struct {
	gorm.Model
	Sprint   Sprint
	SprintID uint `gorm:"not null"`
	Task     Task
	TaskID   uint `gorm:"not null"`
}

SprintTask ...

type Task

type Task struct {
	gorm.Model
	TaskID            string `gorm:"type:varchar(30); not null"`
	Retrospective     Retrospective
	RetrospectiveID   uint   `gorm:"not null"`
	Summary           string `gorm:"type:varchar(255); not null"`
	Type              string `gorm:"type:varchar(30); not null"`
	Status            string `gorm:"type:varchar(50); not null"`
	Priority          string `gorm:"type:varchar(50); not null"`
	Assignee          string `gorm:"type:varchar(100); not null"`
	Estimate          *float64
	Fields            fields.JSONB `gorm:"type:jsonb; not null; default:'{}'::jsonb"`
	SprintMemberTasks []SprintMemberTask
}

Task ...

type TaskKeyMap

type TaskKeyMap struct {
	gorm.Model
	TaskID uint `gorm:"not null"`
	Task   Task
	Key    string `gorm:"type:varchar(30); not null"`
}

TaskKeyMap ...

type Team

type Team struct {
	gorm.Model
	Name        string `gorm:"type:varchar(64);not null"`
	Description string `gorm:"type:text"`
	Active      bool   `gorm:"default:true; not null"`
	Users       []User
}

Team represent a team/project comprising a set of user

type TeamFeedbackForm

type TeamFeedbackForm struct {
	gorm.Model
	Team           Team
	TeamID         uint `gorm:"not null"`
	ForRole        Role
	ForRoleID      uint `gorm:"not null"`
	FeedbackForm   FeedbackForm
	FeedbackFormID uint `gorm:"not null"`
	Active         bool `gorm:"default:false; not null"`
}

TeamFeedbackForm represent the feedback template to be used for a role under a team

type Trail

type Trail struct {
	gorm.Model
	Action       string `gorm:"type:varchar(255); not null"`
	ActionItem   string `gorm:"type:varchar(255); not null"`
	ActionItemID uint   `gorm:"not null"`
	ActionBy     User
	ActionByID   uint `gorm:"not null"`
}

Trail represents an action on a retrospective item

type User

type User struct {
	gorm.Model
	Email     string `gorm:"type:varchar(255); not null; unique_index"`
	FirstName string `gorm:"type:varchar(30); not null"`
	LastName  string `gorm:"type:varchar(150)"`
	Active    bool   `gorm:"default:true; not null"`
	Teams     []Team
	Profiles  []UserProfile
}

User represent the app user in system

type UserProfile

type UserProfile struct {
	gorm.Model
	User   User
	UserID uint `gorm:"not null"`
	Role   Role
	RoleID uint `gorm:"not null"`
	Active bool `gorm:"default:false; not null"`
}

UserProfile associated to app users A user can have multiple profile, but only one of them could be active at any moment

type UserTeam

type UserTeam struct {
	gorm.Model
	User     User
	UserID   uint `gorm:"not null"`
	Team     Team
	TeamID   uint      `gorm:"not null"`
	Role     int8      `gorm:"default:0; not null"`
	JoinedAt time.Time `gorm:"not null"`
	LeavedAt *time.Time
}

UserTeam represent team associations of a users

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL