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) } }