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"` 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 }