kontenhumas-be/app/module/schedules/mapper/schedules.mapper.go

52 lines
1.7 KiB
Go

package mapper
import (
"netidhub-saas-be/app/database/entity"
clientsRepository "netidhub-saas-be/app/module/clients/repository"
schedulesResponse "netidhub-saas-be/app/module/schedules/response"
)
func ToSchedulesResponse(schedule *entity.Schedules, clientsRepo clientsRepository.ClientsRepository) *schedulesResponse.SchedulesResponse {
var clientName *string
var clientSlug *string
if schedule.ClientId != nil {
findClient, _ := clientsRepo.FindOneByClientId(schedule.ClientId)
if findClient != nil {
clientName = &findClient.Name
clientSlug = &findClient.Slug
}
}
return &schedulesResponse.SchedulesResponse{
ID: schedule.ID,
Title: schedule.Title,
Description: schedule.Description,
Location: schedule.Location,
IsLiveStreaming: schedule.IsLiveStreaming,
LiveStreamingUrl: schedule.LiveStreamingUrl,
TypeId: schedule.TypeId,
StartDate: schedule.StartDate,
EndDate: schedule.EndDate,
StartTime: schedule.StartTime,
EndTime: schedule.EndTime,
Speakers: schedule.Speakers,
PosterImagePath: schedule.PosterImagePath,
CreatedById: schedule.CreatedById,
StatusId: schedule.StatusId,
ClientName: clientName,
ClientSlug: clientSlug,
IsActive: schedule.IsActive,
CreatedAt: schedule.CreatedAt,
UpdatedAt: schedule.UpdatedAt,
}
}
func ToSchedulesResponseList(schedules []*entity.Schedules, clientsRepo clientsRepository.ClientsRepository) []*schedulesResponse.SchedulesResponse {
var responses []*schedulesResponse.SchedulesResponse
for _, schedule := range schedules {
responses = append(responses, ToSchedulesResponse(schedule, clientsRepo))
}
return responses
}