seed data anew every 20 mins
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user