package request import ( "enaklo-pos-be/internal/common/mycontext" "enaklo-pos-be/internal/entity" ) type PartnerParam struct { Search string `form:"search" json:"search" example:"Ketua Umum"` Name string `form:"name" json:"name" example:"Ketua Umum"` Limit int `form:"limit" json:"limit" example:"10"` Offset int `form:"offset" json:"offset" example:"0"` } func (p *PartnerParam) ToEntity(ctx mycontext.Context) entity.PartnerSearch { return entity.PartnerSearch{ Search: p.Search, PartnerID: ctx.GetPartnerID(), Name: p.Name, Limit: p.Limit, Offset: p.Offset, } } type Partner struct { ID int64 `json:"id"` Name string `json:"name"` Address string `json:"address"` Status string `json:"status"` Email string `json:"email"` PhoneNumber string `json:"phone_number"` Password string `json:"password"` AdminUserID int64 `json:"admin_user_id"` AdminName string `json:"admin_name"` BankName string `json:"bank_name"` BankAccountNumber string `json:"bank_account_number"` BankAccountHolderName string `json:"bank_account_holder_name"` NIK string `json:"nik"` Logo string `json:"logo"` } type CreatePartnerRequest struct { Name string `json:"name" validate:"required"` Email string `json:"email" validate:"required"` Address string `json:"address" validate:"required"` FullName string `json:"full_name" validate:"required"` Password string `json:"password" validate:"required"` NIK string `json:"nik"` PhoneNumber string `json:"phone_number" validate:"required"` BankName string `json:"bank_name" validate:"required"` BankAccountNumber string `json:"bank_account_number" validate:"required"` BankAccountHolderName string `json:"bank_account_holder_name" validate:"required"` Status string `json:"status"` Logo string `json:"logo"` } func (e *CreatePartnerRequest) ToEntity() *entity.CreatePartnerRequest { return &entity.CreatePartnerRequest{ Name: e.Name, Address: e.Address, FullName: e.FullName, Email: e.Email, Password: e.Password, NIK: e.NIK, PhoneNumber: e.PhoneNumber, BankName: e.BankName, BankAccountNumber: e.BankAccountNumber, BankAccountHolderName: e.BankAccountHolderName, Status: e.Status, Logo: e.Logo, } } func (e *Partner) ToEntity() *entity.Partner { return &entity.Partner{ Name: e.Name, Address: e.Address, Status: e.Status, } } func (e *Partner) ToEntityUpdate(partnerID int64) *entity.PartnerUpdate { return &entity.PartnerUpdate{ ID: partnerID, Name: e.Name, Email: e.Email, Address: e.Address, Status: e.Status, PhoneNumber: e.PhoneNumber, BankName: e.BankName, BankAccountNumber: e.BankAccountNumber, BankAccountHolderName: e.BankAccountHolderName, NIK: e.NIK, AdminName: e.AdminName, Password: e.Password, AdminUserID: e.AdminUserID, Logo: e.Logo, } }