88 lines
2.7 KiB
Go
88 lines
2.7 KiB
Go
package data
|
|
|
|
import (
|
|
"actatempus_backend/internal/domain/entities"
|
|
"actatempus_backend/internal/infrastructure/data/db"
|
|
)
|
|
|
|
// Maps a Prisma User model to the domain User model.
|
|
func mapPrismaUserToDomain(user db.UserDboModel) entities.User {
|
|
return entities.User{
|
|
ID: user.ID,
|
|
Name: user.Name,
|
|
Email: user.Email,
|
|
Password: user.Password,
|
|
CreatedAt: user.CreatedAt,
|
|
UpdatedAt: user.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
// Maps a slice of Prisma User models to domain User models.
|
|
func mapPrismaUsersToDomain(users []db.UserDboModel) []entities.User {
|
|
domainUsers := make([]entities.User, len(users))
|
|
for i, user := range users {
|
|
domainUsers[i] = mapPrismaUserToDomain(user)
|
|
}
|
|
return domainUsers
|
|
}
|
|
|
|
func mapPrismaProjectToDomain(project db.ProjectDboModel) entities.Project {
|
|
return entities.Project{
|
|
ID: project.ID,
|
|
Name: project.Name,
|
|
UserID: project.UserID,
|
|
Description: NullableField(project.Description),
|
|
ClientID: NullableField(project.ClientID),
|
|
CreatedAt: project.CreatedAt,
|
|
UpdatedAt: project.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
|
|
func mapPrismaProjectsToDomain(projects []db.ProjectDboModel) []entities.Project {
|
|
domainProjects := make([]entities.Project, len(projects))
|
|
for i, project := range projects {
|
|
domainProjects[i] = mapPrismaProjectToDomain(project)
|
|
}
|
|
return domainProjects
|
|
}
|
|
|
|
func mapPrismaTimeEntryToDomain(timeEntry db.TimeEntryDboModel) entities.TimeEntry {
|
|
return entities.TimeEntry{
|
|
ID: timeEntry.ID,
|
|
ProjectID: timeEntry.ProjectID,
|
|
UserID: timeEntry.UserID,
|
|
StartTime: timeEntry.StartTime,
|
|
EndTime: NullableField(timeEntry.EndTime),
|
|
Description: NullableField(timeEntry.Description),
|
|
CreatedAt: timeEntry.CreatedAt,
|
|
UpdatedAt: timeEntry.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func mapPrismaTimeEntriesToDomain(timeEntries []db.TimeEntryDboModel) []entities.TimeEntry {
|
|
domainTimeEntries := make([]entities.TimeEntry, len(timeEntries))
|
|
for i, timeEntry := range timeEntries {
|
|
domainTimeEntries[i] = mapPrismaTimeEntryToDomain(timeEntry)
|
|
}
|
|
return domainTimeEntries
|
|
}
|
|
|
|
func mapPrismaProjectTaskToDomain(projectTask db.ProjectTaskDboModel) entities.ProjectTask {
|
|
return entities.ProjectTask{
|
|
ID: projectTask.ID,
|
|
ProjectID: projectTask.ProjectID,
|
|
Name: projectTask.Name,
|
|
Description: NullableField(projectTask.Description),
|
|
CreatedAt: projectTask.CreatedAt,
|
|
UpdatedAt: projectTask.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func mapPrismaProjectTasksToDomain(projectTasks []db.ProjectTaskDboModel) []entities.ProjectTask {
|
|
domainProjectTasks := make([]entities.ProjectTask, len(projectTasks))
|
|
for i, projectTask := range projectTasks {
|
|
domainProjectTasks[i] = mapPrismaProjectTaskToDomain(projectTask)
|
|
}
|
|
return domainProjectTasks
|
|
} |