aditya.siregar 3c80b710af Update Infra
2025-03-04 20:36:17 +07:00

53 lines
1.3 KiB
Go

package request
import (
"enaklo-pos-be/internal/entity"
"time"
"github.com/google/uuid"
)
type License struct {
Name string `json:"name" validate:"required"`
StartDate string `json:"start_date" validate:"required"`
EndDate string `json:"end_date" validate:"required"`
RenewalDate string `json:"renewal_date"`
SerialNumber string `json:"serial_number" validate:"required"`
PartnerID int64 `json:"partner_id" validate:"required"`
}
type LicenseParam struct {
Limit int `form:"limit,default=10"`
Offset int `form:"offset,default=0"`
Status string `form:"status,default="`
}
func (r *License) ToEntity() (*entity.License, error) {
startDate, err := time.Parse("2006-01-02", r.StartDate)
if err != nil {
return nil, err
}
endDate, err := time.Parse("2006-01-02", r.EndDate)
if err != nil {
return nil, err
}
var renewalDate *time.Time
if r.RenewalDate != "" {
parsedRenewalDate, err := time.Parse("2006-01-02", r.RenewalDate)
if err != nil {
return nil, err
}
renewalDate = &parsedRenewalDate
}
return &entity.License{
ID: uuid.New(),
Name: r.Name,
StartDate: startDate,
EndDate: endDate,
RenewalDate: renewalDate,
SerialNumber: r.SerialNumber,
PartnerID: r.PartnerID,
}, nil
}