apskel-pos-backend/internal/transformer/user_device_transformer.go
2026-05-10 10:42:09 +07:00

75 lines
2.0 KiB
Go

package transformer
import (
"apskel-pos-be/internal/contract"
"apskel-pos-be/internal/models"
)
func RegisterUserDeviceRequestToModel(req *contract.RegisterUserDeviceRequest) *models.RegisterUserDeviceRequest {
return &models.RegisterUserDeviceRequest{
DeviceID: req.DeviceID,
DeviceName: req.DeviceName,
DeviceType: req.DeviceType,
Platform: req.Platform,
FCMToken: req.FCMToken,
AppVersion: req.AppVersion,
OsVersion: req.OsVersion,
}
}
func UpdateUserDeviceRequestToModel(req *contract.UpdateUserDeviceRequest) *models.UpdateUserDeviceRequest {
return &models.UpdateUserDeviceRequest{
DeviceName: req.DeviceName,
DeviceType: req.DeviceType,
Platform: req.Platform,
FCMToken: req.FCMToken,
AppVersion: req.AppVersion,
OsVersion: req.OsVersion,
}
}
func ListUserDevicesRequestToModel(req *contract.ListUserDevicesRequest) *models.ListUserDevicesRequest {
return &models.ListUserDevicesRequest{
Page: req.Page,
Limit: req.Limit,
UserID: req.UserID,
Platform: req.Platform,
}
}
func UserDeviceModelResponseToResponse(device *models.UserDeviceResponse) *contract.UserDeviceResponse {
if device == nil {
return nil
}
return &contract.UserDeviceResponse{
ID: device.ID,
UserID: device.UserID,
DeviceID: device.DeviceID,
DeviceName: device.DeviceName,
DeviceType: device.DeviceType,
Platform: device.Platform,
FCMToken: device.FCMToken,
AppVersion: device.AppVersion,
OsVersion: device.OsVersion,
IPAddress: device.IPAddress,
LastActiveAt: device.LastActiveAt,
CreatedAt: device.CreatedAt,
UpdatedAt: device.UpdatedAt,
}
}
func UserDeviceModelResponsesToResponses(devices []*models.UserDeviceResponse) []contract.UserDeviceResponse {
if devices == nil {
return nil
}
responses := make([]contract.UserDeviceResponse, len(devices))
for i, device := range devices {
response := UserDeviceModelResponseToResponse(device)
if response != nil {
responses[i] = *response
}
}
return responses
}