package response import ( "enaklo-pos-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"` DaysToExpire int64 `json:"days_to_expire"` } 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 r.DaysToExpire = e.DaysToExpire }