59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package task
|
|
|
|
import (
|
|
"brainbuffer/pkg/brainbuffer/domain/scheduling"
|
|
"time"
|
|
)
|
|
|
|
type CreationModel struct {
|
|
Patterns []string `json:"patterns"`
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
Duration int64 `json:"duration"`
|
|
}
|
|
|
|
type ResourceModel struct {
|
|
ID int64 `json:"id"`
|
|
UserID string `json:"userId"`
|
|
Patterns []string `json:"patterns"`
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
Duration int64 `json:"duration"`
|
|
CreationTime int64 `json:"creationTime"`
|
|
}
|
|
|
|
func (model *CreationModel) MapModelToEntity(userId string) Task {
|
|
patterns := make([]scheduling.Pattern, len(model.Patterns))
|
|
|
|
for i, v := range model.Patterns {
|
|
patterns[i] = scheduling.Pattern(v)
|
|
}
|
|
|
|
return Task{
|
|
ID: 0,
|
|
UserID: userId,
|
|
SchedulingPatterns: patterns,
|
|
Name: model.Name,
|
|
Description: model.Description,
|
|
Duration: time.Duration(model.Duration),
|
|
CreationTime: time.Time{},
|
|
}
|
|
}
|
|
|
|
func MapEntityToModel(task *Task) ResourceModel {
|
|
patterns := make([]string, len(task.SchedulingPatterns))
|
|
|
|
for i, v := range task.SchedulingPatterns {
|
|
patterns[i] = string(v)
|
|
}
|
|
|
|
return ResourceModel{
|
|
ID: task.ID,
|
|
UserID: task.UserID,
|
|
Patterns: patterns,
|
|
Name: task.Name,
|
|
Description: task.Description,
|
|
Duration: int64(task.Duration),
|
|
CreationTime: task.CreationTime.Unix(),
|
|
}
|
|
}
|