134 lines
4.2 KiB
Go
134 lines
4.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"zeitkort-web/repository"
|
|
)
|
|
|
|
func seedDemoData(repo repository.Repository) {
|
|
if resetter, ok := repo.(interface{ Reset() }); ok {
|
|
resetter.Reset()
|
|
}
|
|
|
|
now := time.Now()
|
|
loc := now.Location()
|
|
|
|
mukki, _ := repo.InsertCompany(repository.Company{
|
|
Name: "Mukki",
|
|
Address: "Snoppiesgøta 1, FO-100 Tórshavn",
|
|
ContactEmail: "kontakt@mukki.fo",
|
|
ContactPhone: "+298 210000",
|
|
HourlyRate: 850,
|
|
})
|
|
|
|
teltlar, _ := repo.InsertCompany(repository.Company{
|
|
Name: "Teldlar og Teldur",
|
|
Address: "Teldutrøð 5, FO-100 Tórshavn",
|
|
ContactEmail: "info@teltlar.fo",
|
|
ContactPhone: "+298 310000",
|
|
HourlyRate: 750,
|
|
})
|
|
|
|
sjogvur, _ := repo.InsertCompany(repository.Company{
|
|
Name: "Sjógvur.fo",
|
|
Address: "Vesturgøta 22, FO-100 Tórshavn",
|
|
ContactEmail: "heiðri@sjogvur.fo",
|
|
ContactPhone: "+298 410000",
|
|
HourlyRate: 650,
|
|
})
|
|
|
|
mukkiAPI, _ := repo.InsertAssignment(repository.Assignment{
|
|
CompanyID: mukki.ID,
|
|
Name: "Microservices Backend Migration",
|
|
Description: "Refactoring legacy monolith into Go microservices.",
|
|
HourlyRate: 850,
|
|
Status: "active",
|
|
})
|
|
mukkiInfra, _ := repo.InsertAssignment(repository.Assignment{
|
|
CompanyID: mukki.ID,
|
|
Name: "Kubernetes Cluster Setup",
|
|
Description: "Deploying K3s cluster.",
|
|
HourlyRate: 850,
|
|
Status: "active",
|
|
})
|
|
|
|
teltlarERP, _ := repo.InsertAssignment(repository.Assignment{
|
|
CompanyID: teltlar.ID,
|
|
Name: "ERP Integration Module",
|
|
Description: "REST API bridge between SQL Server and frontend.",
|
|
HourlyRate: 750,
|
|
Status: "active",
|
|
})
|
|
|
|
sjogvurWeb, _ := repo.InsertAssignment(repository.Assignment{
|
|
CompanyID: sjogvur.ID,
|
|
Name: "Corporate Website Redesign",
|
|
Description: "Modernizing frontend with Tailwind and static generation.",
|
|
HourlyRate: 650,
|
|
Status: "active",
|
|
})
|
|
|
|
tMukkiAPI, _ := repo.InsertTask(repository.Task{AssignmentID: mukkiAPI.ID, Name: "Design gRPC Protobufs"})
|
|
tMukkiAPI2, _ := repo.InsertTask(repository.Task{AssignmentID: mukkiAPI.ID, Name: "Implement Auth Middleware"})
|
|
tMukkiInfra, _ := repo.InsertTask(repository.Task{AssignmentID: mukkiInfra.ID, Name: "Ansible Playbooks"})
|
|
|
|
tTeltlar, _ := repo.InsertTask(repository.Task{AssignmentID: teltlarERP.ID, Name: "SQL Stored Procedures"})
|
|
tTeltlar2, _ := repo.InsertTask(repository.Task{AssignmentID: teltlarERP.ID, Name: "API Endpoints"})
|
|
|
|
tSjogvur, _ := repo.InsertTask(repository.Task{AssignmentID: sjogvurWeb.ID, Name: "Design System"})
|
|
tSjogvur2, _ := repo.InsertTask(repository.Task{AssignmentID: sjogvurWeb.ID, Name: "SEO Optimization"})
|
|
|
|
addSession := func(assignID, taskID int64, daysAgo int, hours float64) {
|
|
start := time.Date(now.Year(), now.Month(), now.Day()-daysAgo, 9, 0, 0, 0, loc)
|
|
end := start.Add(time.Duration(hours * float64(time.Hour)))
|
|
|
|
task, _ := repo.GetTaskByID(taskID)
|
|
desc := fmt.Sprintf("%d - %s", task.Number, task.Name)
|
|
|
|
repo.InsertManualWorkSession(repository.WorkSession{
|
|
AssignmentID: assignID,
|
|
TaskID: taskID,
|
|
TaskDescription: desc,
|
|
StartTime: start,
|
|
EndTime: &end,
|
|
})
|
|
}
|
|
|
|
addSession(mukkiAPI.ID, tMukkiAPI.ID, 5, 4.5)
|
|
addSession(mukkiAPI.ID, tMukkiAPI2.ID, 3, 2.0)
|
|
addSession(mukkiInfra.ID, tMukkiInfra.ID, 1, 6.0)
|
|
|
|
addSession(teltlarERP.ID, tTeltlar.ID, 4, 3.5)
|
|
addSession(teltlarERP.ID, tTeltlar2.ID, 2, 5.0)
|
|
|
|
addSession(sjogvurWeb.ID, tSjogvur.ID, 6, 2.5)
|
|
addSession(sjogvurWeb.ID, tSjogvur2.ID, 0, 1.5)
|
|
|
|
runningStart := now.Add(-45 * time.Minute)
|
|
task, _ := repo.GetTaskByID(tSjogvur2.ID)
|
|
desc := fmt.Sprintf("%d - %s", task.Number, task.Name)
|
|
|
|
runningSession, _ := repo.InsertWorkSession(repository.WorkSession{
|
|
AssignmentID: sjogvurWeb.ID,
|
|
TaskID: tSjogvur2.ID,
|
|
TaskDescription: desc,
|
|
StartTime: runningStart,
|
|
EndTime: nil,
|
|
})
|
|
|
|
if runningSession != nil {
|
|
updated := repository.WorkSession{
|
|
ID: runningSession.ID,
|
|
AssignmentID: runningSession.AssignmentID,
|
|
TaskID: runningSession.TaskID,
|
|
TaskDescription: desc,
|
|
StartTime: runningSession.StartTime,
|
|
EndTime: runningSession.EndTime,
|
|
DurationMinutes: runningSession.DurationMinutes,
|
|
}
|
|
repo.UpdateWorkSession(runningSession.ID, updated)
|
|
}
|
|
}
|