83 lines
1.3 KiB
Go
83 lines
1.3 KiB
Go
package entity
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type Partner struct {
|
|
ID int64
|
|
Name string
|
|
Status string
|
|
Address string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
DeletedAt *time.Time
|
|
CreatedBy int64
|
|
UpdatedBy int64
|
|
}
|
|
|
|
type PartnerSearch struct {
|
|
Search string
|
|
Name string
|
|
Limit int
|
|
Offset int
|
|
}
|
|
|
|
type PartnerList []*PartnerDB
|
|
|
|
type PartnerDB struct {
|
|
Partner
|
|
}
|
|
|
|
func (p *Partner) ToPartnerDB() *PartnerDB {
|
|
return &PartnerDB{
|
|
Partner: *p,
|
|
}
|
|
}
|
|
|
|
func (PartnerDB) TableName() string {
|
|
return "partners"
|
|
}
|
|
|
|
func (e *PartnerDB) ToPartner() *Partner {
|
|
return &Partner{
|
|
ID: e.ID,
|
|
Name: e.Name,
|
|
Status: e.Status,
|
|
Address: e.Address,
|
|
CreatedAt: e.CreatedAt,
|
|
UpdatedAt: e.UpdatedAt,
|
|
CreatedBy: e.CreatedBy,
|
|
}
|
|
}
|
|
|
|
func (p *PartnerList) ToPartnerList() []*Partner {
|
|
var partners []*Partner
|
|
for _, partner := range *p {
|
|
partners = append(partners, partner.ToPartner())
|
|
}
|
|
return partners
|
|
}
|
|
|
|
func (o *PartnerDB) ToUpdatedPartner(updatedBy int64, req Partner) {
|
|
o.UpdatedBy = updatedBy
|
|
|
|
if req.Name != "" {
|
|
o.Name = req.Name
|
|
}
|
|
|
|
if req.Status != "" {
|
|
o.Status = req.Status
|
|
}
|
|
|
|
if req.Address != "" {
|
|
o.Address = req.Address
|
|
}
|
|
}
|
|
|
|
func (o *PartnerDB) SetDeleted(updatedBy int64) {
|
|
currentTime := time.Now()
|
|
o.DeletedAt = ¤tTime
|
|
o.UpdatedBy = updatedBy
|
|
}
|