Add User Partner and Product
This commit is contained in:
@@ -1,19 +1,42 @@
|
||||
package entity
|
||||
|
||||
import (
|
||||
"furtuna-be/internal/constants/role"
|
||||
"time"
|
||||
)
|
||||
|
||||
type CreatePartnerRequest struct {
|
||||
Name string `json:"name" validate:"required"`
|
||||
Address string `json:"address"`
|
||||
Username string `json:"username" validate:"required"`
|
||||
FullName string `json:"full_name"`
|
||||
Email string `json:"email"`
|
||||
Password string `json:"password" validate:"required"`
|
||||
NIK string `json:"nik"`
|
||||
PhoneNumber string `json:"phone_number"`
|
||||
BankName string `json:"bank_name"`
|
||||
BankAccountNumber string `json:"bank_account_number"`
|
||||
BankAccountHolderName string `json:"bank_account_holder_name"`
|
||||
}
|
||||
|
||||
type Partner struct {
|
||||
ID int64
|
||||
Name string
|
||||
Status string
|
||||
Address string
|
||||
CreatedAt time.Time
|
||||
UpdatedAt time.Time
|
||||
DeletedAt *time.Time
|
||||
CreatedBy int64
|
||||
UpdatedBy int64
|
||||
ID int64 `gorm:"primaryKey;autoIncrement;column:id"`
|
||||
Name string `gorm:"type:varchar(255);not null;column:name"`
|
||||
Status string `gorm:"type:varchar(50);column:status"`
|
||||
LicenseExpiredDate *time.Time `gorm:"type:date;column:license_expired_date"`
|
||||
Address string `gorm:"type:varchar(255);column:address"`
|
||||
BankName string `gorm:"type:varchar(255);column:bank_name"`
|
||||
BankAccountNumber string `gorm:"type:varchar(50);column:bank_account_number"`
|
||||
BankAccountHolderName string `gorm:"type:varchar(255);column:bank_account_holder_name"`
|
||||
CreatedAt time.Time `gorm:"autoCreateTime;column:created_at"`
|
||||
UpdatedAt time.Time `gorm:"autoUpdateTime;column:updated_at"`
|
||||
DeletedAt *time.Time `gorm:"column:deleted_at"`
|
||||
CreatedBy int64 `gorm:"type:int;column:created_by"`
|
||||
UpdatedBy int64 `gorm:"type:int;column:updated_by"`
|
||||
}
|
||||
|
||||
func (Partner) TableName() string {
|
||||
return "partners"
|
||||
}
|
||||
|
||||
type PartnerSearch struct {
|
||||
@@ -80,3 +103,46 @@ func (o *PartnerDB) SetDeleted(updatedBy int64) {
|
||||
o.DeletedAt = ¤tTime
|
||||
o.UpdatedBy = updatedBy
|
||||
}
|
||||
|
||||
func (c *CreatePartnerRequest) ToUserAdmin(partnerID int64) *User {
|
||||
return &User{
|
||||
Name: c.FullName,
|
||||
Password: c.Password,
|
||||
Email: c.Email,
|
||||
NIK: c.NIK,
|
||||
Status: "active",
|
||||
RoleID: role.PartnerAdmin,
|
||||
PartnerID: &partnerID,
|
||||
}
|
||||
}
|
||||
|
||||
func (e *CreatePartnerRequest) ToPartnerDB(createdBy int64) *PartnerDB {
|
||||
twoDays := 48 * time.Hour
|
||||
licenseExpiredDate := time.Now().Add(twoDays)
|
||||
|
||||
return &PartnerDB{
|
||||
Partner: Partner{
|
||||
Name: e.Name,
|
||||
Status: "inactive",
|
||||
Address: e.Address,
|
||||
CreatedBy: createdBy,
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
BankAccountHolderName: e.BankAccountHolderName,
|
||||
BankAccountNumber: e.BankAccountNumber,
|
||||
BankName: e.BankName,
|
||||
LicenseExpiredDate: &licenseExpiredDate,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (e *CreatePartnerRequest) ToWallet(partnerID int64) *Wallet {
|
||||
return &Wallet{
|
||||
PartnerID: partnerID,
|
||||
Balance: 0,
|
||||
Currency: "IDR",
|
||||
Status: "active",
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user