package models

import (
	"time"
)

type OrderLokerDetail struct {
	Id           uint       `json:"id"`
	OrderLokerId int        `json:"order_loker_id"`
	OrderLoker   OrderLoker `gorm:"constraint:OnDelete:CASCADE;foreignKey:OrderLokerId"`
	LokerId      int        `json:"loker_id"`
	Loker        Loker      `gorm:"constraint:OnDelete:CASCADE;foreignKey:LokerId"`
	CreatedAt    time.Time  `json:"created_at"`
	UpdatedAt    time.Time  `json:"updated_at"`
}

type ResponseOrderLokerDetail struct {
	Id        uint                         `json:"id"`
	Loker     ResponseLokerWithoutCategory `json:"loker"`
	CreatedAt time.Time                    `json:"created_at"`
	UpdatedAt time.Time                    `json:"updated_at"`
}

func (Obj *OrderLokerDetail) ToResponse() *ResponseOrderLokerDetail {
	return &ResponseOrderLokerDetail{
		Id:        Obj.Id,
		Loker:     *Obj.Loker.ToResponse(),
		CreatedAt: Obj.CreatedAt,
		UpdatedAt: Obj.UpdatedAt,
	}
}

func ToResponses(datass []OrderLokerDetail) []ResponseOrderLokerDetail {
	var responses []ResponseOrderLokerDetail
	for _, data := range datass {
		responses = append(responses, *data.ToResponse())
	}
	return responses
}
