Add License
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package request
|
||||
|
||||
import (
|
||||
"furtuna-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"`
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user