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 }