2024-07-30 00:55:20 +07:00

71 lines
1.8 KiB
Go

package response
import (
"furtuna-be/internal/entity"
)
type License struct {
ID string `json:"id"`
Name string `json:"name"`
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
RenewalDate string `json:"renewal_date,omitempty"`
SerialNumber string `json:"serial_number"`
PartnerID int64 `json:"partner_id"`
CreatedBy string `json:"created_by"`
UpdatedBy int64 `json:"updated_by"`
PartnerName string `json:"partner_name"`
Status string `json:"status"`
}
type LicenseList struct {
Licenses []License `json:"licenses"`
Total int64 `json:"total"`
Limit int `json:"limit"`
Offset int `json:"offset"`
}
func (r *License) FromEntity(e *entity.License) {
r.ID = e.ID.String()
r.Name = e.Name
r.StartDate = e.StartDate.Format("2006-01-02")
r.EndDate = e.EndDate.Format("2006-01-02")
if e.RenewalDate != nil {
r.RenewalDate = e.RenewalDate.Format("2006-01-02")
}
r.SerialNumber = e.SerialNumber
r.PartnerID = e.PartnerID
}
func FromEntityList(entities []*entity.License) []License {
licenses := make([]License, len(entities))
for i, e := range entities {
licenses[i].FromEntity(e)
}
return licenses
}
func FromEntityListAll(entities []*entity.LicenseGetAll) []License {
licenses := make([]License, len(entities))
for i, e := range entities {
licenses[i].FromEntityGetAll(e)
}
return licenses
}
func (r *License) FromEntityGetAll(e *entity.LicenseGetAll) {
r.ID = e.ID.String()
r.Name = e.Name
r.StartDate = e.StartDate.Format("2006-01-02")
r.EndDate = e.EndDate.Format("2006-01-02")
if e.RenewalDate != nil {
r.RenewalDate = e.RenewalDate.Format("2006-01-02")
}
r.SerialNumber = e.SerialNumber
r.PartnerID = e.PartnerID
r.CreatedBy = e.CreatedByName
r.UpdatedBy = e.UpdatedBy
r.PartnerName = e.PartnerName
r.Status = e.LicenseStatus
}