feat: init

This commit is contained in:
decentral1se
2023-01-14 15:14:06 +01:00
commit f44e2acbaf
245 changed files with 44079 additions and 0 deletions

127
models/activity.go Normal file
View File

@ -0,0 +1,127 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// Activity activity
//
// swagger:model Activity
type Activity struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// Description of this activity
Comment string `json:"comment,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Name of this activity
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// project
Project int64 `json:"project,omitempty"`
// Whether this activity is visible and can be used for timesheets
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this activity
func (m *Activity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Activity) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *Activity) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *Activity) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validates this activity based on context it is used
func (m *Activity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *Activity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Activity) UnmarshalBinary(b []byte) error {
var res Activity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,254 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityCollection activity collection
//
// swagger:model ActivityCollection
type ActivityCollection struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// Description of this activity
Comment string `json:"comment,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this activity
MetaFields []*ActivityMeta `json:"metaFields"`
// Name of this activity
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// parent title
ParentTitle string `json:"parentTitle,omitempty"`
// project
Project int64 `json:"project,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the activity
Teams []*Team `json:"teams"`
// Whether this activity is visible and can be used for timesheets
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this activity collection
func (m *ActivityCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityCollection) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ActivityCollection) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityCollection) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ActivityCollection) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityCollection) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this activity collection based on the context it is used
func (m *ActivityCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityCollection) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityCollection) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ActivityCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityCollection) UnmarshalBinary(b []byte) error {
var res ActivityCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,89 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityEditForm activity edit form
//
// swagger:model ActivityEditForm
type ActivityEditForm struct {
// billable
Billable bool `json:"billable,omitempty"`
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// invoice text
InvoiceText string `json:"invoiceText,omitempty"`
// name
// Required: true
Name *string `json:"name"`
// Project ID
Project int64 `json:"project,omitempty"`
// visible
Visible bool `json:"visible,omitempty"`
}
// Validate validates this activity edit form
func (m *ActivityEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityEditForm) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
return nil
}
// ContextValidate validates this activity edit form based on context it is used
func (m *ActivityEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ActivityEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityEditForm) UnmarshalBinary(b []byte) error {
var res ActivityEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

313
models/activity_entity.go Normal file
View File

@ -0,0 +1,313 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityEntity activity entity
//
// swagger:model ActivityEntity
type ActivityEntity struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The total monetary budget, will be zero if unconfigured.
// Required: true
// Maximum: 9e+11
// Minimum: 0
Budget *float32 `json:"budget"`
// The type of budget:
// - null = default / full time
// - month = monthly budget
BudgetType string `json:"budgetType,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// Description of this activity
Comment string `json:"comment,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this activity
MetaFields []*ActivityMeta `json:"metaFields"`
// Name of this activity
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// parent title
ParentTitle string `json:"parentTitle,omitempty"`
// project
Project int64 `json:"project,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the activity
Teams []*Team `json:"teams"`
// The time budget in seconds, will be zero if unconfigured.
// Required: true
// Maximum: 2.1456e+09
// Minimum: 0
TimeBudget *int64 `json:"timeBudget"`
// Whether this activity is visible and can be used for timesheets
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this activity entity
func (m *ActivityEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimeBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityEntity) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ActivityEntity) validateBudget(formats strfmt.Registry) error {
if err := validate.Required("budget", "body", m.Budget); err != nil {
return err
}
if err := validate.Minimum("budget", "body", float64(*m.Budget), 0, false); err != nil {
return err
}
if err := validate.Maximum("budget", "body", float64(*m.Budget), 9e+11, false); err != nil {
return err
}
return nil
}
func (m *ActivityEntity) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityEntity) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ActivityEntity) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityEntity) validateTimeBudget(formats strfmt.Registry) error {
if err := validate.Required("timeBudget", "body", m.TimeBudget); err != nil {
return err
}
if err := validate.MinimumInt("timeBudget", "body", *m.TimeBudget, 0, false); err != nil {
return err
}
if err := validate.MaximumInt("timeBudget", "body", *m.TimeBudget, 2.1456e+09, false); err != nil {
return err
}
return nil
}
func (m *ActivityEntity) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this activity entity based on the context it is used
func (m *ActivityEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityEntity) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ActivityEntity) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ActivityEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityEntity) UnmarshalBinary(b []byte) error {
var res ActivityEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

175
models/activity_expanded.go Normal file
View File

@ -0,0 +1,175 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityExpanded activity expanded
//
// swagger:model ActivityExpanded
type ActivityExpanded struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// Description of this activity
Comment string `json:"comment,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Name of this activity
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// project
Project *Project `json:"project,omitempty"`
// Whether this activity is visible and can be used for timesheets
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this activity expanded
func (m *ActivityExpanded) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityExpanded) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ActivityExpanded) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ActivityExpanded) validateProject(formats strfmt.Registry) error {
if swag.IsZero(m.Project) { // not required
return nil
}
if m.Project != nil {
if err := m.Project.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
func (m *ActivityExpanded) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this activity expanded based on the context it is used
func (m *ActivityExpanded) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateProject(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityExpanded) contextValidateProject(ctx context.Context, formats strfmt.Registry) error {
if m.Project != nil {
if err := m.Project.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ActivityExpanded) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityExpanded) UnmarshalBinary(b []byte) error {
var res ActivityExpanded
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/activity_meta.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityMeta activity meta
//
// swagger:model ActivityMeta
type ActivityMeta struct {
// Name of the meta (custom) field
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// Value of the meta (custom) field
// Max Length: 65535
Value string `json:"value,omitempty"`
}
// Validate validates this activity meta
func (m *ActivityMeta) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateValue(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityMeta) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *ActivityMeta) validateValue(formats strfmt.Registry) error {
if swag.IsZero(m.Value) { // not required
return nil
}
if err := validate.MaxLength("value", "body", m.Value, 65535); err != nil {
return err
}
return nil
}
// ContextValidate validates this activity meta based on context it is used
func (m *ActivityMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ActivityMeta) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityMeta) UnmarshalBinary(b []byte) error {
var res ActivityMeta
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

148
models/activity_rate.go Normal file
View File

@ -0,0 +1,148 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityRate activity rate
//
// swagger:model ActivityRate
type ActivityRate struct {
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// is fixed
// Required: true
IsFixed *bool `json:"isFixed"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// user
User *User `json:"user,omitempty"`
}
// Validate validates this activity rate
func (m *ActivityRate) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateIsFixed(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityRate) validateIsFixed(formats strfmt.Registry) error {
if err := validate.Required("isFixed", "body", m.IsFixed); err != nil {
return err
}
return nil
}
func (m *ActivityRate) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
func (m *ActivityRate) validateUser(formats strfmt.Registry) error {
if swag.IsZero(m.User) { // not required
return nil
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this activity rate based on the context it is used
func (m *ActivityRate) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityRate) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ActivityRate) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityRate) UnmarshalBinary(b []byte) error {
var res ActivityRate
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,80 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ActivityRateForm activity rate form
//
// swagger:model ActivityRateForm
type ActivityRateForm struct {
// The internal rate (eg. 10.0 or 10)
InternalRate float64 `json:"internalRate,omitempty"`
// If "true" each time record gets the same rate, regardless of its duration
IsFixed bool `json:"isFixed,omitempty"`
// The rate (eg. 10.5)
// Required: true
Rate *float64 `json:"rate"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this activity rate form
func (m *ActivityRateForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ActivityRateForm) validateRate(formats strfmt.Registry) error {
if err := validate.Required("rate", "body", m.Rate); err != nil {
return err
}
return nil
}
// ContextValidate validates this activity rate form based on context it is used
func (m *ActivityRateForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ActivityRateForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ActivityRateForm) UnmarshalBinary(b []byte) error {
var res ActivityRateForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

144
models/customer.go Normal file
View File

@ -0,0 +1,144 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// Customer customer
//
// swagger:model Customer
type Customer struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// number
// Max Length: 50
Number string `json:"number,omitempty"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this customer
func (m *Customer) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Customer) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *Customer) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *Customer) validateNumber(formats strfmt.Registry) error {
if swag.IsZero(m.Number) { // not required
return nil
}
if err := validate.MaxLength("number", "body", m.Number, 50); err != nil {
return err
}
return nil
}
func (m *Customer) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validates this customer based on context it is used
func (m *Customer) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *Customer) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Customer) UnmarshalBinary(b []byte) error {
var res Customer
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,290 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerCollection customer collection
//
// swagger:model CustomerCollection
type CustomerCollection struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// currency
// Required: true
// Max Length: 3
Currency *string `json:"currency"`
// id
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this customer
MetaFields []*CustomerMeta `json:"metaFields"`
// name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// number
// Max Length: 50
Number string `json:"number,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the customer
Teams []*Team `json:"teams"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this customer collection
func (m *CustomerCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateCurrency(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerCollection) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *CustomerCollection) validateCurrency(formats strfmt.Registry) error {
if err := validate.Required("currency", "body", m.Currency); err != nil {
return err
}
if err := validate.MaxLength("currency", "body", *m.Currency, 3); err != nil {
return err
}
return nil
}
func (m *CustomerCollection) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerCollection) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *CustomerCollection) validateNumber(formats strfmt.Registry) error {
if swag.IsZero(m.Number) { // not required
return nil
}
if err := validate.MaxLength("number", "body", m.Number, 50); err != nil {
return err
}
return nil
}
func (m *CustomerCollection) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerCollection) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this customer collection based on the context it is used
func (m *CustomerCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerCollection) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerCollection) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *CustomerCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerCollection) UnmarshalBinary(b []byte) error {
var res CustomerCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,164 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerEditForm customer edit form
//
// swagger:model CustomerEditForm
type CustomerEditForm struct {
// address
Address string `json:"address,omitempty"`
// billable
Billable bool `json:"billable,omitempty"`
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// company
Company string `json:"company,omitempty"`
// contact
Contact string `json:"contact,omitempty"`
// country
// Required: true
Country *string `json:"country"`
// currency
// Required: true
Currency *string `json:"currency"`
// email
Email string `json:"email,omitempty"`
// fax
Fax string `json:"fax,omitempty"`
// homepage
Homepage string `json:"homepage,omitempty"`
// mobile
Mobile string `json:"mobile,omitempty"`
// name
// Required: true
Name *string `json:"name"`
// number
Number string `json:"number,omitempty"`
// phone
Phone string `json:"phone,omitempty"`
// timezone
// Required: true
Timezone *string `json:"timezone"`
// vat Id
VatID string `json:"vatId,omitempty"`
// visible
Visible bool `json:"visible,omitempty"`
}
// Validate validates this customer edit form
func (m *CustomerEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateCountry(formats); err != nil {
res = append(res, err)
}
if err := m.validateCurrency(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimezone(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerEditForm) validateCountry(formats strfmt.Registry) error {
if err := validate.Required("country", "body", m.Country); err != nil {
return err
}
return nil
}
func (m *CustomerEditForm) validateCurrency(formats strfmt.Registry) error {
if err := validate.Required("currency", "body", m.Currency); err != nil {
return err
}
return nil
}
func (m *CustomerEditForm) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
return nil
}
func (m *CustomerEditForm) validateTimezone(formats strfmt.Registry) error {
if err := validate.Required("timezone", "body", m.Timezone); err != nil {
return err
}
return nil
}
// ContextValidate validates this customer edit form based on context it is used
func (m *CustomerEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *CustomerEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerEditForm) UnmarshalBinary(b []byte) error {
var res CustomerEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

560
models/customer_entity.go Normal file
View File

@ -0,0 +1,560 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerEntity customer entity
//
// swagger:model CustomerEntity
type CustomerEntity struct {
// address
Address string `json:"address,omitempty"`
// billable
// Required: true
Billable *bool `json:"billable"`
// The total monetary budget, will be zero if unconfigured.
// Required: true
// Maximum: 9e+11
// Minimum: 0
Budget *float32 `json:"budget"`
// The type of budget:
// - null = default / full time
// - month = monthly budget
BudgetType string `json:"budgetType,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// company
// Max Length: 255
Company string `json:"company,omitempty"`
// contact
// Max Length: 255
Contact string `json:"contact,omitempty"`
// country
// Required: true
// Max Length: 2
Country *string `json:"country"`
// currency
// Required: true
// Max Length: 3
Currency *string `json:"currency"`
// Customers contact email
//
// Limited via RFC to 254 chars
// Max Length: 254
Email string `json:"email,omitempty"`
// fax
// Max Length: 255
Fax string `json:"fax,omitempty"`
// homepage
// Max Length: 255
Homepage string `json:"homepage,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this customer
MetaFields []*CustomerMeta `json:"metaFields"`
// mobile
// Max Length: 255
Mobile string `json:"mobile,omitempty"`
// name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// number
// Max Length: 50
Number string `json:"number,omitempty"`
// phone
// Max Length: 255
Phone string `json:"phone,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the customer
Teams []*Team `json:"teams"`
// The time budget in seconds, will be zero if unconfigured.
// Required: true
// Maximum: 2.1456e+09
// Minimum: 0
TimeBudget *int64 `json:"timeBudget"`
// Timezone of begin and end
//
// Length was determined by a MySQL column via "use mysql;describe time_zone_name;"
// Required: true
// Max Length: 64
Timezone *string `json:"timezone"`
// vat Id
// Max Length: 50
VatID string `json:"vatId,omitempty"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this customer entity
func (m *CustomerEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateCompany(formats); err != nil {
res = append(res, err)
}
if err := m.validateContact(formats); err != nil {
res = append(res, err)
}
if err := m.validateCountry(formats); err != nil {
res = append(res, err)
}
if err := m.validateCurrency(formats); err != nil {
res = append(res, err)
}
if err := m.validateEmail(formats); err != nil {
res = append(res, err)
}
if err := m.validateFax(formats); err != nil {
res = append(res, err)
}
if err := m.validateHomepage(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateMobile(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validatePhone(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimeBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimezone(formats); err != nil {
res = append(res, err)
}
if err := m.validateVatID(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerEntity) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateBudget(formats strfmt.Registry) error {
if err := validate.Required("budget", "body", m.Budget); err != nil {
return err
}
if err := validate.Minimum("budget", "body", float64(*m.Budget), 0, false); err != nil {
return err
}
if err := validate.Maximum("budget", "body", float64(*m.Budget), 9e+11, false); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateCompany(formats strfmt.Registry) error {
if swag.IsZero(m.Company) { // not required
return nil
}
if err := validate.MaxLength("company", "body", m.Company, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateContact(formats strfmt.Registry) error {
if swag.IsZero(m.Contact) { // not required
return nil
}
if err := validate.MaxLength("contact", "body", m.Contact, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateCountry(formats strfmt.Registry) error {
if err := validate.Required("country", "body", m.Country); err != nil {
return err
}
if err := validate.MaxLength("country", "body", *m.Country, 2); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateCurrency(formats strfmt.Registry) error {
if err := validate.Required("currency", "body", m.Currency); err != nil {
return err
}
if err := validate.MaxLength("currency", "body", *m.Currency, 3); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateEmail(formats strfmt.Registry) error {
if swag.IsZero(m.Email) { // not required
return nil
}
if err := validate.MaxLength("email", "body", m.Email, 254); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateFax(formats strfmt.Registry) error {
if swag.IsZero(m.Fax) { // not required
return nil
}
if err := validate.MaxLength("fax", "body", m.Fax, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateHomepage(formats strfmt.Registry) error {
if swag.IsZero(m.Homepage) { // not required
return nil
}
if err := validate.MaxLength("homepage", "body", m.Homepage, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerEntity) validateMobile(formats strfmt.Registry) error {
if swag.IsZero(m.Mobile) { // not required
return nil
}
if err := validate.MaxLength("mobile", "body", m.Mobile, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateNumber(formats strfmt.Registry) error {
if swag.IsZero(m.Number) { // not required
return nil
}
if err := validate.MaxLength("number", "body", m.Number, 50); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validatePhone(formats strfmt.Registry) error {
if swag.IsZero(m.Phone) { // not required
return nil
}
if err := validate.MaxLength("phone", "body", m.Phone, 255); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerEntity) validateTimeBudget(formats strfmt.Registry) error {
if err := validate.Required("timeBudget", "body", m.TimeBudget); err != nil {
return err
}
if err := validate.MinimumInt("timeBudget", "body", *m.TimeBudget, 0, false); err != nil {
return err
}
if err := validate.MaximumInt("timeBudget", "body", *m.TimeBudget, 2.1456e+09, false); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateTimezone(formats strfmt.Registry) error {
if err := validate.Required("timezone", "body", m.Timezone); err != nil {
return err
}
if err := validate.MaxLength("timezone", "body", *m.Timezone, 64); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateVatID(formats strfmt.Registry) error {
if swag.IsZero(m.VatID) { // not required
return nil
}
if err := validate.MaxLength("vatId", "body", m.VatID, 50); err != nil {
return err
}
return nil
}
func (m *CustomerEntity) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this customer entity based on the context it is used
func (m *CustomerEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerEntity) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *CustomerEntity) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *CustomerEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerEntity) UnmarshalBinary(b []byte) error {
var res CustomerEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/customer_meta.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerMeta customer meta
//
// swagger:model CustomerMeta
type CustomerMeta struct {
// Name of the meta (custom) field
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// Value of the meta (custom) field
// Max Length: 65535
Value string `json:"value,omitempty"`
}
// Validate validates this customer meta
func (m *CustomerMeta) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateValue(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerMeta) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *CustomerMeta) validateValue(formats strfmt.Registry) error {
if swag.IsZero(m.Value) { // not required
return nil
}
if err := validate.MaxLength("value", "body", m.Value, 65535); err != nil {
return err
}
return nil
}
// ContextValidate validates this customer meta based on context it is used
func (m *CustomerMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *CustomerMeta) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerMeta) UnmarshalBinary(b []byte) error {
var res CustomerMeta
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

148
models/customer_rate.go Normal file
View File

@ -0,0 +1,148 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerRate customer rate
//
// swagger:model CustomerRate
type CustomerRate struct {
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// is fixed
// Required: true
IsFixed *bool `json:"isFixed"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// user
User *User `json:"user,omitempty"`
}
// Validate validates this customer rate
func (m *CustomerRate) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateIsFixed(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerRate) validateIsFixed(formats strfmt.Registry) error {
if err := validate.Required("isFixed", "body", m.IsFixed); err != nil {
return err
}
return nil
}
func (m *CustomerRate) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
func (m *CustomerRate) validateUser(formats strfmt.Registry) error {
if swag.IsZero(m.User) { // not required
return nil
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this customer rate based on the context it is used
func (m *CustomerRate) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerRate) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *CustomerRate) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerRate) UnmarshalBinary(b []byte) error {
var res CustomerRate
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,80 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// CustomerRateForm customer rate form
//
// swagger:model CustomerRateForm
type CustomerRateForm struct {
// The internal rate (eg. 10.0 or 10)
InternalRate float64 `json:"internalRate,omitempty"`
// If "true" each time record gets the same rate, regardless of its duration
IsFixed bool `json:"isFixed,omitempty"`
// The rate (eg. 10.5)
// Required: true
Rate *float64 `json:"rate"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this customer rate form
func (m *CustomerRateForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *CustomerRateForm) validateRate(formats strfmt.Registry) error {
if err := validate.Required("rate", "body", m.Rate); err != nil {
return err
}
return nil
}
// ContextValidate validates this customer rate form based on context it is used
func (m *CustomerRateForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *CustomerRateForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *CustomerRateForm) UnmarshalBinary(b []byte) error {
var res CustomerRateForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/expense_category.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ExpenseCategory expense category
//
// swagger:model ExpenseCategory
type ExpenseCategory struct {
// id
ID int64 `json:"id,omitempty"`
// name
// Required: true
// Max Length: 100
// Min Length: 2
Name *string `json:"name"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this expense category
func (m *ExpenseCategory) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ExpenseCategory) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 100); err != nil {
return err
}
return nil
}
func (m *ExpenseCategory) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validates this expense category based on context it is used
func (m *ExpenseCategory) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ExpenseCategory) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ExpenseCategory) UnmarshalBinary(b []byte) error {
var res ExpenseCategory
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

140
models/expense_edit_form.go Normal file
View File

@ -0,0 +1,140 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ExpenseEditForm expense edit form
//
// swagger:model ExpenseEditForm
type ExpenseEditForm struct {
// Activity ID
Activity int64 `json:"activity,omitempty"`
// begin
// Example: 2023-01-14T05:12:43
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// Customer ID
Customer int64 `json:"customer,omitempty"`
// description
Description string `json:"description,omitempty"`
// expense category
// Required: true
ExpenseCategory *string `json:"expenseCategory"`
// multiplier
// Required: true
Multiplier *float64 `json:"multiplier"`
// Project ID
// Required: true
Project *int64 `json:"project"`
// refundable
Refundable bool `json:"refundable,omitempty"`
}
// Validate validates this expense edit form
func (m *ExpenseEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateExpenseCategory(formats); err != nil {
res = append(res, err)
}
if err := m.validateMultiplier(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ExpenseEditForm) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *ExpenseEditForm) validateExpenseCategory(formats strfmt.Registry) error {
if err := validate.Required("expenseCategory", "body", m.ExpenseCategory); err != nil {
return err
}
return nil
}
func (m *ExpenseEditForm) validateMultiplier(formats strfmt.Registry) error {
if err := validate.Required("multiplier", "body", m.Multiplier); err != nil {
return err
}
return nil
}
func (m *ExpenseEditForm) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
return nil
}
// ContextValidate validates this expense edit form based on context it is used
func (m *ExpenseEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ExpenseEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ExpenseEditForm) UnmarshalBinary(b []byte) error {
var res ExpenseEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

274
models/expense_entity.go Normal file
View File

@ -0,0 +1,274 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ExpenseEntity expense entity
//
// swagger:model ExpenseEntity
type ExpenseEntity struct {
// activity
Activity int64 `json:"activity,omitempty"`
// begin
// Format: date-time
Begin strfmt.DateTime `json:"begin,omitempty"`
// category
// Required: true
Category *ExpenseCategory `json:"category"`
// cost
// Required: true
Cost *float32 `json:"cost"`
// description
Description string `json:"description,omitempty"`
// exported
// Required: true
Exported *bool `json:"exported"`
// id
ID int64 `json:"id,omitempty"`
// meta fields
MetaFields []*ExpenseMeta `json:"metaFields"`
// multiplier
// Minimum: 0
Multiplier *float32 `json:"multiplier,omitempty"`
// project
Project int64 `json:"project,omitempty"`
// refundable
// Required: true
Refundable *bool `json:"refundable"`
// total
Total float32 `json:"total,omitempty"`
// user
User int64 `json:"user,omitempty"`
}
// Validate validates this expense entity
func (m *ExpenseEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateCategory(formats); err != nil {
res = append(res, err)
}
if err := m.validateCost(formats); err != nil {
res = append(res, err)
}
if err := m.validateExported(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateMultiplier(formats); err != nil {
res = append(res, err)
}
if err := m.validateRefundable(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ExpenseEntity) validateBegin(formats strfmt.Registry) error {
if swag.IsZero(m.Begin) { // not required
return nil
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *ExpenseEntity) validateCategory(formats strfmt.Registry) error {
if err := validate.Required("category", "body", m.Category); err != nil {
return err
}
if m.Category != nil {
if err := m.Category.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("category")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("category")
}
return err
}
}
return nil
}
func (m *ExpenseEntity) validateCost(formats strfmt.Registry) error {
if err := validate.Required("cost", "body", m.Cost); err != nil {
return err
}
return nil
}
func (m *ExpenseEntity) validateExported(formats strfmt.Registry) error {
if err := validate.Required("exported", "body", m.Exported); err != nil {
return err
}
return nil
}
func (m *ExpenseEntity) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ExpenseEntity) validateMultiplier(formats strfmt.Registry) error {
if swag.IsZero(m.Multiplier) { // not required
return nil
}
if err := validate.Minimum("multiplier", "body", float64(*m.Multiplier), 0, false); err != nil {
return err
}
return nil
}
func (m *ExpenseEntity) validateRefundable(formats strfmt.Registry) error {
if err := validate.Required("refundable", "body", m.Refundable); err != nil {
return err
}
return nil
}
// ContextValidate validate this expense entity based on the context it is used
func (m *ExpenseEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateCategory(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ExpenseEntity) contextValidateCategory(ctx context.Context, formats strfmt.Registry) error {
if m.Category != nil {
if err := m.Category.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("category")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("category")
}
return err
}
}
return nil
}
func (m *ExpenseEntity) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ExpenseEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ExpenseEntity) UnmarshalBinary(b []byte) error {
var res ExpenseEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/expense_meta.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ExpenseMeta expense meta
//
// swagger:model ExpenseMeta
type ExpenseMeta struct {
// Name of the meta (custom) field
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// Value of the meta (custom) field
// Max Length: 65535
Value string `json:"value,omitempty"`
}
// Validate validates this expense meta
func (m *ExpenseMeta) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateValue(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ExpenseMeta) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *ExpenseMeta) validateValue(formats strfmt.Registry) error {
if swag.IsZero(m.Value) { // not required
return nil
}
if err := validate.MaxLength("value", "body", m.Value, 65535); err != nil {
return err
}
return nil
}
// ContextValidate validates this expense meta based on context it is used
func (m *ExpenseMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ExpenseMeta) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ExpenseMeta) UnmarshalBinary(b []byte) error {
var res ExpenseMeta
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

92
models/i18n_config.go Normal file
View File

@ -0,0 +1,92 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// I18nConfig i18n config
//
// swagger:model I18nConfig
type I18nConfig struct {
// Format used to display date values (see PHP function date_format)
Date string `json:"date,omitempty"`
// Format used to display date-time values (see PHP function date_format)
DateTime string `json:"dateTime,omitempty"`
// Format used to display durations (replace: %h with hours, %m with minutes, %s with seconds)
Duration string `json:"duration,omitempty"`
// Format used for toolbar queries
FormDate string `json:"formDate,omitempty"`
// Whether a twenty-four hour format is used (true) or 12-hours AM/PM format (false)
Is24hours bool `json:"is24hours,omitempty"`
// The current time of the user
// Format: date-time
Now strfmt.DateTime `json:"now,omitempty"`
// Format used to display times (see PHP function date_format)
Time string `json:"time,omitempty"`
}
// Validate validates this i18n config
func (m *I18nConfig) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateNow(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *I18nConfig) validateNow(formats strfmt.Registry) error {
if swag.IsZero(m.Now) { // not required
return nil
}
if err := validate.FormatOf("now", "body", "date-time", m.Now.String(), formats); err != nil {
return err
}
return nil
}
// ContextValidate validates this i18n config based on context it is used
func (m *I18nConfig) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *I18nConfig) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *I18nConfig) UnmarshalBinary(b []byte) error {
var res I18nConfig
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

195
models/meta_field_rule.go Normal file
View File

@ -0,0 +1,195 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// MetaFieldRule meta field rule
//
// swagger:model MetaFieldRule
type MetaFieldRule struct {
// activity
Activity int64 `json:"activity,omitempty"`
// customer
Customer int64 `json:"customer,omitempty"`
// entity type
EntityType string `json:"entityType,omitempty"`
// help
// Max Length: 200
Help string `json:"help,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// label
// Max Length: 50
Label string `json:"label,omitempty"`
// name
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// project
Project int64 `json:"project,omitempty"`
// required
// Required: true
Required *bool `json:"required"`
// type
// Required: true
// Max Length: 100
Type *string `json:"type"`
// value
Value string `json:"value,omitempty"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this meta field rule
func (m *MetaFieldRule) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateHelp(formats); err != nil {
res = append(res, err)
}
if err := m.validateLabel(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateRequired(formats); err != nil {
res = append(res, err)
}
if err := m.validateType(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *MetaFieldRule) validateHelp(formats strfmt.Registry) error {
if swag.IsZero(m.Help) { // not required
return nil
}
if err := validate.MaxLength("help", "body", m.Help, 200); err != nil {
return err
}
return nil
}
func (m *MetaFieldRule) validateLabel(formats strfmt.Registry) error {
if swag.IsZero(m.Label) { // not required
return nil
}
if err := validate.MaxLength("label", "body", m.Label, 50); err != nil {
return err
}
return nil
}
func (m *MetaFieldRule) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *MetaFieldRule) validateRequired(formats strfmt.Registry) error {
if err := validate.Required("required", "body", m.Required); err != nil {
return err
}
return nil
}
func (m *MetaFieldRule) validateType(formats strfmt.Registry) error {
if err := validate.Required("type", "body", m.Type); err != nil {
return err
}
if err := validate.MaxLength("type", "body", *m.Type, 100); err != nil {
return err
}
return nil
}
func (m *MetaFieldRule) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validates this meta field rule based on context it is used
func (m *MetaFieldRule) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *MetaFieldRule) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *MetaFieldRule) UnmarshalBinary(b []byte) error {
var res MetaFieldRule
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

53
models/plugin.go Normal file
View File

@ -0,0 +1,53 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// Plugin plugin
//
// swagger:model Plugin
type Plugin struct {
// The plugin name, eg. "ExpensesBundle"
Name string `json:"name,omitempty"`
// The plugin version, eg. "1.14"
Version string `json:"version,omitempty"`
}
// Validate validates this plugin
func (m *Plugin) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this plugin based on context it is used
func (m *Plugin) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *Plugin) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Plugin) UnmarshalBinary(b []byte) error {
var res Plugin
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

144
models/project.go Normal file
View File

@ -0,0 +1,144 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// Project project
//
// swagger:model Project
type Project struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// customer
Customer int64 `json:"customer,omitempty"`
// Whether this project allows booking of global activities
// Required: true
GlobalActivities *bool `json:"globalActivities"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Project name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this project
func (m *Project) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateGlobalActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Project) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *Project) validateGlobalActivities(formats strfmt.Registry) error {
if err := validate.Required("globalActivities", "body", m.GlobalActivities); err != nil {
return err
}
return nil
}
func (m *Project) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *Project) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validates this project based on context it is used
func (m *Project) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *Project) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Project) UnmarshalBinary(b []byte) error {
var res Project
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,311 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectCollection project collection
//
// swagger:model ProjectCollection
type ProjectCollection struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// customer
Customer int64 `json:"customer,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// Whether this project allows booking of global activities
// Required: true
GlobalActivities *bool `json:"globalActivities"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this project
MetaFields []*ProjectMeta `json:"metaFields"`
// Project name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// parent title
ParentTitle string `json:"parentTitle,omitempty"`
// start
// Format: date-time
Start strfmt.DateTime `json:"start,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the project (also depends on the teams of the customer)
Teams []*Team `json:"teams"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this project collection
func (m *ProjectCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateGlobalActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateStart(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectCollection) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ProjectCollection) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectCollection) validateGlobalActivities(formats strfmt.Registry) error {
if err := validate.Required("globalActivities", "body", m.GlobalActivities); err != nil {
return err
}
return nil
}
func (m *ProjectCollection) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectCollection) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ProjectCollection) validateStart(formats strfmt.Registry) error {
if swag.IsZero(m.Start) { // not required
return nil
}
if err := validate.FormatOf("start", "body", "date-time", m.Start.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectCollection) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectCollection) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this project collection based on the context it is used
func (m *ProjectCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectCollection) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectCollection) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ProjectCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectCollection) UnmarshalBinary(b []byte) error {
var res ProjectCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

172
models/project_edit_form.go Normal file
View File

@ -0,0 +1,172 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectEditForm project edit form
//
// swagger:model ProjectEditForm
type ProjectEditForm struct {
// billable
Billable bool `json:"billable,omitempty"`
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// Customer ID
// Required: true
Customer *int64 `json:"customer"`
// end
// Example: 2023-01-14T05:12:43
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// global activities
GlobalActivities bool `json:"globalActivities,omitempty"`
// invoice text
InvoiceText string `json:"invoiceText,omitempty"`
// name
// Required: true
Name *string `json:"name"`
// order date
// Example: 2023-01-14T05:12:43
// Format: date-time
OrderDate strfmt.DateTime `json:"orderDate,omitempty"`
// order number
OrderNumber string `json:"orderNumber,omitempty"`
// start
// Example: 2023-01-14T05:12:43
// Format: date-time
Start strfmt.DateTime `json:"start,omitempty"`
// visible
Visible bool `json:"visible,omitempty"`
}
// Validate validates this project edit form
func (m *ProjectEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateCustomer(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateOrderDate(formats); err != nil {
res = append(res, err)
}
if err := m.validateStart(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectEditForm) validateCustomer(formats strfmt.Registry) error {
if err := validate.Required("customer", "body", m.Customer); err != nil {
return err
}
return nil
}
func (m *ProjectEditForm) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectEditForm) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
return nil
}
func (m *ProjectEditForm) validateOrderDate(formats strfmt.Registry) error {
if swag.IsZero(m.OrderDate) { // not required
return nil
}
if err := validate.FormatOf("orderDate", "body", "date-time", m.OrderDate.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectEditForm) validateStart(formats strfmt.Registry) error {
if swag.IsZero(m.Start) { // not required
return nil
}
if err := validate.FormatOf("start", "body", "date-time", m.Start.String(), formats); err != nil {
return err
}
return nil
}
// ContextValidate validates this project edit form based on context it is used
func (m *ProjectEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ProjectEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectEditForm) UnmarshalBinary(b []byte) error {
var res ProjectEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

410
models/project_entity.go Normal file
View File

@ -0,0 +1,410 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectEntity project entity
//
// swagger:model ProjectEntity
type ProjectEntity struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The total monetary budget, will be zero if unconfigured.
// Required: true
// Maximum: 9e+11
// Minimum: 0
Budget *float32 `json:"budget"`
// The type of budget:
// - null = default / full time
// - month = monthly budget
BudgetType string `json:"budgetType,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// customer
Customer int64 `json:"customer,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// Whether this project allows booking of global activities
// Required: true
GlobalActivities *bool `json:"globalActivities"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this project
MetaFields []*ProjectMeta `json:"metaFields"`
// Project name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// order date
// Format: date-time
OrderDate strfmt.DateTime `json:"orderDate,omitempty"`
// Project order number
// Max Length: 50
OrderNumber string `json:"orderNumber,omitempty"`
// parent title
ParentTitle string `json:"parentTitle,omitempty"`
// start
// Format: date-time
Start strfmt.DateTime `json:"start,omitempty"`
// Teams
//
// If no team is assigned, everyone can access the project (also depends on the teams of the customer)
Teams []*Team `json:"teams"`
// The time budget in seconds, will be zero if unconfigured.
// Required: true
// Maximum: 2.1456e+09
// Minimum: 0
TimeBudget *int64 `json:"timeBudget"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this project entity
func (m *ProjectEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateGlobalActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateOrderDate(formats); err != nil {
res = append(res, err)
}
if err := m.validateOrderNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateStart(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimeBudget(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectEntity) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateBudget(formats strfmt.Registry) error {
if err := validate.Required("budget", "body", m.Budget); err != nil {
return err
}
if err := validate.Minimum("budget", "body", float64(*m.Budget), 0, false); err != nil {
return err
}
if err := validate.Maximum("budget", "body", float64(*m.Budget), 9e+11, false); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateGlobalActivities(formats strfmt.Registry) error {
if err := validate.Required("globalActivities", "body", m.GlobalActivities); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectEntity) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateOrderDate(formats strfmt.Registry) error {
if swag.IsZero(m.OrderDate) { // not required
return nil
}
if err := validate.FormatOf("orderDate", "body", "date-time", m.OrderDate.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateOrderNumber(formats strfmt.Registry) error {
if swag.IsZero(m.OrderNumber) { // not required
return nil
}
if err := validate.MaxLength("orderNumber", "body", m.OrderNumber, 50); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateStart(formats strfmt.Registry) error {
if swag.IsZero(m.Start) { // not required
return nil
}
if err := validate.FormatOf("start", "body", "date-time", m.Start.String(), formats); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectEntity) validateTimeBudget(formats strfmt.Registry) error {
if err := validate.Required("timeBudget", "body", m.TimeBudget); err != nil {
return err
}
if err := validate.MinimumInt("timeBudget", "body", *m.TimeBudget, 0, false); err != nil {
return err
}
if err := validate.MaximumInt("timeBudget", "body", *m.TimeBudget, 2.1456e+09, false); err != nil {
return err
}
return nil
}
func (m *ProjectEntity) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this project entity based on the context it is used
func (m *ProjectEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectEntity) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *ProjectEntity) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ProjectEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectEntity) UnmarshalBinary(b []byte) error {
var res ProjectEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

194
models/project_expanded.go Normal file
View File

@ -0,0 +1,194 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectExpanded project expanded
//
// swagger:model ProjectExpanded
type ProjectExpanded struct {
// billable
// Required: true
Billable *bool `json:"billable"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// comment
Comment string `json:"comment,omitempty"`
// customer
// Required: true
Customer *Customer `json:"customer"`
// Whether this project allows booking of global activities
// Required: true
GlobalActivities *bool `json:"globalActivities"`
// Internal ID
ID int64 `json:"id,omitempty"`
// Project name
// Required: true
// Max Length: 150
// Min Length: 2
Name *string `json:"name"`
// visible
// Required: true
Visible *bool `json:"visible"`
}
// Validate validates this project expanded
func (m *ProjectExpanded) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateCustomer(formats); err != nil {
res = append(res, err)
}
if err := m.validateGlobalActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateVisible(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectExpanded) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *ProjectExpanded) validateCustomer(formats strfmt.Registry) error {
if err := validate.Required("customer", "body", m.Customer); err != nil {
return err
}
if m.Customer != nil {
if err := m.Customer.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("customer")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("customer")
}
return err
}
}
return nil
}
func (m *ProjectExpanded) validateGlobalActivities(formats strfmt.Registry) error {
if err := validate.Required("globalActivities", "body", m.GlobalActivities); err != nil {
return err
}
return nil
}
func (m *ProjectExpanded) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 150); err != nil {
return err
}
return nil
}
func (m *ProjectExpanded) validateVisible(formats strfmt.Registry) error {
if err := validate.Required("visible", "body", m.Visible); err != nil {
return err
}
return nil
}
// ContextValidate validate this project expanded based on the context it is used
func (m *ProjectExpanded) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateCustomer(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectExpanded) contextValidateCustomer(ctx context.Context, formats strfmt.Registry) error {
if m.Customer != nil {
if err := m.Customer.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("customer")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("customer")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ProjectExpanded) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectExpanded) UnmarshalBinary(b []byte) error {
var res ProjectExpanded
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/project_meta.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectMeta project meta
//
// swagger:model ProjectMeta
type ProjectMeta struct {
// Name of the meta (custom) field
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// Value of the meta (custom) field
// Max Length: 65535
Value string `json:"value,omitempty"`
}
// Validate validates this project meta
func (m *ProjectMeta) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateValue(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectMeta) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *ProjectMeta) validateValue(formats strfmt.Registry) error {
if swag.IsZero(m.Value) { // not required
return nil
}
if err := validate.MaxLength("value", "body", m.Value, 65535); err != nil {
return err
}
return nil
}
// ContextValidate validates this project meta based on context it is used
func (m *ProjectMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ProjectMeta) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectMeta) UnmarshalBinary(b []byte) error {
var res ProjectMeta
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

148
models/project_rate.go Normal file
View File

@ -0,0 +1,148 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectRate project rate
//
// swagger:model ProjectRate
type ProjectRate struct {
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// is fixed
// Required: true
IsFixed *bool `json:"isFixed"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// user
User *User `json:"user,omitempty"`
}
// Validate validates this project rate
func (m *ProjectRate) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateIsFixed(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectRate) validateIsFixed(formats strfmt.Registry) error {
if err := validate.Required("isFixed", "body", m.IsFixed); err != nil {
return err
}
return nil
}
func (m *ProjectRate) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
func (m *ProjectRate) validateUser(formats strfmt.Registry) error {
if swag.IsZero(m.User) { // not required
return nil
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this project rate based on the context it is used
func (m *ProjectRate) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectRate) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *ProjectRate) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectRate) UnmarshalBinary(b []byte) error {
var res ProjectRate
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,80 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// ProjectRateForm project rate form
//
// swagger:model ProjectRateForm
type ProjectRateForm struct {
// The internal rate (eg. 10.0 or 10)
InternalRate float64 `json:"internalRate,omitempty"`
// If "true" each time record gets the same rate, regardless of its duration
IsFixed bool `json:"isFixed,omitempty"`
// The rate (eg. 10.5)
// Required: true
Rate *float64 `json:"rate"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this project rate form
func (m *ProjectRateForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *ProjectRateForm) validateRate(formats strfmt.Registry) error {
if err := validate.Required("rate", "body", m.Rate); err != nil {
return err
}
return nil
}
// ContextValidate validates this project rate form based on context it is used
func (m *ProjectRateForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *ProjectRateForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *ProjectRateForm) UnmarshalBinary(b []byte) error {
var res ProjectRateForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

74
models/tag_edit_form.go Normal file
View File

@ -0,0 +1,74 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TagEditForm tag edit form
//
// swagger:model TagEditForm
type TagEditForm struct {
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// The tag name (forbidden character: comma)
// Required: true
Name *string `json:"name"`
}
// Validate validates this tag edit form
func (m *TagEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TagEditForm) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
return nil
}
// ContextValidate validates this tag edit form based on context it is used
func (m *TagEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TagEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TagEditForm) UnmarshalBinary(b []byte) error {
var res TagEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

92
models/tag_entity.go Normal file
View File

@ -0,0 +1,92 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TagEntity tag entity
//
// swagger:model TagEntity
type TagEntity struct {
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// The internal ID
ID int64 `json:"id,omitempty"`
// The tag name
// Required: true
// Max Length: 100
// Min Length: 2
// Pattern: ((?!,).)*
Name *string `json:"name"`
}
// Validate validates this tag entity
func (m *TagEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TagEntity) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 100); err != nil {
return err
}
if err := validate.Pattern("name", "body", *m.Name, `((?!,).)*`); err != nil {
return err
}
return nil
}
// ContextValidate validates this tag entity based on context it is used
func (m *TagEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TagEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TagEntity) UnmarshalBinary(b []byte) error {
var res TagEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

406
models/task.go Normal file
View File

@ -0,0 +1,406 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// Task task
//
// swagger:model Task
type Task struct {
// active timesheets
ActiveTimesheets []*TimesheetEntityExpanded `json:"activeTimesheets"`
// activity
// Required: true
Activity *ActivityExpanded `json:"activity"`
// description
Description string `json:"description,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// Estimated duration for the task in seconds or null if no estimation was added
// Minimum: 0
Estimation *int64 `json:"estimation,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// project
// Required: true
Project *ProjectExpanded `json:"project"`
// status
// Required: true
// Max Length: 20
Status *string `json:"status"`
// tags
Tags []string `json:"tags"`
// team
Team *Team `json:"team,omitempty"`
// title
// Required: true
// Max Length: 100
// Min Length: 2
Title *string `json:"title"`
// todo
Todo string `json:"todo,omitempty"`
// user
User *User `json:"user,omitempty"`
}
// Validate validates this task
func (m *Task) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActiveTimesheets(formats); err != nil {
res = append(res, err)
}
if err := m.validateActivity(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateEstimation(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if err := m.validateStatus(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeam(formats); err != nil {
res = append(res, err)
}
if err := m.validateTitle(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Task) validateActiveTimesheets(formats strfmt.Registry) error {
if swag.IsZero(m.ActiveTimesheets) { // not required
return nil
}
for i := 0; i < len(m.ActiveTimesheets); i++ {
if swag.IsZero(m.ActiveTimesheets[i]) { // not required
continue
}
if m.ActiveTimesheets[i] != nil {
if err := m.ActiveTimesheets[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activeTimesheets" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activeTimesheets" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Task) validateActivity(formats strfmt.Registry) error {
if err := validate.Required("activity", "body", m.Activity); err != nil {
return err
}
if m.Activity != nil {
if err := m.Activity.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *Task) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *Task) validateEstimation(formats strfmt.Registry) error {
if swag.IsZero(m.Estimation) { // not required
return nil
}
if err := validate.MinimumInt("estimation", "body", *m.Estimation, 0, false); err != nil {
return err
}
return nil
}
func (m *Task) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
if m.Project != nil {
if err := m.Project.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
func (m *Task) validateStatus(formats strfmt.Registry) error {
if err := validate.Required("status", "body", m.Status); err != nil {
return err
}
if err := validate.MaxLength("status", "body", *m.Status, 20); err != nil {
return err
}
return nil
}
func (m *Task) validateTeam(formats strfmt.Registry) error {
if swag.IsZero(m.Team) { // not required
return nil
}
if m.Team != nil {
if err := m.Team.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("team")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("team")
}
return err
}
}
return nil
}
func (m *Task) validateTitle(formats strfmt.Registry) error {
if err := validate.Required("title", "body", m.Title); err != nil {
return err
}
if err := validate.MinLength("title", "body", *m.Title, 2); err != nil {
return err
}
if err := validate.MaxLength("title", "body", *m.Title, 100); err != nil {
return err
}
return nil
}
func (m *Task) validateUser(formats strfmt.Registry) error {
if swag.IsZero(m.User) { // not required
return nil
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this task based on the context it is used
func (m *Task) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateActiveTimesheets(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateActivity(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateProject(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeam(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Task) contextValidateActiveTimesheets(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.ActiveTimesheets); i++ {
if m.ActiveTimesheets[i] != nil {
if err := m.ActiveTimesheets[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activeTimesheets" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activeTimesheets" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Task) contextValidateActivity(ctx context.Context, formats strfmt.Registry) error {
if m.Activity != nil {
if err := m.Activity.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *Task) contextValidateProject(ctx context.Context, formats strfmt.Registry) error {
if m.Project != nil {
if err := m.Project.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
func (m *Task) contextValidateTeam(ctx context.Context, formats strfmt.Registry) error {
if m.Team != nil {
if err := m.Team.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("team")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("team")
}
return err
}
}
return nil
}
func (m *Task) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *Task) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Task) UnmarshalBinary(b []byte) error {
var res Task
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

144
models/task_edit_form.go Normal file
View File

@ -0,0 +1,144 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TaskEditForm task edit form
//
// swagger:model TaskEditForm
type TaskEditForm struct {
// Activity ID
// Required: true
Activity *int64 `json:"activity"`
// description
Description string `json:"description,omitempty"`
// end
// Example: 2023-01-14T05:12:43
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// Estimation in seconds
Estimation int64 `json:"estimation,omitempty"`
// Project ID
// Required: true
Project *int64 `json:"project"`
// Comma separated list of tags
Tags string `json:"tags,omitempty"`
// Team ID
Team int64 `json:"team,omitempty"`
// title
// Required: true
Title *string `json:"title"`
// The actual doings, which will be available on the detail and edit page.
Todo string `json:"todo,omitempty"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this task edit form
func (m *TaskEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivity(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if err := m.validateTitle(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TaskEditForm) validateActivity(formats strfmt.Registry) error {
if err := validate.Required("activity", "body", m.Activity); err != nil {
return err
}
return nil
}
func (m *TaskEditForm) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TaskEditForm) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
return nil
}
func (m *TaskEditForm) validateTitle(formats strfmt.Registry) error {
if err := validate.Required("title", "body", m.Title); err != nil {
return err
}
return nil
}
// ContextValidate validates this task edit form based on context it is used
func (m *TaskEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TaskEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TaskEditForm) UnmarshalBinary(b []byte) error {
var res TaskEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,96 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TaskLogWorkForm task log work form
//
// swagger:model TaskLogWorkForm
type TaskLogWorkForm struct {
// begin
// Example: 2023-01-14T05:12:43
// Format: date-time
Begin strfmt.DateTime `json:"begin,omitempty"`
// end
// Example: 2023-01-14T05:12:43
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
}
// Validate validates this task log work form
func (m *TaskLogWorkForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TaskLogWorkForm) validateBegin(formats strfmt.Registry) error {
if swag.IsZero(m.Begin) { // not required
return nil
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TaskLogWorkForm) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
// ContextValidate validates this task log work form based on context it is used
func (m *TaskLogWorkForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TaskLogWorkForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TaskLogWorkForm) UnmarshalBinary(b []byte) error {
var res TaskLogWorkForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

334
models/task_query.go Normal file
View File

@ -0,0 +1,334 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"encoding/json"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TaskQuery task query
//
// swagger:model TaskQuery
type TaskQuery struct {
// Array of activity IDs
// Required: true
Activities []int64 `json:"activities"`
// Array of customer IDs
// Required: true
Customers []int64 `json:"customers"`
// The order for returned items
// Required: true
// Enum: [ASC DESC]
Order *string `json:"order"`
// order by
// Required: true
// Enum: [title customer project activity description status user begin end team]
OrderBy *string `json:"orderBy"`
// Page number. Default: 1
Page int64 `json:"page,omitempty"`
// page size
// Enum: [10 15 20 25 30 35 40 45 50 60 70 80 90 100 125 150 175 200 250 300 350 400 450 500]
PageSize float64 `json:"pageSize,omitempty"`
// Array of project IDs
// Required: true
Projects []int64 `json:"projects"`
// search term
SearchTerm string `json:"searchTerm,omitempty"`
// status
Status []string `json:"status"`
// Comma separated list of tags
Tags string `json:"tags,omitempty"`
// Array of team IDs
Teams []int64 `json:"teams"`
// Array of user IDs
Users []int64 `json:"users"`
}
// Validate validates this task query
func (m *TaskQuery) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateCustomers(formats); err != nil {
res = append(res, err)
}
if err := m.validateOrder(formats); err != nil {
res = append(res, err)
}
if err := m.validateOrderBy(formats); err != nil {
res = append(res, err)
}
if err := m.validatePageSize(formats); err != nil {
res = append(res, err)
}
if err := m.validateProjects(formats); err != nil {
res = append(res, err)
}
if err := m.validateStatus(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TaskQuery) validateActivities(formats strfmt.Registry) error {
if err := validate.Required("activities", "body", m.Activities); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validateCustomers(formats strfmt.Registry) error {
if err := validate.Required("customers", "body", m.Customers); err != nil {
return err
}
return nil
}
var taskQueryTypeOrderPropEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["ASC","DESC"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
taskQueryTypeOrderPropEnum = append(taskQueryTypeOrderPropEnum, v)
}
}
const (
// TaskQueryOrderASC captures enum value "ASC"
TaskQueryOrderASC string = "ASC"
// TaskQueryOrderDESC captures enum value "DESC"
TaskQueryOrderDESC string = "DESC"
)
// prop value enum
func (m *TaskQuery) validateOrderEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, taskQueryTypeOrderPropEnum, true); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validateOrder(formats strfmt.Registry) error {
if err := validate.Required("order", "body", m.Order); err != nil {
return err
}
// value enum
if err := m.validateOrderEnum("order", "body", *m.Order); err != nil {
return err
}
return nil
}
var taskQueryTypeOrderByPropEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["title","customer","project","activity","description","status","user","begin","end","team"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
taskQueryTypeOrderByPropEnum = append(taskQueryTypeOrderByPropEnum, v)
}
}
const (
// TaskQueryOrderByTitle captures enum value "title"
TaskQueryOrderByTitle string = "title"
// TaskQueryOrderByCustomer captures enum value "customer"
TaskQueryOrderByCustomer string = "customer"
// TaskQueryOrderByProject captures enum value "project"
TaskQueryOrderByProject string = "project"
// TaskQueryOrderByActivity captures enum value "activity"
TaskQueryOrderByActivity string = "activity"
// TaskQueryOrderByDescription captures enum value "description"
TaskQueryOrderByDescription string = "description"
// TaskQueryOrderByStatus captures enum value "status"
TaskQueryOrderByStatus string = "status"
// TaskQueryOrderByUser captures enum value "user"
TaskQueryOrderByUser string = "user"
// TaskQueryOrderByBegin captures enum value "begin"
TaskQueryOrderByBegin string = "begin"
// TaskQueryOrderByEnd captures enum value "end"
TaskQueryOrderByEnd string = "end"
// TaskQueryOrderByTeam captures enum value "team"
TaskQueryOrderByTeam string = "team"
)
// prop value enum
func (m *TaskQuery) validateOrderByEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, taskQueryTypeOrderByPropEnum, true); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validateOrderBy(formats strfmt.Registry) error {
if err := validate.Required("orderBy", "body", m.OrderBy); err != nil {
return err
}
// value enum
if err := m.validateOrderByEnum("orderBy", "body", *m.OrderBy); err != nil {
return err
}
return nil
}
var taskQueryTypePageSizePropEnum []interface{}
func init() {
var res []float64
if err := json.Unmarshal([]byte(`[10,15,20,25,30,35,40,45,50,60,70,80,90,100,125,150,175,200,250,300,350,400,450,500]`), &res); err != nil {
panic(err)
}
for _, v := range res {
taskQueryTypePageSizePropEnum = append(taskQueryTypePageSizePropEnum, v)
}
}
// prop value enum
func (m *TaskQuery) validatePageSizeEnum(path, location string, value float64) error {
if err := validate.EnumCase(path, location, value, taskQueryTypePageSizePropEnum, true); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validatePageSize(formats strfmt.Registry) error {
if swag.IsZero(m.PageSize) { // not required
return nil
}
// value enum
if err := m.validatePageSizeEnum("pageSize", "body", m.PageSize); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validateProjects(formats strfmt.Registry) error {
if err := validate.Required("projects", "body", m.Projects); err != nil {
return err
}
return nil
}
var taskQueryStatusItemsEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["pending","progress","closed"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
taskQueryStatusItemsEnum = append(taskQueryStatusItemsEnum, v)
}
}
func (m *TaskQuery) validateStatusItemsEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, taskQueryStatusItemsEnum, true); err != nil {
return err
}
return nil
}
func (m *TaskQuery) validateStatus(formats strfmt.Registry) error {
if swag.IsZero(m.Status) { // not required
return nil
}
for i := 0; i < len(m.Status); i++ {
// value enum
if err := m.validateStatusItemsEnum("status"+"."+strconv.Itoa(i), "body", m.Status[i]); err != nil {
return err
}
}
return nil
}
// ContextValidate validates this task query based on context it is used
func (m *TaskQuery) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TaskQuery) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TaskQuery) UnmarshalBinary(b []byte) error {
var res TaskQuery
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

431
models/team.go Normal file
View File

@ -0,0 +1,431 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// Team team
//
// swagger:model Team
type Team struct {
// Activities assigned to the team
Activities []*Activity `json:"activities"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// Customers assigned to the team
Customers []*Customer `json:"customers"`
// id
ID int64 `json:"id,omitempty"`
// All team member (including team leads)
// Min Items: 1
Members []*TeamMember `json:"members"`
// Team name
// Required: true
// Max Length: 100
// Min Length: 2
Name *string `json:"name"`
// Projects assigned to the team
Projects []*Project `json:"projects"`
// teamlead
Teamlead *User `json:"teamlead,omitempty"`
// Returns all users in the team, both teamlead and normal member.
Users []*User `json:"users"`
}
// Validate validates this team
func (m *Team) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivities(formats); err != nil {
res = append(res, err)
}
if err := m.validateCustomers(formats); err != nil {
res = append(res, err)
}
if err := m.validateMembers(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateProjects(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeamlead(formats); err != nil {
res = append(res, err)
}
if err := m.validateUsers(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Team) validateActivities(formats strfmt.Registry) error {
if swag.IsZero(m.Activities) { // not required
return nil
}
for i := 0; i < len(m.Activities); i++ {
if swag.IsZero(m.Activities[i]) { // not required
continue
}
if m.Activities[i] != nil {
if err := m.Activities[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activities" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activities" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) validateCustomers(formats strfmt.Registry) error {
if swag.IsZero(m.Customers) { // not required
return nil
}
for i := 0; i < len(m.Customers); i++ {
if swag.IsZero(m.Customers[i]) { // not required
continue
}
if m.Customers[i] != nil {
if err := m.Customers[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("customers" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("customers" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) validateMembers(formats strfmt.Registry) error {
if swag.IsZero(m.Members) { // not required
return nil
}
iMembersSize := int64(len(m.Members))
if err := validate.MinItems("members", "body", iMembersSize, 1); err != nil {
return err
}
for i := 0; i < len(m.Members); i++ {
if swag.IsZero(m.Members[i]) { // not required
continue
}
if m.Members[i] != nil {
if err := m.Members[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("members" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("members" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 100); err != nil {
return err
}
return nil
}
func (m *Team) validateProjects(formats strfmt.Registry) error {
if swag.IsZero(m.Projects) { // not required
return nil
}
for i := 0; i < len(m.Projects); i++ {
if swag.IsZero(m.Projects[i]) { // not required
continue
}
if m.Projects[i] != nil {
if err := m.Projects[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("projects" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("projects" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) validateTeamlead(formats strfmt.Registry) error {
if swag.IsZero(m.Teamlead) { // not required
return nil
}
if m.Teamlead != nil {
if err := m.Teamlead.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teamlead")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teamlead")
}
return err
}
}
return nil
}
func (m *Team) validateUsers(formats strfmt.Registry) error {
if swag.IsZero(m.Users) { // not required
return nil
}
for i := 0; i < len(m.Users); i++ {
if swag.IsZero(m.Users[i]) { // not required
continue
}
if m.Users[i] != nil {
if err := m.Users[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("users" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("users" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// ContextValidate validate this team based on the context it is used
func (m *Team) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateActivities(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateCustomers(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateMembers(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateProjects(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeamlead(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateUsers(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *Team) contextValidateActivities(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Activities); i++ {
if m.Activities[i] != nil {
if err := m.Activities[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activities" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activities" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) contextValidateCustomers(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Customers); i++ {
if m.Customers[i] != nil {
if err := m.Customers[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("customers" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("customers" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) contextValidateMembers(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Members); i++ {
if m.Members[i] != nil {
if err := m.Members[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("members" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("members" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) contextValidateProjects(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Projects); i++ {
if m.Projects[i] != nil {
if err := m.Projects[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("projects" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("projects" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *Team) contextValidateTeamlead(ctx context.Context, formats strfmt.Registry) error {
if m.Teamlead != nil {
if err := m.Teamlead.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teamlead")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teamlead")
}
return err
}
}
return nil
}
func (m *Team) contextValidateUsers(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Users); i++ {
if m.Users[i] != nil {
if err := m.Users[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("users" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("users" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *Team) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Team) UnmarshalBinary(b []byte) error {
var res Team
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

87
models/team_collection.go Normal file
View File

@ -0,0 +1,87 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TeamCollection team collection
//
// swagger:model TeamCollection
type TeamCollection struct {
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// Team name
// Required: true
// Max Length: 100
// Min Length: 2
Name *string `json:"name"`
}
// Validate validates this team collection
func (m *TeamCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamCollection) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 100); err != nil {
return err
}
return nil
}
// ContextValidate validates this team collection based on context it is used
func (m *TeamCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TeamCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TeamCollection) UnmarshalBinary(b []byte) error {
var res TeamCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

179
models/team_edit_form.go Normal file
View File

@ -0,0 +1,179 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TeamEditForm team edit form
//
// swagger:model TeamEditForm
type TeamEditForm struct {
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// All team members
// Required: true
Members []*TeamEditFormMembersItems0 `json:"members"`
// Name of the team
// Required: true
Name *string `json:"name"`
}
// Validate validates this team edit form
func (m *TeamEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateMembers(formats); err != nil {
res = append(res, err)
}
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamEditForm) validateMembers(formats strfmt.Registry) error {
if err := validate.Required("members", "body", m.Members); err != nil {
return err
}
for i := 0; i < len(m.Members); i++ {
if swag.IsZero(m.Members[i]) { // not required
continue
}
if m.Members[i] != nil {
if err := m.Members[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("members" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("members" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TeamEditForm) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
return nil
}
// ContextValidate validate this team edit form based on the context it is used
func (m *TeamEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMembers(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamEditForm) contextValidateMembers(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Members); i++ {
if m.Members[i] != nil {
if err := m.Members[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("members" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("members" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TeamEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TeamEditForm) UnmarshalBinary(b []byte) error {
var res TeamEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}
// TeamEditFormMembersItems0 team edit form members items0
//
// swagger:model TeamEditFormMembersItems0
type TeamEditFormMembersItems0 struct {
// Whether the user is a teamlead
Teamlead bool `json:"teamlead,omitempty"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this team edit form members items0
func (m *TeamEditFormMembersItems0) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this team edit form members items0 based on context it is used
func (m *TeamEditFormMembersItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TeamEditFormMembersItems0) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TeamEditFormMembersItems0) UnmarshalBinary(b []byte) error {
var res TeamEditFormMembersItems0
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

124
models/team_member.go Normal file
View File

@ -0,0 +1,124 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TeamMember team member
//
// swagger:model TeamMember
type TeamMember struct {
// teamlead
// Required: true
Teamlead *bool `json:"teamlead"`
// user
// Required: true
User *User `json:"user"`
}
// Validate validates this team member
func (m *TeamMember) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateTeamlead(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamMember) validateTeamlead(formats strfmt.Registry) error {
if err := validate.Required("teamlead", "body", m.Teamlead); err != nil {
return err
}
return nil
}
func (m *TeamMember) validateUser(formats strfmt.Registry) error {
if err := validate.Required("user", "body", m.User); err != nil {
return err
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this team member based on the context it is used
func (m *TeamMember) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamMember) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TeamMember) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TeamMember) UnmarshalBinary(b []byte) error {
var res TeamMember
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

124
models/team_membership.go Normal file
View File

@ -0,0 +1,124 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TeamMembership team membership
//
// swagger:model TeamMembership
type TeamMembership struct {
// team
// Required: true
Team *Team `json:"team"`
// teamlead
// Required: true
Teamlead *bool `json:"teamlead"`
}
// Validate validates this team membership
func (m *TeamMembership) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateTeam(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeamlead(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamMembership) validateTeam(formats strfmt.Registry) error {
if err := validate.Required("team", "body", m.Team); err != nil {
return err
}
if m.Team != nil {
if err := m.Team.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("team")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("team")
}
return err
}
}
return nil
}
func (m *TeamMembership) validateTeamlead(formats strfmt.Registry) error {
if err := validate.Required("teamlead", "body", m.Teamlead); err != nil {
return err
}
return nil
}
// ContextValidate validate this team membership based on the context it is used
func (m *TeamMembership) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateTeam(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TeamMembership) contextValidateTeam(ctx context.Context, formats strfmt.Registry) error {
if m.Team != nil {
if err := m.Team.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("team")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("team")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TeamMembership) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TeamMembership) UnmarshalBinary(b []byte) error {
var res TeamMembership
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,239 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetCollection timesheet collection
//
// swagger:model TimesheetCollection
type TimesheetCollection struct {
// activity
Activity int64 `json:"activity,omitempty"`
// begin
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// billable
// Required: true
Billable *bool `json:"billable"`
// description
Description string `json:"description,omitempty"`
// duration
Duration int64 `json:"duration,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// exported
// Required: true
Exported *bool `json:"exported"`
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this timesheet
MetaFields []*TimesheetMeta `json:"metaFields"`
// project
Project int64 `json:"project,omitempty"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// tags
Tags []string `json:"tags"`
// user
User int64 `json:"user,omitempty"`
}
// Validate validates this timesheet collection
func (m *TimesheetCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateExported(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetCollection) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetCollection) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *TimesheetCollection) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetCollection) validateExported(formats strfmt.Registry) error {
if err := validate.Required("exported", "body", m.Exported); err != nil {
return err
}
return nil
}
func (m *TimesheetCollection) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetCollection) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
// ContextValidate validate this timesheet collection based on the context it is used
func (m *TimesheetCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetCollection) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetCollection) UnmarshalBinary(b []byte) error {
var res TimesheetCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,329 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetCollectionExpanded timesheet collection expanded
//
// swagger:model TimesheetCollectionExpanded
type TimesheetCollectionExpanded struct {
// activity
// Required: true
Activity *ActivityExpanded `json:"activity"`
// begin
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// billable
// Required: true
Billable *bool `json:"billable"`
// description
Description string `json:"description,omitempty"`
// duration
Duration int64 `json:"duration,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// exported
// Required: true
Exported *bool `json:"exported"`
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this timesheet
MetaFields []*TimesheetMeta `json:"metaFields"`
// project
// Required: true
Project *ProjectExpanded `json:"project"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// tags
Tags []string `json:"tags"`
// user
User int64 `json:"user,omitempty"`
}
// Validate validates this timesheet collection expanded
func (m *TimesheetCollectionExpanded) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivity(formats); err != nil {
res = append(res, err)
}
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateExported(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetCollectionExpanded) validateActivity(formats strfmt.Registry) error {
if err := validate.Required("activity", "body", m.Activity); err != nil {
return err
}
if m.Activity != nil {
if err := m.Activity.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *TimesheetCollectionExpanded) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetCollectionExpanded) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *TimesheetCollectionExpanded) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetCollectionExpanded) validateExported(formats strfmt.Registry) error {
if err := validate.Required("exported", "body", m.Exported); err != nil {
return err
}
return nil
}
func (m *TimesheetCollectionExpanded) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetCollectionExpanded) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
if m.Project != nil {
if err := m.Project.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
func (m *TimesheetCollectionExpanded) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
// ContextValidate validate this timesheet collection expanded based on the context it is used
func (m *TimesheetCollectionExpanded) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateActivity(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateProject(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetCollectionExpanded) contextValidateActivity(ctx context.Context, formats strfmt.Registry) error {
if m.Activity != nil {
if err := m.Activity.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *TimesheetCollectionExpanded) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetCollectionExpanded) contextValidateProject(ctx context.Context, formats strfmt.Registry) error {
if m.Project != nil {
if err := m.Project.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetCollectionExpanded) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetCollectionExpanded) UnmarshalBinary(b []byte) error {
var res TimesheetCollectionExpanded
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,65 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// TimesheetConfig timesheet config
//
// swagger:model TimesheetConfig
type TimesheetConfig struct {
// How many running timesheets a user is allowed to have at the same time
ActiveEntriesHardLimit int64 `json:"activeEntriesHardLimit,omitempty"`
// How many running timesheets a user is allowed before a warning is shown
ActiveEntriesSoftLimit int64 `json:"activeEntriesSoftLimit,omitempty"`
// Default begin datetime in PHP format
DefaultBeginTime string `json:"defaultBeginTime,omitempty"`
// Whether entries for future times are allowed
IsAllowFutureTimes bool `json:"isAllowFutureTimes,omitempty"`
// Whether overlapping entries are allowed
IsAllowOverlapping bool `json:"isAllowOverlapping,omitempty"`
// The time-tracking mode, see also: https://www.kimai.org/documentation/timesheet.html#tracking-modes
TrackingMode string `json:"trackingMode,omitempty"`
}
// Validate validates this timesheet config
func (m *TimesheetConfig) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this timesheet config based on context it is used
func (m *TimesheetConfig) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetConfig) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetConfig) UnmarshalBinary(b []byte) error {
var res TimesheetConfig
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,153 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetEditForm timesheet edit form
//
// swagger:model TimesheetEditForm
type TimesheetEditForm struct {
// Activity ID
// Required: true
Activity *int64 `json:"activity"`
// begin
// Example: 2023-01-14T05:12:43
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// billable
Billable bool `json:"billable,omitempty"`
// description
Description string `json:"description,omitempty"`
// end
// Example: 2023-01-14T05:12:43
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// exported
Exported bool `json:"exported,omitempty"`
// Fixed rate
FixedRate float64 `json:"fixedRate,omitempty"`
// Hourly rate
HourlyRate float64 `json:"hourlyRate,omitempty"`
// Project ID
// Required: true
Project *int64 `json:"project"`
// Comma separated list of tags
Tags string `json:"tags,omitempty"`
// User ID
User int64 `json:"user,omitempty"`
}
// Validate validates this timesheet edit form
func (m *TimesheetEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivity(formats); err != nil {
res = append(res, err)
}
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetEditForm) validateActivity(formats strfmt.Registry) error {
if err := validate.Required("activity", "body", m.Activity); err != nil {
return err
}
return nil
}
func (m *TimesheetEditForm) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEditForm) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEditForm) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
return nil
}
// ContextValidate validates this timesheet edit form based on context it is used
func (m *TimesheetEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetEditForm) UnmarshalBinary(b []byte) error {
var res TimesheetEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

279
models/timesheet_entity.go Normal file
View File

@ -0,0 +1,279 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetEntity timesheet entity
//
// swagger:model TimesheetEntity
type TimesheetEntity struct {
// activity
Activity int64 `json:"activity,omitempty"`
// begin
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// billable
// Required: true
Billable *bool `json:"billable"`
// description
Description string `json:"description,omitempty"`
// duration
Duration int64 `json:"duration,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// exported
// Required: true
Exported *bool `json:"exported"`
// fixed rate
// Minimum: 0
FixedRate *float32 `json:"fixedRate,omitempty"`
// hourly rate
// Minimum: 0
HourlyRate *float32 `json:"hourlyRate,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this timesheet
MetaFields []*TimesheetMeta `json:"metaFields"`
// project
Project int64 `json:"project,omitempty"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// tags
Tags []string `json:"tags"`
// user
User int64 `json:"user,omitempty"`
}
// Validate validates this timesheet entity
func (m *TimesheetEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateExported(formats); err != nil {
res = append(res, err)
}
if err := m.validateFixedRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateHourlyRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetEntity) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateExported(formats strfmt.Registry) error {
if err := validate.Required("exported", "body", m.Exported); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateFixedRate(formats strfmt.Registry) error {
if swag.IsZero(m.FixedRate) { // not required
return nil
}
if err := validate.Minimum("fixedRate", "body", float64(*m.FixedRate), 0, false); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateHourlyRate(formats strfmt.Registry) error {
if swag.IsZero(m.HourlyRate) { // not required
return nil
}
if err := validate.Minimum("hourlyRate", "body", float64(*m.HourlyRate), 0, false); err != nil {
return err
}
return nil
}
func (m *TimesheetEntity) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetEntity) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
// ContextValidate validate this timesheet entity based on the context it is used
func (m *TimesheetEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetEntity) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetEntity) UnmarshalBinary(b []byte) error {
var res TimesheetEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

View File

@ -0,0 +1,369 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetEntityExpanded timesheet entity expanded
//
// swagger:model TimesheetEntityExpanded
type TimesheetEntityExpanded struct {
// activity
// Required: true
Activity *ActivityExpanded `json:"activity"`
// begin
// Required: true
// Format: date-time
Begin *strfmt.DateTime `json:"begin"`
// billable
// Required: true
Billable *bool `json:"billable"`
// description
Description string `json:"description,omitempty"`
// duration
Duration int64 `json:"duration,omitempty"`
// end
// Format: date-time
End strfmt.DateTime `json:"end,omitempty"`
// exported
// Required: true
Exported *bool `json:"exported"`
// fixed rate
// Minimum: 0
FixedRate *float32 `json:"fixedRate,omitempty"`
// hourly rate
// Minimum: 0
HourlyRate *float32 `json:"hourlyRate,omitempty"`
// id
ID int64 `json:"id,omitempty"`
// internal rate
InternalRate float32 `json:"internalRate,omitempty"`
// Meta fields
//
// All visible meta (custom) fields registered with this timesheet
MetaFields []*TimesheetMeta `json:"metaFields"`
// project
// Required: true
Project *ProjectExpanded `json:"project"`
// rate
// Minimum: 0
Rate *float32 `json:"rate,omitempty"`
// tags
Tags []string `json:"tags"`
// user
User int64 `json:"user,omitempty"`
}
// Validate validates this timesheet entity expanded
func (m *TimesheetEntityExpanded) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateActivity(formats); err != nil {
res = append(res, err)
}
if err := m.validateBegin(formats); err != nil {
res = append(res, err)
}
if err := m.validateBillable(formats); err != nil {
res = append(res, err)
}
if err := m.validateEnd(formats); err != nil {
res = append(res, err)
}
if err := m.validateExported(formats); err != nil {
res = append(res, err)
}
if err := m.validateFixedRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateHourlyRate(formats); err != nil {
res = append(res, err)
}
if err := m.validateMetaFields(formats); err != nil {
res = append(res, err)
}
if err := m.validateProject(formats); err != nil {
res = append(res, err)
}
if err := m.validateRate(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetEntityExpanded) validateActivity(formats strfmt.Registry) error {
if err := validate.Required("activity", "body", m.Activity); err != nil {
return err
}
if m.Activity != nil {
if err := m.Activity.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *TimesheetEntityExpanded) validateBegin(formats strfmt.Registry) error {
if err := validate.Required("begin", "body", m.Begin); err != nil {
return err
}
if err := validate.FormatOf("begin", "body", "date-time", m.Begin.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateBillable(formats strfmt.Registry) error {
if err := validate.Required("billable", "body", m.Billable); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateEnd(formats strfmt.Registry) error {
if swag.IsZero(m.End) { // not required
return nil
}
if err := validate.FormatOf("end", "body", "date-time", m.End.String(), formats); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateExported(formats strfmt.Registry) error {
if err := validate.Required("exported", "body", m.Exported); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateFixedRate(formats strfmt.Registry) error {
if swag.IsZero(m.FixedRate) { // not required
return nil
}
if err := validate.Minimum("fixedRate", "body", float64(*m.FixedRate), 0, false); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateHourlyRate(formats strfmt.Registry) error {
if swag.IsZero(m.HourlyRate) { // not required
return nil
}
if err := validate.Minimum("hourlyRate", "body", float64(*m.HourlyRate), 0, false); err != nil {
return err
}
return nil
}
func (m *TimesheetEntityExpanded) validateMetaFields(formats strfmt.Registry) error {
if swag.IsZero(m.MetaFields) { // not required
return nil
}
for i := 0; i < len(m.MetaFields); i++ {
if swag.IsZero(m.MetaFields[i]) { // not required
continue
}
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetEntityExpanded) validateProject(formats strfmt.Registry) error {
if err := validate.Required("project", "body", m.Project); err != nil {
return err
}
if m.Project != nil {
if err := m.Project.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
func (m *TimesheetEntityExpanded) validateRate(formats strfmt.Registry) error {
if swag.IsZero(m.Rate) { // not required
return nil
}
if err := validate.Minimum("rate", "body", float64(*m.Rate), 0, false); err != nil {
return err
}
return nil
}
// ContextValidate validate this timesheet entity expanded based on the context it is used
func (m *TimesheetEntityExpanded) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateActivity(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateMetaFields(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateProject(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetEntityExpanded) contextValidateActivity(ctx context.Context, formats strfmt.Registry) error {
if m.Activity != nil {
if err := m.Activity.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("activity")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("activity")
}
return err
}
}
return nil
}
func (m *TimesheetEntityExpanded) contextValidateMetaFields(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.MetaFields); i++ {
if m.MetaFields[i] != nil {
if err := m.MetaFields[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("metaFields" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("metaFields" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *TimesheetEntityExpanded) contextValidateProject(ctx context.Context, formats strfmt.Registry) error {
if m.Project != nil {
if err := m.Project.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("project")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("project")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetEntityExpanded) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetEntityExpanded) UnmarshalBinary(b []byte) error {
var res TimesheetEntityExpanded
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

101
models/timesheet_meta.go Normal file
View File

@ -0,0 +1,101 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// TimesheetMeta timesheet meta
//
// swagger:model TimesheetMeta
type TimesheetMeta struct {
// Name of the meta (custom) field
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// Value of the meta (custom) field
// Max Length: 65535
Value string `json:"value,omitempty"`
}
// Validate validates this timesheet meta
func (m *TimesheetMeta) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if err := m.validateValue(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *TimesheetMeta) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
func (m *TimesheetMeta) validateValue(formats strfmt.Registry) error {
if swag.IsZero(m.Value) { // not required
return nil
}
if err := validate.MaxLength("value", "body", m.Value, 65535); err != nil {
return err
}
return nil
}
// ContextValidate validates this timesheet meta based on context it is used
func (m *TimesheetMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *TimesheetMeta) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *TimesheetMeta) UnmarshalBinary(b []byte) error {
var res TimesheetMeta
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

130
models/user.go Normal file
View File

@ -0,0 +1,130 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// User user
//
// swagger:model User
type User struct {
// account number
// Max Length: 30
AccountNumber string `json:"accountNumber,omitempty"`
// The user alias will be displayed in the frontend instead of the username
// Max Length: 60
Alias string `json:"alias,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// enabled
Enabled bool `json:"enabled,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// username
// Required: true
// Max Length: 60
// Min Length: 2
Username *string `json:"username"`
}
// Validate validates this user
func (m *User) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateAccountNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateAlias(formats); err != nil {
res = append(res, err)
}
if err := m.validateUsername(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *User) validateAccountNumber(formats strfmt.Registry) error {
if swag.IsZero(m.AccountNumber) { // not required
return nil
}
if err := validate.MaxLength("accountNumber", "body", m.AccountNumber, 30); err != nil {
return err
}
return nil
}
func (m *User) validateAlias(formats strfmt.Registry) error {
if swag.IsZero(m.Alias) { // not required
return nil
}
if err := validate.MaxLength("alias", "body", m.Alias, 60); err != nil {
return err
}
return nil
}
func (m *User) validateUsername(formats strfmt.Registry) error {
if err := validate.Required("username", "body", m.Username); err != nil {
return err
}
if err := validate.MinLength("username", "body", *m.Username, 2); err != nil {
return err
}
if err := validate.MaxLength("username", "body", *m.Username, 60); err != nil {
return err
}
return nil
}
// ContextValidate validates this user based on context it is used
func (m *User) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *User) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *User) UnmarshalBinary(b []byte) error {
var res User
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

88
models/user_auth.go Normal file
View File

@ -0,0 +1,88 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserAuth user auth
//
// swagger:model UserAuth
type UserAuth struct {
// code
// Required: true
Code *string `json:"code"`
// type
// Required: true
Type *string `json:"type"`
}
// Validate validates this user auth
func (m *UserAuth) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateCode(formats); err != nil {
res = append(res, err)
}
if err := m.validateType(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserAuth) validateCode(formats strfmt.Registry) error {
if err := validate.Required("code", "body", m.Code); err != nil {
return err
}
return nil
}
func (m *UserAuth) validateType(formats strfmt.Registry) error {
if err := validate.Required("type", "body", m.Type); err != nil {
return err
}
return nil
}
// ContextValidate validates this user auth based on context it is used
func (m *UserAuth) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *UserAuth) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserAuth) UnmarshalBinary(b []byte) error {
var res UserAuth
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

162
models/user_auth_codes.go Normal file
View File

@ -0,0 +1,162 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// UserAuthCodes user auth codes
//
// swagger:model UserAuthCodes
type UserAuthCodes struct {
// codes
Codes []*UserAuth `json:"codes"`
// user
User *User `json:"user,omitempty"`
}
// Validate validates this user auth codes
func (m *UserAuthCodes) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateCodes(formats); err != nil {
res = append(res, err)
}
if err := m.validateUser(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserAuthCodes) validateCodes(formats strfmt.Registry) error {
if swag.IsZero(m.Codes) { // not required
return nil
}
for i := 0; i < len(m.Codes); i++ {
if swag.IsZero(m.Codes[i]) { // not required
continue
}
if m.Codes[i] != nil {
if err := m.Codes[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("codes" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("codes" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *UserAuthCodes) validateUser(formats strfmt.Registry) error {
if swag.IsZero(m.User) { // not required
return nil
}
if m.User != nil {
if err := m.User.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// ContextValidate validate this user auth codes based on the context it is used
func (m *UserAuthCodes) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateCodes(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateUser(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserAuthCodes) contextValidateCodes(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Codes); i++ {
if m.Codes[i] != nil {
if err := m.Codes[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("codes" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("codes" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *UserAuthCodes) contextValidateUser(ctx context.Context, formats strfmt.Registry) error {
if m.User != nil {
if err := m.User.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("user")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("user")
}
return err
}
}
return nil
}
// MarshalBinary interface implementation
func (m *UserAuthCodes) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserAuthCodes) UnmarshalBinary(b []byte) error {
var res UserAuthCodes
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

130
models/user_collection.go Normal file
View File

@ -0,0 +1,130 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserCollection user collection
//
// swagger:model UserCollection
type UserCollection struct {
// account number
// Max Length: 30
AccountNumber string `json:"accountNumber,omitempty"`
// The user alias will be displayed in the frontend instead of the username
// Max Length: 60
Alias string `json:"alias,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// enabled
Enabled bool `json:"enabled,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// username
// Required: true
// Max Length: 60
// Min Length: 2
Username *string `json:"username"`
}
// Validate validates this user collection
func (m *UserCollection) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateAccountNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateAlias(formats); err != nil {
res = append(res, err)
}
if err := m.validateUsername(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserCollection) validateAccountNumber(formats strfmt.Registry) error {
if swag.IsZero(m.AccountNumber) { // not required
return nil
}
if err := validate.MaxLength("accountNumber", "body", m.AccountNumber, 30); err != nil {
return err
}
return nil
}
func (m *UserCollection) validateAlias(formats strfmt.Registry) error {
if swag.IsZero(m.Alias) { // not required
return nil
}
if err := validate.MaxLength("alias", "body", m.Alias, 60); err != nil {
return err
}
return nil
}
func (m *UserCollection) validateUsername(formats strfmt.Registry) error {
if err := validate.Required("username", "body", m.Username); err != nil {
return err
}
if err := validate.MinLength("username", "body", *m.Username, 2); err != nil {
return err
}
if err := validate.MaxLength("username", "body", *m.Username, 60); err != nil {
return err
}
return nil
}
// ContextValidate validates this user collection based on context it is used
func (m *UserCollection) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *UserCollection) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserCollection) UnmarshalBinary(b []byte) error {
var res UserCollection
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

336
models/user_create_form.go Normal file
View File

@ -0,0 +1,336 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"encoding/json"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserCreateForm user create form
//
// swagger:model UserCreateForm
type UserCreateForm struct {
// account number
AccountNumber string `json:"accountNumber,omitempty"`
// alias
Alias string `json:"alias,omitempty"`
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// email
// Required: true
Email *string `json:"email"`
// enabled
Enabled bool `json:"enabled,omitempty"`
// language
// Required: true
// Enum: [ar cs da de de_AT de_CH el en en_GB eo es eu fa fi fo fr he hr hu it ja ko nb_NO nl pl pt pt_BR ro ru sk sv tr uk vi zh_CN]
Language *string `json:"language"`
// Plain API token
PlainAPIToken string `json:"plainApiToken,omitempty"`
// Plain text password
// Required: true
PlainPassword *string `json:"plainPassword"`
// roles
Roles []string `json:"roles"`
// timezone
// Required: true
Timezone *string `json:"timezone"`
// title
Title string `json:"title,omitempty"`
// username
// Required: true
Username *string `json:"username"`
}
// Validate validates this user create form
func (m *UserCreateForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateEmail(formats); err != nil {
res = append(res, err)
}
if err := m.validateLanguage(formats); err != nil {
res = append(res, err)
}
if err := m.validatePlainPassword(formats); err != nil {
res = append(res, err)
}
if err := m.validateRoles(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimezone(formats); err != nil {
res = append(res, err)
}
if err := m.validateUsername(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserCreateForm) validateEmail(formats strfmt.Registry) error {
if err := validate.Required("email", "body", m.Email); err != nil {
return err
}
return nil
}
var userCreateFormTypeLanguagePropEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["ar","cs","da","de","de_AT","de_CH","el","en","en_GB","eo","es","eu","fa","fi","fo","fr","he","hr","hu","it","ja","ko","nb_NO","nl","pl","pt","pt_BR","ro","ru","sk","sv","tr","uk","vi","zh_CN"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
userCreateFormTypeLanguagePropEnum = append(userCreateFormTypeLanguagePropEnum, v)
}
}
const (
// UserCreateFormLanguageAr captures enum value "ar"
UserCreateFormLanguageAr string = "ar"
// UserCreateFormLanguageCs captures enum value "cs"
UserCreateFormLanguageCs string = "cs"
// UserCreateFormLanguageDa captures enum value "da"
UserCreateFormLanguageDa string = "da"
// UserCreateFormLanguageDe captures enum value "de"
UserCreateFormLanguageDe string = "de"
// UserCreateFormLanguageDeAT captures enum value "de_AT"
UserCreateFormLanguageDeAT string = "de_AT"
// UserCreateFormLanguageDeCH captures enum value "de_CH"
UserCreateFormLanguageDeCH string = "de_CH"
// UserCreateFormLanguageEl captures enum value "el"
UserCreateFormLanguageEl string = "el"
// UserCreateFormLanguageEn captures enum value "en"
UserCreateFormLanguageEn string = "en"
// UserCreateFormLanguageEnGB captures enum value "en_GB"
UserCreateFormLanguageEnGB string = "en_GB"
// UserCreateFormLanguageEo captures enum value "eo"
UserCreateFormLanguageEo string = "eo"
// UserCreateFormLanguageEs captures enum value "es"
UserCreateFormLanguageEs string = "es"
// UserCreateFormLanguageEu captures enum value "eu"
UserCreateFormLanguageEu string = "eu"
// UserCreateFormLanguageFa captures enum value "fa"
UserCreateFormLanguageFa string = "fa"
// UserCreateFormLanguageFi captures enum value "fi"
UserCreateFormLanguageFi string = "fi"
// UserCreateFormLanguageFo captures enum value "fo"
UserCreateFormLanguageFo string = "fo"
// UserCreateFormLanguageFr captures enum value "fr"
UserCreateFormLanguageFr string = "fr"
// UserCreateFormLanguageHe captures enum value "he"
UserCreateFormLanguageHe string = "he"
// UserCreateFormLanguageHr captures enum value "hr"
UserCreateFormLanguageHr string = "hr"
// UserCreateFormLanguageHu captures enum value "hu"
UserCreateFormLanguageHu string = "hu"
// UserCreateFormLanguageIt captures enum value "it"
UserCreateFormLanguageIt string = "it"
// UserCreateFormLanguageJa captures enum value "ja"
UserCreateFormLanguageJa string = "ja"
// UserCreateFormLanguageKo captures enum value "ko"
UserCreateFormLanguageKo string = "ko"
// UserCreateFormLanguageNbNO captures enum value "nb_NO"
UserCreateFormLanguageNbNO string = "nb_NO"
// UserCreateFormLanguageNl captures enum value "nl"
UserCreateFormLanguageNl string = "nl"
// UserCreateFormLanguagePl captures enum value "pl"
UserCreateFormLanguagePl string = "pl"
// UserCreateFormLanguagePt captures enum value "pt"
UserCreateFormLanguagePt string = "pt"
// UserCreateFormLanguagePtBR captures enum value "pt_BR"
UserCreateFormLanguagePtBR string = "pt_BR"
// UserCreateFormLanguageRo captures enum value "ro"
UserCreateFormLanguageRo string = "ro"
// UserCreateFormLanguageRu captures enum value "ru"
UserCreateFormLanguageRu string = "ru"
// UserCreateFormLanguageSk captures enum value "sk"
UserCreateFormLanguageSk string = "sk"
// UserCreateFormLanguageSv captures enum value "sv"
UserCreateFormLanguageSv string = "sv"
// UserCreateFormLanguageTr captures enum value "tr"
UserCreateFormLanguageTr string = "tr"
// UserCreateFormLanguageUk captures enum value "uk"
UserCreateFormLanguageUk string = "uk"
// UserCreateFormLanguageVi captures enum value "vi"
UserCreateFormLanguageVi string = "vi"
// UserCreateFormLanguageZhCN captures enum value "zh_CN"
UserCreateFormLanguageZhCN string = "zh_CN"
)
// prop value enum
func (m *UserCreateForm) validateLanguageEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, userCreateFormTypeLanguagePropEnum, true); err != nil {
return err
}
return nil
}
func (m *UserCreateForm) validateLanguage(formats strfmt.Registry) error {
if err := validate.Required("language", "body", m.Language); err != nil {
return err
}
// value enum
if err := m.validateLanguageEnum("language", "body", *m.Language); err != nil {
return err
}
return nil
}
func (m *UserCreateForm) validatePlainPassword(formats strfmt.Registry) error {
if err := validate.Required("plainPassword", "body", m.PlainPassword); err != nil {
return err
}
return nil
}
var userCreateFormRolesItemsEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["ROLE_TEAMLEAD","ROLE_ADMIN","ROLE_SUPER_ADMIN"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
userCreateFormRolesItemsEnum = append(userCreateFormRolesItemsEnum, v)
}
}
func (m *UserCreateForm) validateRolesItemsEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, userCreateFormRolesItemsEnum, true); err != nil {
return err
}
return nil
}
func (m *UserCreateForm) validateRoles(formats strfmt.Registry) error {
if swag.IsZero(m.Roles) { // not required
return nil
}
for i := 0; i < len(m.Roles); i++ {
// value enum
if err := m.validateRolesItemsEnum("roles"+"."+strconv.Itoa(i), "body", m.Roles[i]); err != nil {
return err
}
}
return nil
}
func (m *UserCreateForm) validateTimezone(formats strfmt.Registry) error {
if err := validate.Required("timezone", "body", m.Timezone); err != nil {
return err
}
return nil
}
func (m *UserCreateForm) validateUsername(formats strfmt.Registry) error {
if err := validate.Required("username", "body", m.Username); err != nil {
return err
}
return nil
}
// ContextValidate validates this user create form based on context it is used
func (m *UserCreateForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *UserCreateForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserCreateForm) UnmarshalBinary(b []byte) error {
var res UserCreateForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

299
models/user_edit_form.go Normal file
View File

@ -0,0 +1,299 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"encoding/json"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserEditForm user edit form
//
// swagger:model UserEditForm
type UserEditForm struct {
// account number
AccountNumber string `json:"accountNumber,omitempty"`
// alias
Alias string `json:"alias,omitempty"`
// The hexadecimal color code (default: #d2d6de)
Color string `json:"color,omitempty"`
// email
// Required: true
Email *string `json:"email"`
// enabled
Enabled bool `json:"enabled,omitempty"`
// language
// Required: true
// Enum: [ar cs da de de_AT de_CH el en en_GB eo es eu fa fi fo fr he hr hu it ja ko nb_NO nl pl pt pt_BR ro ru sk sv tr uk vi zh_CN]
Language *string `json:"language"`
// roles
Roles []string `json:"roles"`
// timezone
// Required: true
Timezone *string `json:"timezone"`
// title
Title string `json:"title,omitempty"`
}
// Validate validates this user edit form
func (m *UserEditForm) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateEmail(formats); err != nil {
res = append(res, err)
}
if err := m.validateLanguage(formats); err != nil {
res = append(res, err)
}
if err := m.validateRoles(formats); err != nil {
res = append(res, err)
}
if err := m.validateTimezone(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserEditForm) validateEmail(formats strfmt.Registry) error {
if err := validate.Required("email", "body", m.Email); err != nil {
return err
}
return nil
}
var userEditFormTypeLanguagePropEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["ar","cs","da","de","de_AT","de_CH","el","en","en_GB","eo","es","eu","fa","fi","fo","fr","he","hr","hu","it","ja","ko","nb_NO","nl","pl","pt","pt_BR","ro","ru","sk","sv","tr","uk","vi","zh_CN"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
userEditFormTypeLanguagePropEnum = append(userEditFormTypeLanguagePropEnum, v)
}
}
const (
// UserEditFormLanguageAr captures enum value "ar"
UserEditFormLanguageAr string = "ar"
// UserEditFormLanguageCs captures enum value "cs"
UserEditFormLanguageCs string = "cs"
// UserEditFormLanguageDa captures enum value "da"
UserEditFormLanguageDa string = "da"
// UserEditFormLanguageDe captures enum value "de"
UserEditFormLanguageDe string = "de"
// UserEditFormLanguageDeAT captures enum value "de_AT"
UserEditFormLanguageDeAT string = "de_AT"
// UserEditFormLanguageDeCH captures enum value "de_CH"
UserEditFormLanguageDeCH string = "de_CH"
// UserEditFormLanguageEl captures enum value "el"
UserEditFormLanguageEl string = "el"
// UserEditFormLanguageEn captures enum value "en"
UserEditFormLanguageEn string = "en"
// UserEditFormLanguageEnGB captures enum value "en_GB"
UserEditFormLanguageEnGB string = "en_GB"
// UserEditFormLanguageEo captures enum value "eo"
UserEditFormLanguageEo string = "eo"
// UserEditFormLanguageEs captures enum value "es"
UserEditFormLanguageEs string = "es"
// UserEditFormLanguageEu captures enum value "eu"
UserEditFormLanguageEu string = "eu"
// UserEditFormLanguageFa captures enum value "fa"
UserEditFormLanguageFa string = "fa"
// UserEditFormLanguageFi captures enum value "fi"
UserEditFormLanguageFi string = "fi"
// UserEditFormLanguageFo captures enum value "fo"
UserEditFormLanguageFo string = "fo"
// UserEditFormLanguageFr captures enum value "fr"
UserEditFormLanguageFr string = "fr"
// UserEditFormLanguageHe captures enum value "he"
UserEditFormLanguageHe string = "he"
// UserEditFormLanguageHr captures enum value "hr"
UserEditFormLanguageHr string = "hr"
// UserEditFormLanguageHu captures enum value "hu"
UserEditFormLanguageHu string = "hu"
// UserEditFormLanguageIt captures enum value "it"
UserEditFormLanguageIt string = "it"
// UserEditFormLanguageJa captures enum value "ja"
UserEditFormLanguageJa string = "ja"
// UserEditFormLanguageKo captures enum value "ko"
UserEditFormLanguageKo string = "ko"
// UserEditFormLanguageNbNO captures enum value "nb_NO"
UserEditFormLanguageNbNO string = "nb_NO"
// UserEditFormLanguageNl captures enum value "nl"
UserEditFormLanguageNl string = "nl"
// UserEditFormLanguagePl captures enum value "pl"
UserEditFormLanguagePl string = "pl"
// UserEditFormLanguagePt captures enum value "pt"
UserEditFormLanguagePt string = "pt"
// UserEditFormLanguagePtBR captures enum value "pt_BR"
UserEditFormLanguagePtBR string = "pt_BR"
// UserEditFormLanguageRo captures enum value "ro"
UserEditFormLanguageRo string = "ro"
// UserEditFormLanguageRu captures enum value "ru"
UserEditFormLanguageRu string = "ru"
// UserEditFormLanguageSk captures enum value "sk"
UserEditFormLanguageSk string = "sk"
// UserEditFormLanguageSv captures enum value "sv"
UserEditFormLanguageSv string = "sv"
// UserEditFormLanguageTr captures enum value "tr"
UserEditFormLanguageTr string = "tr"
// UserEditFormLanguageUk captures enum value "uk"
UserEditFormLanguageUk string = "uk"
// UserEditFormLanguageVi captures enum value "vi"
UserEditFormLanguageVi string = "vi"
// UserEditFormLanguageZhCN captures enum value "zh_CN"
UserEditFormLanguageZhCN string = "zh_CN"
)
// prop value enum
func (m *UserEditForm) validateLanguageEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, userEditFormTypeLanguagePropEnum, true); err != nil {
return err
}
return nil
}
func (m *UserEditForm) validateLanguage(formats strfmt.Registry) error {
if err := validate.Required("language", "body", m.Language); err != nil {
return err
}
// value enum
if err := m.validateLanguageEnum("language", "body", *m.Language); err != nil {
return err
}
return nil
}
var userEditFormRolesItemsEnum []interface{}
func init() {
var res []string
if err := json.Unmarshal([]byte(`["ROLE_TEAMLEAD","ROLE_ADMIN","ROLE_SUPER_ADMIN"]`), &res); err != nil {
panic(err)
}
for _, v := range res {
userEditFormRolesItemsEnum = append(userEditFormRolesItemsEnum, v)
}
}
func (m *UserEditForm) validateRolesItemsEnum(path, location string, value string) error {
if err := validate.EnumCase(path, location, value, userEditFormRolesItemsEnum, true); err != nil {
return err
}
return nil
}
func (m *UserEditForm) validateRoles(formats strfmt.Registry) error {
if swag.IsZero(m.Roles) { // not required
return nil
}
for i := 0; i < len(m.Roles); i++ {
// value enum
if err := m.validateRolesItemsEnum("roles"+"."+strconv.Itoa(i), "body", m.Roles[i]); err != nil {
return err
}
}
return nil
}
func (m *UserEditForm) validateTimezone(formats strfmt.Registry) error {
if err := validate.Required("timezone", "body", m.Timezone); err != nil {
return err
}
return nil
}
// ContextValidate validates this user edit form based on context it is used
func (m *UserEditForm) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *UserEditForm) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserEditForm) UnmarshalBinary(b []byte) error {
var res UserEditForm
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

347
models/user_entity.go Normal file
View File

@ -0,0 +1,347 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"strconv"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserEntity user entity
//
// swagger:model UserEntity
type UserEntity struct {
// account number
// Max Length: 30
AccountNumber string `json:"accountNumber,omitempty"`
// The user alias will be displayed in the frontend instead of the username
// Max Length: 60
Alias string `json:"alias,omitempty"`
// URL to the user avatar, will be auto-generated if empty
// Max Length: 255
Avatar string `json:"avatar,omitempty"`
// The assigned color in HTML hex format, eg. #dd1d00
Color string `json:"color,omitempty"`
// enabled
Enabled bool `json:"enabled,omitempty"`
// Internal ID
ID int64 `json:"id,omitempty"`
// language
Language string `json:"language,omitempty"`
// memberships
// Required: true
Memberships *TeamMembership `json:"memberships"`
// Read-only list of of all visible user preferences.
Preferences []*UserPreference `json:"preferences"`
// List of all role names
Roles []string `json:"roles"`
// List of all teams, this user is part of
Teams []*Team `json:"teams"`
// timezone
Timezone string `json:"timezone,omitempty"`
// An additional title for the user, like the Job position or Department
// Max Length: 50
Title string `json:"title,omitempty"`
// username
// Required: true
// Max Length: 60
// Min Length: 2
Username *string `json:"username"`
}
// Validate validates this user entity
func (m *UserEntity) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateAccountNumber(formats); err != nil {
res = append(res, err)
}
if err := m.validateAlias(formats); err != nil {
res = append(res, err)
}
if err := m.validateAvatar(formats); err != nil {
res = append(res, err)
}
if err := m.validateMemberships(formats); err != nil {
res = append(res, err)
}
if err := m.validatePreferences(formats); err != nil {
res = append(res, err)
}
if err := m.validateTeams(formats); err != nil {
res = append(res, err)
}
if err := m.validateTitle(formats); err != nil {
res = append(res, err)
}
if err := m.validateUsername(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserEntity) validateAccountNumber(formats strfmt.Registry) error {
if swag.IsZero(m.AccountNumber) { // not required
return nil
}
if err := validate.MaxLength("accountNumber", "body", m.AccountNumber, 30); err != nil {
return err
}
return nil
}
func (m *UserEntity) validateAlias(formats strfmt.Registry) error {
if swag.IsZero(m.Alias) { // not required
return nil
}
if err := validate.MaxLength("alias", "body", m.Alias, 60); err != nil {
return err
}
return nil
}
func (m *UserEntity) validateAvatar(formats strfmt.Registry) error {
if swag.IsZero(m.Avatar) { // not required
return nil
}
if err := validate.MaxLength("avatar", "body", m.Avatar, 255); err != nil {
return err
}
return nil
}
func (m *UserEntity) validateMemberships(formats strfmt.Registry) error {
if err := validate.Required("memberships", "body", m.Memberships); err != nil {
return err
}
if m.Memberships != nil {
if err := m.Memberships.Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("memberships")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("memberships")
}
return err
}
}
return nil
}
func (m *UserEntity) validatePreferences(formats strfmt.Registry) error {
if swag.IsZero(m.Preferences) { // not required
return nil
}
for i := 0; i < len(m.Preferences); i++ {
if swag.IsZero(m.Preferences[i]) { // not required
continue
}
if m.Preferences[i] != nil {
if err := m.Preferences[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("preferences" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("preferences" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *UserEntity) validateTeams(formats strfmt.Registry) error {
if swag.IsZero(m.Teams) { // not required
return nil
}
for i := 0; i < len(m.Teams); i++ {
if swag.IsZero(m.Teams[i]) { // not required
continue
}
if m.Teams[i] != nil {
if err := m.Teams[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *UserEntity) validateTitle(formats strfmt.Registry) error {
if swag.IsZero(m.Title) { // not required
return nil
}
if err := validate.MaxLength("title", "body", m.Title, 50); err != nil {
return err
}
return nil
}
func (m *UserEntity) validateUsername(formats strfmt.Registry) error {
if err := validate.Required("username", "body", m.Username); err != nil {
return err
}
if err := validate.MinLength("username", "body", *m.Username, 2); err != nil {
return err
}
if err := validate.MaxLength("username", "body", *m.Username, 60); err != nil {
return err
}
return nil
}
// ContextValidate validate this user entity based on the context it is used
func (m *UserEntity) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
var res []error
if err := m.contextValidateMemberships(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidatePreferences(ctx, formats); err != nil {
res = append(res, err)
}
if err := m.contextValidateTeams(ctx, formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserEntity) contextValidateMemberships(ctx context.Context, formats strfmt.Registry) error {
if m.Memberships != nil {
if err := m.Memberships.ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("memberships")
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("memberships")
}
return err
}
}
return nil
}
func (m *UserEntity) contextValidatePreferences(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Preferences); i++ {
if m.Preferences[i] != nil {
if err := m.Preferences[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("preferences" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("preferences" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
func (m *UserEntity) contextValidateTeams(ctx context.Context, formats strfmt.Registry) error {
for i := 0; i < len(m.Teams); i++ {
if m.Teams[i] != nil {
if err := m.Teams[i].ContextValidate(ctx, formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
return ve.ValidateName("teams" + "." + strconv.Itoa(i))
} else if ce, ok := err.(*errors.CompositeError); ok {
return ce.ValidateName("teams" + "." + strconv.Itoa(i))
}
return err
}
}
}
return nil
}
// MarshalBinary interface implementation
func (m *UserEntity) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserEntity) UnmarshalBinary(b []byte) error {
var res UserEntity
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

84
models/user_preference.go Normal file
View File

@ -0,0 +1,84 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/go-openapi/validate"
)
// UserPreference user preference
//
// swagger:model UserPreference
type UserPreference struct {
// name
// Required: true
// Max Length: 50
// Min Length: 2
Name *string `json:"name"`
// value
Value string `json:"value,omitempty"`
}
// Validate validates this user preference
func (m *UserPreference) Validate(formats strfmt.Registry) error {
var res []error
if err := m.validateName(formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
func (m *UserPreference) validateName(formats strfmt.Registry) error {
if err := validate.Required("name", "body", m.Name); err != nil {
return err
}
if err := validate.MinLength("name", "body", *m.Name, 2); err != nil {
return err
}
if err := validate.MaxLength("name", "body", *m.Name, 50); err != nil {
return err
}
return nil
}
// ContextValidate validates this user preference based on context it is used
func (m *UserPreference) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *UserPreference) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *UserPreference) UnmarshalBinary(b []byte) error {
var res UserPreference
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}

67
models/version.go Normal file
View File

@ -0,0 +1,67 @@
// Code generated by go-swagger; DO NOT EDIT.
package models
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// Version version
//
// swagger:model Version
type Version struct {
// Candidate: either "prod" or "dev"
Candidate string `json:"candidate,omitempty"`
// A full copyright notice
Copyright string `json:"copyright,omitempty"`
// The version name
Name string `json:"name,omitempty"`
// Full version including status, eg: "1.9-prod"
Semver string `json:"semver,omitempty"`
// Kimai Version, eg. "1.14"
Version string `json:"version,omitempty"`
// Kimai Version as integer, eg. 11400
//
// Follows the same logic as PHP_VERSION_ID, see https://www.php.net/manual/de/function.phpversion.php
VersionID int64 `json:"versionId,omitempty"`
}
// Validate validates this version
func (m *Version) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this version based on context it is used
func (m *Version) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (m *Version) MarshalBinary() ([]byte, error) {
if m == nil {
return nil, nil
}
return swag.WriteJSON(m)
}
// UnmarshalBinary interface implementation
func (m *Version) UnmarshalBinary(b []byte) error {
var res Version
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*m = res
return nil
}