diff --git a/README.md b/README.md index b0d64a4..ae3bff6 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# natsio \ No newline at end of file +# natsio module diff --git a/client/auth_sms.go b/client/auth_sms.go new file mode 100644 index 0000000..c86ad50 --- /dev/null +++ b/client/auth_sms.go @@ -0,0 +1,37 @@ +package client + +import ( + "encoding/json" + "errors" + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +// AuthSMS ... +type AuthSMS struct{} + +// GetAuthSMS ... +func GetAuthSMS() AuthSMS { + return AuthSMS{} +} + +func (s AuthSMS) CheckPermission(p model.CheckPermissionRequest) error { + msg, err := natsio.GetServer().Request(subject.AuthSMS.CheckPermission, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + + return nil +} diff --git a/client/bank.go b/client/bank.go index 3391911..ba3e9fb 100644 --- a/client/bank.go +++ b/client/bank.go @@ -17,15 +17,16 @@ func GetBank() Bank { return Bank{} } -func (s Bank) GetBankById(bankID string) (*model.BankBrief, error) { - msg, err := natsio.GetServer().Request(subject.Bank.GetBankById, toBytes(bankID)) +// GetBankInfo ... +func (s Bank) GetBankInfo(p []model.GetBankInfoRequest) ([]*model.ResponseBankInfo, error) { + msg, err := natsio.GetServer().Request(subject.Bank.GetBankInfo, toBytes(p)) if err != nil { return nil, err } var r struct { - Data *model.BankBrief `json:"data"` - Error string `json:"error"` + Data []*model.ResponseBankInfo `json:"data"` + Error string `json:"error"` } if err = json.Unmarshal(msg.Data, &r); err != nil { @@ -38,18 +39,40 @@ func (s Bank) GetBankById(bankID string) (*model.BankBrief, error) { return r.Data, nil } -func (s Bank) CheckBankAndBranchByID(p model.BankBranchRequest) bool { +func (s Bank) CheckBankAndBranchByID(p model.CheckBankAndBranchByIDRequest) bool { msg, err := natsio.GetServer().Request(subject.Bank.CheckBankAndBranchByID, toBytes(p)) if err != nil { return false } var r struct { - Error string `json:"error"` + Data bool `json:"data"` } if err = json.Unmarshal(msg.Data, &r); err != nil { return false } - return r.Error == "" + return r.Data +} + +// GetBankAndBranchDetail ... +func (s Bank) GetBankAndBranchDetail(p model.GetBankInfoRequest) (*model.ResponseBankInfo, error) { + msg, err := natsio.GetServer().Request(subject.Bank.GetBankInfoDetail, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.ResponseBankInfo `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil } diff --git a/client/bank_branch.go b/client/bank_branch.go deleted file mode 100644 index 5890e75..0000000 --- a/client/bank_branch.go +++ /dev/null @@ -1,39 +0,0 @@ -package client - -import ( - "encoding/json" - "errors" - - "git.selly.red/Selly-Modules/natsio" - "git.selly.red/Selly-Modules/natsio/model" - "git.selly.red/Selly-Modules/natsio/subject" -) - -// BankBranch ... -type BankBranch struct{} - -// GetBankBranch ... -func GetBankBranch() BankBranch { - return BankBranch{} -} - -func (s BankBranch) GetBankBranchById(bankBranchID string) (*model.BankBranchBrief, error) { - msg, err := natsio.GetServer().Request(subject.Bank.GetBankBranchById, toBytes(bankBranchID)) - if err != nil { - return nil, err - } - - var r struct { - Data *model.BankBranchBrief `json:"data"` - Error string `json:"error"` - } - - if err = json.Unmarshal(msg.Data, &r); err != nil { - return nil, err - } - if r.Error != "" { - return nil, errors.New(r.Error) - } - - return r.Data, nil -} diff --git a/client/email.go b/client/email.go new file mode 100644 index 0000000..7725884 --- /dev/null +++ b/client/email.go @@ -0,0 +1,30 @@ +package client + +// Email ... +type Email struct{} + +// GetEmail ... +func GetEmail() Email { + return Email{} +} + +// func (s Email) Send(p model.GetEmailRequest) ([]*model.ResponseEmailInfo, error) { +// msg, err := natsio.GetServer().Request(subject.Email.GetListEmailInfo, toBytes(p)) +// if err != nil { +// return nil, err +// } +// +// var r struct { +// Data []*model.ResponseEmailInfo `json:"data"` +// Error string `json:"error"` +// } +// +// if err := json.Unmarshal(msg.Data, &r); err != nil { +// return nil, err +// } +// if r.Error != "" { +// return nil, errors.New(r.Error) +// } +// +// return r.Data, nil +// } diff --git a/client/location.go b/client/location.go index 18be423..ff50195 100644 --- a/client/location.go +++ b/client/location.go @@ -19,7 +19,7 @@ func GetLocation() Location { // GetLocationByCode ... func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*model.ResponseLocationAddress, error) { - msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCode, toBytes(payload)) + msg, err := natsio.GetServer().Request(subject.Location.GetLocationByCodeNew, toBytes(payload)) if err != nil { return nil, err } @@ -28,7 +28,7 @@ func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*mode Data *model.ResponseLocationAddress `json:"data"` Error string `json:"error"` } - if err := json.Unmarshal(msg.Data, &r); err != nil { + if err = json.Unmarshal(msg.Data, &r); err != nil { return nil, err } @@ -38,19 +38,19 @@ func (l Location) GetLocationByCode(payload model.LocationRequestPayload) (*mode return r.Data, nil } -// GetProvincesByCodes ... ... +// GetProvincesByCodes ... func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.LocationProvinceResponse, error) { - msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodes, toBytes(p)) + msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCodesNew, toBytes(p)) if err != nil { return nil, err } var r struct { - Data *model.LocationProvinceResponse `json:"data"'` + Data *model.LocationProvinceResponse `json:"data"` Error string `json:"error"` } - if err := json.Unmarshal(msg.Data, &r); err != nil { + if err = json.Unmarshal(msg.Data, &r); err != nil { return nil, err } @@ -62,7 +62,7 @@ func (l Location) GetProvincesByCodes(p model.ProvinceRequestPayload) (*model.Lo // GetDistrictsByCodes ... func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.LocationDistrictResponse, error) { - msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCodes, toBytes(p)) + msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCodesNew, toBytes(p)) if err != nil { return nil, err } @@ -71,7 +71,7 @@ func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.Lo Error string `json:"error"` } - if err := json.Unmarshal(msg.Data, &r); err != nil { + if err = json.Unmarshal(msg.Data, &r); err != nil { return nil, err } @@ -84,7 +84,7 @@ func (l Location) GetDistrictsByCodes(p model.DistrictRequestPayload) (*model.Lo // GetWardsByCodes ... func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWardResponse, error) { - msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCodes, toBytes(p)) + msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCodesNew, toBytes(p)) if err != nil { return nil, err } @@ -94,7 +94,7 @@ func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWa Error string `json:"error"` } - if err := json.Unmarshal(msg.Data, &r); err != nil { + if err = json.Unmarshal(msg.Data, &r); err != nil { return nil, err } @@ -104,3 +104,211 @@ func (l Location) GetWardsByCodes(p model.WardRequestPayload) (*model.LocationWa return r.Data, nil } + +// GetProvinceByCondition ... +func (l Location) GetProvinceByCondition(p model.RequestCondition) (*model.LocationProvinceDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetProvinceByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.LocationProvinceDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// GetProvincesByCondition ... +func (l Location) GetProvincesByCondition(p model.RequestCondition) ([]*model.LocationProvinceDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetProvincesByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data []*model.LocationProvinceDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// GetDistrictByCondition ... +func (l Location) GetDistrictByCondition(p model.RequestCondition) (*model.LocationDistrictDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetDistrictByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.LocationDistrictDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// GetDistrictsByCondition ... +func (l Location) GetDistrictsByCondition(p model.RequestCondition) ([]*model.LocationDistrictDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetDistrictsByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data []*model.LocationDistrictDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// GetWardByCondition ... +func (l Location) GetWardByCondition(p model.RequestCondition) (*model.LocationWardDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetWardByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.LocationWardDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// GetWardsByCondition ... +func (l Location) GetWardsByCondition(p model.RequestCondition) ([]*model.LocationWardDetailResponse, error) { + msg, err := natsio.GetServer().Request(subject.Location.GetWardsByCondition, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data []*model.LocationWardDetailResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// CountProvinceByCondition ... +func (l Location) CountProvinceByCondition(p model.RequestCondition) (int64, error) { + msg, err := natsio.GetServer().Request(subject.Location.CountProvinceByCondition, toBytes(p)) + if err != nil { + return 0, err + } + var r struct { + Data int64 `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return 0, err + } + if r.Error != "" { + return 0, errors.New(r.Error) + } + return r.Data, nil +} + +// CountDistrictByCondition ... +func (l Location) CountDistrictByCondition(p model.RequestCondition) (int64, error) { + msg, err := natsio.GetServer().Request(subject.Location.CountDistrictByCondition, toBytes(p)) + if err != nil { + return 0, err + } + var r struct { + Data int64 `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return 0, err + } + if r.Error != "" { + return 0, errors.New(r.Error) + } + return r.Data, nil +} + +// CountWardByCondition ... +func (l Location) CountWardByCondition(p model.RequestCondition) (int64, error) { + msg, err := natsio.GetServer().Request(subject.Location.CountWardByCondition, toBytes(p)) + if err != nil { + return 0, err + } + var r struct { + Data int64 `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return 0, err + } + if r.Error != "" { + return 0, errors.New(r.Error) + } + return r.Data, nil +} + +// DistinctWithField ... +func (l Location) DistinctWithField(p model.ProvinceDistinctWithField) ([]interface{}, error) { + msg, err := natsio.GetServer().Request(subject.Location.ProvinceDistinctWithField, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Data []interface{} `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} diff --git a/client/notification.go b/client/notification.go new file mode 100644 index 0000000..66c4b52 --- /dev/null +++ b/client/notification.go @@ -0,0 +1,31 @@ +package client + +import ( + "encoding/json" + "errors" + + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +func GetNotification() Notification { + return Notification{} +} + +type Notification struct{} + +func (n Notification) SupplierChangeBalanceRequestApproved(p model.NotificationSupplierChangeBalanceRequestApprovedReq) error { + msg, err := natsio.GetServer().Request(subject.Notification.SupplierChangeBalanceRequestApproved, toBytes(p)) + if err != nil { + return err + } + var r model.CommonResponseData + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} diff --git a/client/order.go b/client/order.go index a6ab736..a49c68b 100644 --- a/client/order.go +++ b/client/order.go @@ -119,3 +119,24 @@ func (o Order) GetSupplierOrders(p model.OrderSupplierQuery) (*model.SupplierOrd } return &r.Data, nil } + +// GetSupplierCash ... +func (o Order) GetSupplierCash(p model.OrderSupplierCashReq) (*model.OrderSupplierCashRes, error) { + msg, err := natsio.GetServer().Request(subject.Order.GetSupplierCash, toBytes(p)) + if err != nil { + return nil, err + } + var ( + r struct { + Data model.OrderSupplierCashRes `json:"data"` + Error string `json:"error"` + } + ) + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return &r.Data, nil +} diff --git a/client/segmnet.go b/client/segment.go similarity index 100% rename from client/segmnet.go rename to client/segment.go diff --git a/client/supplier.go b/client/supplier.go index 9b53826..02bf82d 100644 --- a/client/supplier.go +++ b/client/supplier.go @@ -3,6 +3,7 @@ package client import ( "encoding/json" "errors" + "go.mongodb.org/mongo-driver/bson" "git.selly.red/Selly-Modules/natsio" "git.selly.red/Selly-Modules/natsio/model" @@ -143,9 +144,9 @@ func (s Supplier) Count(req model.SupplierCountReq) (*model.SupplierCountRes, er return r.Data, nil } -// CreateWarehouseIntoServiceSupplier ... -func (s Supplier) CreateWarehouseIntoServiceSupplier(p model.CreateSupplierWarehousePayload) error { - msg, err := natsio.GetServer().Request(subject.Warehouse.CreateWarehouseIntoServiceSupplier, toBytes(p)) +// SyncWarehouseIntoServiceSupplier ... +func (s Supplier) SyncWarehouseIntoServiceSupplier(p model.SyncSupplierWarehousePayload) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.SyncWarehouseIntoServiceSupplier, toBytes(p)) if err != nil { return err } @@ -161,9 +162,104 @@ func (s Supplier) CreateWarehouseIntoServiceSupplier(p model.CreateSupplierWareh return nil } -// UpdateWarehouseIntoServiceSupplier ... -func (s Supplier) UpdateWarehouseIntoServiceSupplier(p model.UpdateSupplierWarehousePayload) error { - msg, err := natsio.GetServer().Request(subject.Warehouse.UpdateWarehouseIntoServiceSupplier, toBytes(p)) +// GetListWarehouseFreeShip ... +func (s Supplier) GetListWarehouseFreeShip() (*model.SupplierListWarehouseFreeShipResponse, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.GetListWarehouseFreeShip, toBytes(bson.M{})) + if err != nil { + return nil, err + } + + var r struct { + Data *model.SupplierListWarehouseFreeShipResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + +// GetFreeShipInfo ... +func (s Supplier) GetFreeShipInfo(p model.SupplierFreeShipInfoRequestPayload) ([]*model.SupplierFreeShipInfoResponse, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.GetFreeShipInfo, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Data []*model.SupplierFreeShipInfoResponse `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +// CreateCashflow ... +func (s Supplier) CreateCashflow(p model.SupplierCashflowCreatePayload) (*model.SupplierCashflowCreateResponse, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.CreateCashflow, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Error string `json:"error"` + Data *model.SupplierCashflowCreateResponse `json:"data"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +func (s Supplier) UpdateBalance(p model.SupplierUpdateBalanceReq) (*model.SupplierUpdateBalanceRes, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.UpdateBalance, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Error string `json:"error"` + Data *model.SupplierUpdateBalanceRes `json:"data"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +func (s Supplier) GetCurrentBalance(p model.SupplierGetCurrentBalanceReq) (*model.SupplierGetCurrentBalanceRes, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.GetCurrentBalance, toBytes(p)) + if err != nil { + return nil, err + } + var r struct { + Error string `json:"error"` + Data *model.SupplierGetCurrentBalanceRes `json:"data"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return r.Data, nil +} + +func (s Supplier) DeleteCashflow(p model.SupplierDeleteCashflowReq) error { + msg, err := natsio.GetServer().Request(subject.Supplier.DeleteCashflow, toBytes(p)) if err != nil { return err } diff --git a/client/supplier_permission.go b/client/supplier_permission.go new file mode 100644 index 0000000..86ac1ba --- /dev/null +++ b/client/supplier_permission.go @@ -0,0 +1,79 @@ +package client + +import ( + "encoding/json" + "errors" + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +// SupplierPermission ... +type SupplierPermission struct{} + +// GetSupplierPermission ... +func GetSupplierPermission() SupplierPermission { + return SupplierPermission{} +} + +func (s SupplierPermission) GetListPermission(p model.GetListPermissionRequest) (*model.GetListPermissionResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierPermission.GetList, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.GetListPermissionResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + +func (s SupplierPermission) CreatePermission(p model.CreatePermissionRequest) (*model.CreatePermissionResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierPermission.Create, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.CreatePermissionResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + +func (s SupplierPermission) UpdatePermission(p model.UpdatePermissionRequest) error { + msg, err := natsio.GetServer().Request(subject.SupplierPermission.Update, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + + return nil +} diff --git a/client/supplier_role.go b/client/supplier_role.go index 3bf068d..095f3e9 100644 --- a/client/supplier_role.go +++ b/client/supplier_role.go @@ -16,8 +16,28 @@ func GetSupplierRole() SupplierRole { return SupplierRole{} } +func (s SupplierRole) GetListRole(p model.GetListRoleRequest) (*model.GetListRoleResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierRole.GetList, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.GetListRoleResponse `json:"data"` + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + func (s SupplierRole) CreateRole(p model.CreateRoleRequest) (*model.CreateRoleResponse, error) { - msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateOwner, toBytes(p)) + msg, err := natsio.GetServer().Request(subject.SupplierRole.Create, toBytes(p)) if err != nil { return nil, err } @@ -56,3 +76,24 @@ func (s SupplierRole) UpdateRole(p model.UpdateRoleRequest) error { return nil } + +func (s SupplierRole) DetailRole(p model.DetailRoleRequest) (*model.RoleBrief, error) { + msg, err := natsio.GetServer().Request(subject.SupplierRole.Detail, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.RoleBrief `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} diff --git a/client/supplier_user.go b/client/supplier_user.go index fb6a2db..f7b52ad 100644 --- a/client/supplier_user.go +++ b/client/supplier_user.go @@ -16,6 +16,89 @@ func GetSupplierUser() SupplierUser { return SupplierUser{} } +func (s SupplierUser) LoginUser(p model.LoginUserRequest) (*model.LoginUserResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.LoginUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.LoginUserResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + +func (s SupplierUser) Logout(p model.LogoutRequest) error { + msg, err := natsio.GetServer().Request(subject.SupplierUser.Logout, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + + return nil +} + +func (s SupplierUser) GetListUser(p model.GetListUserRequest) (*model.GetListUserResponse, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.GetListUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.GetListUserResponse `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + +func (s SupplierUser) DetailUser(p model.DetailUserRequest) (*model.SupplierUserBrief, error) { + msg, err := natsio.GetServer().Request(subject.SupplierUser.DetailUser, toBytes(p)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.SupplierUserBrief `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} + func (s SupplierUser) CreateSupplierOwnerUsers(p model.CreateOwnerRequest) (*model.CreateOwnerResponse, error) { msg, err := natsio.GetServer().Request(subject.SupplierUser.CreateOwner, toBytes(p)) if err != nil { @@ -99,7 +182,7 @@ func (s SupplierUser) UpdateSupplierStaffUsers(p model.UpdateStaffRequest) error } func (s SupplierUser) UpdateStatus(p model.UpdateStatusRequest) error { - msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateStaff, toBytes(p)) + msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateStatus, toBytes(p)) if err != nil { return err } @@ -138,3 +221,23 @@ func (s SupplierUser) ResetPassword(p model.ResetPasswordRequest) (*model.ResetP return r.Data, nil } + +func (s SupplierUser) ChangePassword(p model.ChangePasswordRequest) error { + msg, err := natsio.GetServer().Request(subject.SupplierUser.UpdateStatus, toBytes(p)) + if err != nil { + return err + } + + var r struct { + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + + return nil +} diff --git a/client/withdraw.go b/client/withdraw.go new file mode 100644 index 0000000..006d7a7 --- /dev/null +++ b/client/withdraw.go @@ -0,0 +1,39 @@ +package client + +import ( + "encoding/json" + "errors" + + "git.selly.red/Selly-Modules/natsio" + "git.selly.red/Selly-Modules/natsio/model" + "git.selly.red/Selly-Modules/natsio/subject" +) + +// Withdraw ... +type Withdraw struct{} + +// GetWithdraw ... +func GetWithdraw() Withdraw { + return Withdraw{} +} + +// GetSupplierCash ... +func (o Withdraw) GetSupplierCash(p model.WithdrawSupplierCashReq) (*model.WithdrawSupplierCashRes, error) { + msg, err := natsio.GetServer().Request(subject.Withdraw.GetSupplierCash, toBytes(p)) + if err != nil { + return nil, err + } + var ( + r struct { + Data model.WithdrawSupplierCashRes `json:"data"` + Error string `json:"error"` + } + ) + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + return &r.Data, nil +} diff --git a/model/auth_sms_request.go b/model/auth_sms_request.go new file mode 100644 index 0000000..7ee616a --- /dev/null +++ b/model/auth_sms_request.go @@ -0,0 +1,7 @@ +package model + +type CheckPermissionRequest struct { + Value []string `json:"value"` + ID string `json:"_id"` + DeviceID string `json:"deviceId"` +} diff --git a/model/auth_sms_response.go b/model/auth_sms_response.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/model/auth_sms_response.go @@ -0,0 +1 @@ +package model diff --git a/model/bank_branch_reponse.go b/model/bank_branch_reponse.go deleted file mode 100644 index 1fa1432..0000000 --- a/model/bank_branch_reponse.go +++ /dev/null @@ -1,11 +0,0 @@ -package model - -// BankBranchBrief ... -type BankBranchBrief struct { - ID string `json:"_id"` - City string `json:"city"` - BankCode string `json:"bankCode"` - Bank string `json:"bank"` - Active bool `json:"active"` - Name string `json:"name"` -} diff --git a/model/bank_branch_request.go b/model/bank_branch_request.go deleted file mode 100644 index 6de1216..0000000 --- a/model/bank_branch_request.go +++ /dev/null @@ -1,6 +0,0 @@ -package model - -type BankBranchRequest struct { - BankID string `json:"bankId"` - BranchID string `json:"branchId"` -} diff --git a/model/bank_request.go b/model/bank_request.go new file mode 100644 index 0000000..3b76615 --- /dev/null +++ b/model/bank_request.go @@ -0,0 +1,11 @@ +package model + +type CheckBankAndBranchByIDRequest struct { + BankID string `json:"bankId"` + BranchID string `json:"branchId"` +} + +type GetBankInfoRequest struct { + BankID string `json:"bankId"` + BranchID string `json:"branchId"` +} diff --git a/model/bank_response.go b/model/bank_response.go index 74fc10e..e422915 100644 --- a/model/bank_response.go +++ b/model/bank_response.go @@ -1,21 +1,40 @@ package model +import "time" + // MultiLang ... type MultiLang struct { En string `json:"en"` Vi string `json:"vi"` } +// BranchBrief ... +type BranchBrief struct { + ID string `json:"_id"` + City string `json:"city"` + BankCode string `json:"bankCode"` + BankID string `json:"bankId"` + Active bool `json:"active"` + Name string `json:"name"` +} + // BankBrief ... type BankBrief struct { - ID string `json:"_id"` - Name MultiLang `json:"name"` - ShortName string `json:"shortName"` - Active bool `json:"active"` - BenBankName string `json:"benBankName"` - BankCode int `json:"bankCode"` - IsBranchRequired bool `json:"isBranchRequired"` - SearchString string `json:"searchString"` - BeneficiaryForVietinbank string `json:"beneficiaryForVietinbank"` - CreatedBy string `json:"createdBy,omitempty"` + ID string `json:"_id"` + Name MultiLang `json:"name"` + ShortName string `json:"shortName"` + Active bool `json:"active"` + BenBankName string `json:"benBankName"` + BankCode int `json:"bankCode"` + IsBranchRequired bool `json:"isBranchRequired"` + BeneficiaryForVietinbank string `json:"beneficiaryForVietinbank"` + CreatedBy string `json:"createdBy,omitempty"` + CreatedAt time.Time `json:"createdAt"` + BranchTotal int64 `json:"branchTotal"` + Logo interface{} `json:"logo"` +} + +type ResponseBankInfo struct { + Bank BankBrief `json:"bank"` + Branch BranchBrief `json:"branch"` } diff --git a/model/common_request.go b/model/common_request.go index 0ce5163..e3b36da 100644 --- a/model/common_request.go +++ b/model/common_request.go @@ -20,3 +20,32 @@ type ActionBy struct { ID string `json:"id"` Name string `json:"name"` } + +// ClickAction ... +type ClickAction struct { + Type string `json:"type"` + Value string `json:"value"` +} + +// RequestCondition ... +type RequestCondition struct { + Code int `json:"code"` + Codes []int `json:"codes"` + DistrictCode int `json:"districtCode"` + ProvinceCode int `json:"provinceCode"` + + Slug string `json:"slug"` + OldSlug string `json:"oldSlug"` + + Slugs []string `json:"slugs"` + OldSlugs []string `json:"oldSlugs"` + + DistrictSlug string `json:"districtSlug"` + ProvinceSlug string `json:"provinceSlug"` + + Keyword string `json:"keyword"` + Region string `json:"region"` + + Page int64 `json:"page"` + Limit int64 `json:"limit"` +} diff --git a/model/location_request.go b/model/location_request.go index 4533db7..e4312ce 100644 --- a/model/location_request.go +++ b/model/location_request.go @@ -1,23 +1,65 @@ package model // LocationRequestPayload ... -type LocationRequestPayload struct { - Province int `json:"province"` - District int `json:"district"` - Ward int `json:"ward"` -} +type ( + LocationRequestPayload struct { + Province int `json:"province"` + District int `json:"district"` + Ward int `json:"ward"` + } -// ProvinceRequestPayload ... -type ProvinceRequestPayload struct { - Codes []int `json:"codes"` -} + // ProvinceRequestPayload ... + ProvinceRequestPayload struct { + Codes []int `json:"codes"` + } -// DistrictRequestPayload ... -type DistrictRequestPayload struct { - Codes []int `json:"codes"` -} + // ProvinceRequestCondition ... + ProvinceRequestCondition struct { + Code int `json:"code"` + Codes []int `json:"codes"` + Slug string `json:"slug"` + Slugs []string `json:"slugs"` + Keyword string `json:"keyword"` + Region string `json:"region"` + } -// WardRequestPayload ... -type WardRequestPayload struct { - Codes []int `json:"codes"` -} + // DistrictRequestPayload ... + DistrictRequestPayload struct { + Codes []int `json:"codes"` + } + + // DistrictRequestCondition ... + DistrictRequestCondition struct { + Code int `json:"code"` + Codes []int `json:"codes"` + ProvinceCode int `json:"provinceCode"` + Slug string `json:"slug"` + ProvinceSlug string `json:"provinceSlug"` + Keyword string `json:"keyword"` + } + + // WardRequestPayload ... + WardRequestPayload struct { + Codes []int `json:"codes"` + } + + // WardRequestCondition ... + WardRequestCondition struct { + Code int `json:"code"` + Codes []int `json:"codes"` + DistrictCode int `json:"districtCode"` + ProvinceCode int `json:"provinceCode"` + Slug string `json:"slug"` + DistrictSlug string `json:"districtSlug"` + ProvinceSlug string `json:"provinceSlug"` + Keyword string `json:"keyword"` + } + + // ProvinceDistinctWithField ... + ProvinceDistinctWithField struct { + Conditions struct { + Region string `json:"region"` + } `json:"conditions"` + Field string `json:"filed"` + } +) diff --git a/model/location_response.go b/model/location_response.go index 484d89e..e48bdce 100644 --- a/model/location_response.go +++ b/model/location_response.go @@ -1,43 +1,87 @@ package model -type ResponseLocationAddress struct { - Province LocationProvince `json:"province"` - District LocationDistrict `json:"district"` - Ward LocationWard `json:"ward"` -} +type ( + // ResponseLocationAddress ... + ResponseLocationAddress struct { + Province LocationProvince `json:"province"` + District LocationDistrict `json:"district"` + Ward LocationWard `json:"ward"` + } -// LocationProvince ... -type LocationProvince struct { - ID string `json:"id"` - Name string `json:"name"` - Code int `json:"code"` -} + // LocationProvince ... + LocationProvince struct { + ID string `json:"id"` + Name string `json:"name"` + Code int `json:"code"` + Slug string `json:"slug"` + RegionCode string `json:"regionCode"` + MainRegionCode string `json:"mainRegionCode"` + } -// LocationDistrict ... -type LocationDistrict struct { - ID string `json:"id"` - Name string `json:"name"` - Code int `json:"code"` -} + // LocationDistrict ... + LocationDistrict struct { + ID string `json:"id"` + Name string `json:"name"` + Code int `json:"code"` + Slug string `json:"slug"` + } -// LocationWard ... -type LocationWard struct { - ID string `json:"id"` - Name string `json:"name"` - Code int `json:"code"` -} + // LocationWard ... + LocationWard struct { + ID string `json:"id"` + Name string `json:"name"` + Code int `json:"code"` + Slug string `json:"slug"` + } -// LocationProvinceResponse ... -type LocationProvinceResponse struct { - Provinces []LocationProvince `json:"provinces"` -} + // LocationProvinceResponse ... + LocationProvinceResponse struct { + Provinces []LocationProvince `json:"provinces"` + } -// LocationDistrictResponse ... -type LocationDistrictResponse struct { - Districts []LocationDistrict `json:"districts"` -} + // LocationDistrictResponse ... + LocationDistrictResponse struct { + Districts []LocationDistrict `json:"districts"` + } -// LocationWardResponse ... -type LocationWardResponse struct { - Wards []LocationWard `json:"wards"` -} + // LocationWardResponse ... + LocationWardResponse struct { + Wards []LocationWard `json:"wards"` + } + + // LocationProvinceDetailResponse ... + LocationProvinceDetailResponse struct { + ID string `json:"_id"` + Name string `json:"name"` + Slug string `json:"slug"` + Code int `json:"code"` + CountryCode string `json:"countryCode"` + RegionCode string `json:"regionCode"` + MainRegionCode string `json:"mainRegionCode"` + TotalDistricts int `json:"totalDistricts"` + TotalWards int `json:"totalWards"` + } + + // LocationDistrictDetailResponse ... + LocationDistrictDetailResponse struct { + ID string `json:"_id"` + Name string `json:"name"` + OldSlugs []string `json:"oldSlugs"` + Slug string `json:"slug"` + Code int `json:"code"` + ProvinceCode int `json:"provinceCode"` + Area int `json:"area"` + TotalWards int `json:"totalWards"` + } + + // LocationWardDetailResponse ... + LocationWardDetailResponse struct { + ID string `json:"_id"` + Name string `json:"name"` + OldSlugs []string `json:"oldSlugs"` + Slug string `json:"slug"` + Code int `json:"code"` + DistrictCode int `json:"districtCode"` + ProvinceCode int `json:"provinceCode"` + } +) diff --git a/model/notification_request.go b/model/notification_request.go new file mode 100644 index 0000000..bbef9c4 --- /dev/null +++ b/model/notification_request.go @@ -0,0 +1,7 @@ +package model + +type NotificationSupplierChangeBalanceRequestApprovedReq struct { + SupplierID string `json:"supplierId"` + Cash float64 `json:"cash"` + Reason string `json:"reason"` +} diff --git a/model/notification_response.go b/model/notification_response.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/model/notification_response.go @@ -0,0 +1 @@ +package model diff --git a/model/order_request.go b/model/order_request.go index bd1fa73..a0ff6ee 100644 --- a/model/order_request.go +++ b/model/order_request.go @@ -49,3 +49,7 @@ type OrderSupplierQuery struct { SupplierID string `json:"supplierId"` WarehouseIDs []string `json:"warehouseIDs"` } + +type OrderSupplierCashReq struct { + SupplierID string `json:"supplierId"` +} diff --git a/model/order_response.go b/model/order_response.go index c08f87a..59b80d3 100644 --- a/model/order_response.go +++ b/model/order_response.go @@ -33,3 +33,9 @@ type SupplierOrderDelivery struct { Status string `json:"status" enums:"waiting_to_confirm,waiting_to_pick,picking,picked,delay_pickup,pickup_failed,delivering,delay_delivery,delivered,cancelled,delivery_failed,waiting_to_return,returning,delay_return,compensation,returned"` TPLCode string `json:"tplCode" enums:"SLY,GHTK,GHN,SSC,SPY,VTP,SE,NTL,BEST"` } + +type OrderSupplierCashRes struct { + PendingCash float64 `json:"pendingCash"` + WaitingForReconcileCash float64 `json:"waitingForReconcileCash"` + ReconciledCash float64 `json:"reconciledCash"` +} diff --git a/model/supplier_device_request.go b/model/supplier_device_request.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/model/supplier_device_request.go @@ -0,0 +1 @@ +package model diff --git a/model/supplier_device_response.go b/model/supplier_device_response.go new file mode 100644 index 0000000..8b53790 --- /dev/null +++ b/model/supplier_device_response.go @@ -0,0 +1 @@ +package model diff --git a/model/supplier_permission_request.go b/model/supplier_permission_request.go new file mode 100644 index 0000000..e3d63c7 --- /dev/null +++ b/model/supplier_permission_request.go @@ -0,0 +1,24 @@ +package model + +type GetListPermissionRequest struct { + Page int `json:"page"` + Limit int `json:"limit"` + Group string `json:"group"` +} + +type DetailPermissionRequest struct { + ID string `json:"_id"` +} + +type CreatePermissionRequest struct { + Name string `json:"name"` + Code string `json:"code"` + Group string `json:"group"` +} + +type UpdatePermissionRequest struct { + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Group string `json:"group"` +} diff --git a/model/supplier_permission_response.go b/model/supplier_permission_response.go new file mode 100644 index 0000000..8134201 --- /dev/null +++ b/model/supplier_permission_response.go @@ -0,0 +1,26 @@ +package model + +type GetListPermissionResponse struct { + Permissions []PermissionBrief `json:"permissions"` + Total int64 `json:"total"` +} + +type PermissionBrief struct { + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Group string `json:"group"` + CreatedAt string `json:"createdAt"` + UpdatedAt string `json:"updatedAt"` +} + +type CreatePermissionResponse struct { + ID string `json:"_id"` +} + +type PermissionShort struct { + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Group string `json:"group"` +} diff --git a/model/supplier_request.go b/model/supplier_request.go index 18034af..d4ca0a4 100644 --- a/model/supplier_request.go +++ b/model/supplier_request.go @@ -23,20 +23,30 @@ type SupplierRequestPayload struct { ContractStatus string } -type CreateSupplierWarehousePayload struct { - Supplier string `json:"supplier"` - Warehouse string `json:"warehouse"` - ProvinceCode int `json:"provinceCode"` - DistrictCode int `json:"districtCode"` - WardCode int `json:"wardCode"` +// SupplierCashflowCreatePayload ... +type SupplierCashflowCreatePayload struct { + Supplier string `json:"supplier"` + Action string `json:"action"` + Name string `json:"name"` + TargetID string `json:"targetId"` + Value float64 `json:"value"` + ClickAction *ClickAction `json:"clickAction"` } -type UpdateSupplierWarehousePayload struct { - Supplier string `json:"supplier"` - Warehouse string `json:"warehouse"` - ProvinceCode int `json:"provinceCode"` - DistrictCode int `json:"districtCode"` - WardCode int `json:"wardCode"` +type SupplierFreeShipInfoRequestPayload struct { + SupplierIDs []string `json:"supplierIds"` +} + +type SupplierUpdateBalanceReq struct { + SupplierID string `json:"supplierId"` +} + +type SupplierGetCurrentBalanceReq struct { + SupplierID string `json:"supplierId"` +} + +type SupplierDeleteCashflowReq struct { + CashflowID string `json:"cashflowId"` } type SupplierFindAllReq struct { diff --git a/model/supplier_response.go b/model/supplier_response.go index 2b9dd10..9e20e27 100644 --- a/model/supplier_response.go +++ b/model/supplier_response.go @@ -30,6 +30,57 @@ type SupplierAll struct { Total int64 `json:"total"` } +type SupplierListWarehouseFreeShipResponse struct { + Warehouses []string `json:"warehouses"` +} + +type SupplierCashflowCreateResponse struct { + ID string `json:"id"` +} + +type FreeShip struct { + ID string `json:"_id"` + ShortName string `json:"shortName"` + ListMilestoneText []string `json:"milestoneText"` + Order int `json:"-"` +} + +type SupplierFreeShipInfoResponse struct { + SupplierID string `json:"supplierId"` + FreeShips []FreeShip `json:"freeShips"` +} + +type SupplierShort struct { + ID string `json:"_id"` + Name string `json:"name"` + Logo interface{} `json:"logo"` +} + +type SupplierUpdateBalanceRes struct { + CurrentCash float64 `json:"currentCash"` + TotalPendingCash float64 `json:"totalPendingCash"` + OrderPendingCash float64 `json:"orderPendingCash"` + OrderWaitingForReconcileCash float64 `json:"orderWaitingForReconcileCash"` + OrderReconciledCash float64 `json:"orderReconciledCash"` + WithdrawPendingCash float64 `json:"withdrawPendingCash"` + WithdrawSuccessCash float64 `json:"withdrawSuccessCash"` + WithdrawRejectCash float64 `json:"withdrawRejectCash"` + ChangeBalanceRequestApproved float64 `json:"changeBalanceRequestApproved"` + UpdatedAt string `json:"updatedAt"` +} + +type SupplierGetCurrentBalanceRes struct { + CurrentCash float64 `json:"currentCash"` +} + +type SyncSupplierWarehousePayload struct { + Supplier string `json:"supplier"` + Warehouse string `json:"warehouse"` + ProvinceCode int `json:"provinceCode"` + DistrictCode int `json:"districtCode"` + WardCode int `json:"wardCode"` +} + type SupplierCountRes struct { Total int64 `json:"total"` } diff --git a/model/supplier_role_request.go b/model/supplier_role_request.go index 6402622..ee12d59 100644 --- a/model/supplier_role_request.go +++ b/model/supplier_role_request.go @@ -1,14 +1,29 @@ package model +type GetListRoleRequest struct { + Page int `json:"page"` + Limit int `json:"limit"` + Type string `json:"type"` + SupplierID string `json:"supplierId"` +} + +type DetailRoleRequest struct { + ID string `json:"_id"` +} + type CreateRoleRequest struct { - Name string `json:"name"` - Code string `json:"code"` - Type string `json:"type"` + Name string `json:"name"` + Code string `json:"code"` + Type string `json:"type"` + SupplierID string `json:"supplierId"` + Permissions []string `json:"permissions"` } type UpdateRoleRequest struct { - ID string `json:"_id"` - Name string `json:"name"` - Code string `json:"code"` - Type string `json:"type"` + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Type string `json:"type"` + SupplierID string `json:"supplierId"` + Permissions []string `json:"permissions"` } diff --git a/model/supplier_role_response.go b/model/supplier_role_response.go index d7b68fc..b67a0c6 100644 --- a/model/supplier_role_response.go +++ b/model/supplier_role_response.go @@ -1,5 +1,29 @@ package model +type GetListRoleResponse struct { + Roles []RoleBrief `json:"roles"` + Total int64 `json:"total"` +} + +type RoleBrief struct { + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Type string `json:"type"` + Permissions []PermissionShort `json:"permissions"` + SupplierId string `json:"supplierId"` + CreatedAt string `json:"createdAt"` + UpdatedAt string `json:"updatedAt"` +} + type CreateRoleResponse struct { ID string `json:"_id"` } + +type RoleShort struct { + ID string `json:"_id"` + Name string `json:"name"` + Code string `json:"code"` + Type string `json:"type"` + SupplierId string `json:"supplierId"` +} diff --git a/model/supplier_user_request.go b/model/supplier_user_request.go index 66ccb17..401a1d1 100644 --- a/model/supplier_user_request.go +++ b/model/supplier_user_request.go @@ -1,12 +1,44 @@ package model +type LoginUserRequest struct { + Email string `json:"email"` + Password string `json:"password"` + DeviceID string `json:"deviceId"` + AppVersion string `json:"appVersion"` + UserAgent string `json:"userAgent"` + Model string `json:"model"` + Manufacturer string `json:"manufacturer"` + IP string `json:"ip"` + Language string `json:"language"` + FCMToken string `json:"FCMToken"` + AuthToken string `json:"authToken"` + OsName string `json:"osName"` + OsVersion string `json:"osVersion"` + IsMobile bool `json:"isMobile"` +} + +type LogoutRequest struct { + ID string `json:"_id"` +} + +type GetListUserRequest struct { + Page int `json:"page"` + Limit int `json:"limit"` + Status string `json:"status"` + Type string `json:"type"` + SupplierID string `json:"supplierId"` +} + +type DetailUserRequest struct { + ID string `json:"_id"` +} + type CreateOwnerRequest struct { Name string `json:"name"` Phone string `json:"phone"` Email string `json:"email"` SupplierID string `json:"supplierId"` RoleID string `json:"roleId"` - Password string `json:"password"` } type UpdateOwnerRequest struct { @@ -24,7 +56,6 @@ type CreateStaffRequest struct { Email string `json:"email"` SupplierID string `json:"supplierId"` RoleID string `json:"roleId"` - Password string `json:"password"` Warehouses []string `json:"warehouses"` } @@ -46,6 +77,10 @@ type UpdateStatusRequest struct { } type ResetPasswordRequest struct { + ID string `json:"_id"` +} + +type ChangePasswordRequest struct { ID string `json:"_id"` Password string `json:"password"` } diff --git a/model/supplier_user_response.go b/model/supplier_user_response.go index 38a1d0c..3df1ea0 100644 --- a/model/supplier_user_response.go +++ b/model/supplier_user_response.go @@ -1,5 +1,33 @@ package model +// LoginUserResponse ... +type LoginUserResponse struct { + ID string `json:"_id"` + RequireToChangePassword bool `json:"requireToChangePassword"` + SupplierID string `json:"supplierId"` + Name string `json:"name"` +} + +type GetListUserResponse struct { + SupplierUsers []SupplierUserBrief `json:"supplierUsers"` + Total int64 `json:"total"` +} + +type SupplierUserBrief struct { + ID string `json:"_id"` + Role RoleShort `json:"role"` + SupplierID string `json:"supplierId"` + Name string `json:"name"` + Phone string `json:"phone"` + Email string `json:"email"` + Status string `json:"status"` + Avatar interface{} `json:"avatar"` + Type string `json:"type"` + Warehouses []string `json:"warehouses"` + CreatedAt string `json:"createdAt"` + UpdatedAt string `json:"updatedAt"` +} + type CreateOwnerResponse struct { ID string `json:"_id"` } diff --git a/model/warehouse_response.go b/model/warehouse_response.go index c667290..0b6cee0 100644 --- a/model/warehouse_response.go +++ b/model/warehouse_response.go @@ -119,6 +119,7 @@ type CommonLocation struct { ID string `json:"id"` Name string `json:"name"` Code int `json:"code"` + Slug string `json:"slug"` } // ResponseLatLng ... diff --git a/model/withdraw_request.go b/model/withdraw_request.go new file mode 100644 index 0000000..7eb4a3f --- /dev/null +++ b/model/withdraw_request.go @@ -0,0 +1,5 @@ +package model + +type WithdrawSupplierCashReq struct { + SupplierID string `json:"supplierId"` +} diff --git a/model/withdraw_response.go b/model/withdraw_response.go new file mode 100644 index 0000000..9c5adc5 --- /dev/null +++ b/model/withdraw_response.go @@ -0,0 +1,7 @@ +package model + +type WithdrawSupplierCashRes struct { + PendingCash float64 `json:"pendingCash"` + SuccessCash float64 `json:"successCash"` + RejectCash float64 `json:"rejectCash"` +} diff --git a/subject/auth_sms.go b/subject/auth_sms.go new file mode 100644 index 0000000..92fea0c --- /dev/null +++ b/subject/auth_sms.go @@ -0,0 +1,15 @@ +package subject + +import "fmt" + +func getAuthSMSValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.AuthSMS, val) +} + +var AuthSMS = struct { + // AuthSMS + CheckPermission string +}{ + // Users + CheckPermission: getAuthSMSValue("check_permission"), +} diff --git a/subject/bank.go b/subject/bank.go index 9f7f8bb..a500900 100644 --- a/subject/bank.go +++ b/subject/bank.go @@ -7,11 +7,11 @@ func getBankValue(val string) string { } var Bank = struct { - GetBankById string - GetBankBranchById string + GetBankInfo string + GetBankInfoDetail string CheckBankAndBranchByID string }{ - GetBankById: getBankValue("get_bank_by_id"), - GetBankBranchById: getBankValue("get_bank_branch_by_id"), - CheckBankAndBranchByID: getBankValue("check_bank_and_brach_by_id"), + GetBankInfo: getBankValue("get_bank_info"), + GetBankInfoDetail: getBankValue("get_bank_info_detail"), + CheckBankAndBranchByID: getBankValue("check_bank_and_branch_by_id"), } diff --git a/subject/config.go b/subject/config.go index 1954121..b203e30 100644 --- a/subject/config.go +++ b/subject/config.go @@ -1,35 +1,45 @@ package subject var prefixes = struct { - Communication string - Order string - News string - Warehouse string - Location string - Bank string - Supplier string - Seller string - SupplierUser string - SupplierRole string - SocialPost string - Staff string - Segment string - Campaign string + Communication string + Order string + News string + Warehouse string + Location string + Bank string + Supplier string + Seller string + AuthSMS string + Selly string + SupplierPermission string + Withdraw string + Notification string + SocialPost string + Staff string + Segment string + SupplierUser string + SupplierRole string + Campaign string Affiliate string }{ - Communication: "communication", - Order: "order", - News: "news", - Warehouse: "warehouse", - Location: "location", - Supplier: "supplier", - Bank: "bank", - Seller: "seller", - SupplierUser: "supplier_user", - SupplierRole: "supplier_role", - SocialPost: "social_post", - Staff: "staff", - Segment: "segment", - Campaign: "campaign", + Communication: "communication", + Order: "order", + News: "news", + Warehouse: "warehouse", + Location: "location", + Supplier: "supplier", + Bank: "bank", + Seller: "seller", + AuthSMS: "auth_sms", + Selly: "selly", + SupplierUser: "supplier_user", + SupplierRole: "supplier_role", + SupplierPermission: "supplier_permission", + Withdraw: "withdraw", + Notification: "notification", + SocialPost: "social_post", + Staff: "staff", + Segment: "segment", + Campaign: "campaign", Affiliate: "affiliate", } diff --git a/subject/location.go b/subject/location.go index b19a59b..3ee9baf 100644 --- a/subject/location.go +++ b/subject/location.go @@ -7,13 +7,41 @@ func getLocationValue(val string) string { } var Location = struct { - GetLocationByCode string - GetProvincesByCodes string - GetDistrictsByCodes string - GetWardsByCodes string + GetLocationByCode string + GetLocationByCodeNew string + GetProvincesByCodes string + GetProvincesByCodesNew string + GetDistrictsByCodes string + GetDistrictsByCodesNew string + GetWardsByCodes string + GetWardsByCodesNew string + GetProvinceByCondition string + GetProvincesByCondition string + GetDistrictByCondition string + GetDistrictsByCondition string + GetWardByCondition string + GetWardsByCondition string + CountProvinceByCondition string + CountDistrictByCondition string + CountWardByCondition string + ProvinceDistinctWithField string }{ - GetLocationByCode: getLocationValue("get_location_warehouse"), - GetProvincesByCodes: getLocationValue("get_provinces_by_codes"), - GetDistrictsByCodes: getLocationValue("get_districts_by_codes"), - GetWardsByCodes: getLocationValue("get_wards_by_codes"), + GetLocationByCode: getLocationValue("get_location_warehouse"), + GetLocationByCodeNew: getLocationValue("get_location_warehouse_new"), + GetProvincesByCodes: getLocationValue("get_provinces_by_codes"), + GetProvincesByCodesNew: getLocationValue("get_provinces_by_codes_new"), + GetDistrictsByCodes: getLocationValue("get_districts_by_codes"), + GetDistrictsByCodesNew: getLocationValue("get_districts_by_codes_new"), + GetWardsByCodes: getLocationValue("get_wards_by_codes"), + GetWardsByCodesNew: getLocationValue("get_wards_by_codes_new"), + GetProvinceByCondition: getLocationValue("get_province_by_condition"), + GetProvincesByCondition: getLocationValue("get_provinces_by_condition"), + GetDistrictByCondition: getLocationValue("get_district_by_condition"), + GetDistrictsByCondition: getLocationValue("get_districts_byCondition"), + GetWardByCondition: getLocationValue("get_ward_by_condition"), + GetWardsByCondition: getLocationValue("get_wards_by_condition"), + CountProvinceByCondition: getLocationValue("count_province_by_condition"), + CountDistrictByCondition: getLocationValue("count_district_by_condition"), + CountWardByCondition: getLocationValue("count_ward_by_condition"), + ProvinceDistinctWithField: getLocationValue("province_distinct_with_field"), } diff --git a/subject/notification.go b/subject/notification.go new file mode 100644 index 0000000..317655f --- /dev/null +++ b/subject/notification.go @@ -0,0 +1,13 @@ +package subject + +import "fmt" + +func getNotificationValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.Notification, val) +} + +var Notification = struct { + SupplierChangeBalanceRequestApproved string +}{ + SupplierChangeBalanceRequestApproved: getNotificationValue("supplier_change_balance_request_approved"), +} diff --git a/subject/order.go b/subject/order.go index 017f2be..e24e193 100644 --- a/subject/order.go +++ b/subject/order.go @@ -13,6 +13,7 @@ var Order = struct { UpdateLogisticInfoFailed string ORNotUpdateStatus string GetSupplierOrders string + GetSupplierCash string }{ UpdateORStatus: getOrderValue("update_outbound_request_status"), CancelDelivery: getOrderValue("cancel_delivery"), @@ -20,4 +21,5 @@ var Order = struct { UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"), ORNotUpdateStatus: getOrderValue("outbound_request_not_update_status"), GetSupplierOrders: getOrderValue("get_supplier_orders"), + GetSupplierCash: getOrderValue("get_supplier_cash"), } diff --git a/subject/supplier.go b/subject/supplier.go index edc797f..931a3e7 100644 --- a/subject/supplier.go +++ b/subject/supplier.go @@ -10,12 +10,24 @@ var Supplier = struct { GetListSupplierInfo string GetSupplierContractBySupplierID string FindAll string + GetListWarehouseFreeShip string + CreateCashflow string + DeleteCashflow string + UpdateBalance string + GetCurrentBalance string + GetFreeShipInfo string FindAllOld string Count string }{ GetListSupplierInfo: getSupplierValue("get_list_supplier_info"), GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"), FindAll: getSupplierValue("find_all"), + GetListWarehouseFreeShip: getSupplierValue("get_list_warehouse_free_ship"), + CreateCashflow: getSupplierValue("create_cashflow"), + DeleteCashflow: getSupplierValue("delete_cashflow"), + UpdateBalance: getSupplierValue("update_balance"), + GetCurrentBalance: getSupplierValue("get_current_balance"), + GetFreeShipInfo: getSupplierValue("get_free_ship_info"), FindAllOld: getSupplierValue("find_all_old"), Count: getSupplierValue("count"), } diff --git a/subject/supplier_permission.go b/subject/supplier_permission.go new file mode 100644 index 0000000..f759a0c --- /dev/null +++ b/subject/supplier_permission.go @@ -0,0 +1,17 @@ +package subject + +import "fmt" + +func getPermissionValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.SupplierPermission, val) +} + +var SupplierPermission = struct { + GetList string + Create string + Update string +}{ + GetList: getPermissionValue("get_list"), + Create: getPermissionValue("create"), + Update: getPermissionValue("update"), +} diff --git a/subject/supplier_role.go b/subject/supplier_role.go index 8915759..83389da 100644 --- a/subject/supplier_role.go +++ b/subject/supplier_role.go @@ -7,9 +7,15 @@ func getRoleValue(val string) string { } var SupplierRole = struct { - Create string - Update string + GetList string + Detail string + Create string + Update string + GetListBySupplierID string }{ - Create: getRoleValue("create"), - Update: getRoleValue("update"), + GetList: getRoleValue("get_list"), + Detail: getRoleValue("detail"), + Create: getRoleValue("create"), + Update: getRoleValue("update"), + GetListBySupplierID: getRoleValue("get_list_by_supplierId"), } diff --git a/subject/supplier_user.go b/subject/supplier_user.go index adc2f1f..49d186c 100644 --- a/subject/supplier_user.go +++ b/subject/supplier_user.go @@ -8,18 +8,28 @@ func getSupplierUserValue(val string) string { var SupplierUser = struct { // Users - CreateOwner string - UpdateOwner string - CreateStaff string - UpdateStaff string - UpdateStatus string - ResetPassword string + LoginUser string + Logout string + GetListUser string + DetailUser string + CreateOwner string + UpdateOwner string + CreateStaff string + UpdateStaff string + UpdateStatus string + ResetPassword string + ChangePassword string }{ // Users - CreateOwner: getSupplierUserValue("create_owner"), - UpdateOwner: getSupplierUserValue("update_owner"), - CreateStaff: getSupplierUserValue("create_staff"), - UpdateStaff: getSupplierUserValue("update_staff"), - UpdateStatus: getSupplierUserValue("update_status"), - ResetPassword: getSupplierUserValue("reset_password"), + LoginUser: getSupplierUserValue("login_user"), + Logout: getSupplierUserValue("logout"), + GetListUser: getSupplierUserValue("get_list_user"), + DetailUser: getSupplierUserValue("detail_user"), + CreateOwner: getSupplierUserValue("create_owner"), + UpdateOwner: getSupplierUserValue("update_owner"), + CreateStaff: getSupplierUserValue("create_staff"), + UpdateStaff: getSupplierUserValue("update_staff"), + UpdateStatus: getSupplierUserValue("update_status"), + ResetPassword: getSupplierUserValue("reset_password"), + ChangePassword: getSupplierUserValue("change_password"), } diff --git a/subject/warehouse.go b/subject/warehouse.go index bb184b5..6c7999e 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -7,43 +7,43 @@ func getWarehouseValue(val string) string { } var Warehouse = struct { - CreateWarehouseIntoServiceSupplier string - UpdateWarehouseIntoServiceSupplier string - CreateOutboundRequest string - UpdateOutboundRequestLogistic string - CancelOutboundRequest string - GetConfiguration string - SyncORStatus string - WebhookTNC string - WebhookGlobalCare string - WebhookOnPoint string - FindOne string - FindByCondition string - Distinct string - Count string - AfterUpdateWarehouse string - AfterCreateWarehouse string - UpdateIsClosedSupplier string - GetWarehouses string - UpdateORDeliveryStatus string + SyncWarehouseIntoServiceSupplier string + CreateOutboundRequest string + UpdateOutboundRequestLogistic string + CancelOutboundRequest string + GetConfiguration string + SyncORStatus string + WebhookTNC string + WebhookShiip string + WebhookGlobalCare string + WebhookOnPoint string + FindOne string + FindByCondition string + Distinct string + Count string + AfterUpdateWarehouse string + AfterCreateWarehouse string + UpdateIsClosedSupplier string + GetWarehouses string + UpdateORDeliveryStatus string }{ - CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), - UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), - AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"), - AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"), - CreateOutboundRequest: getWarehouseValue("create_outbound_request"), - UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"), - CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"), - GetConfiguration: getWarehouseValue("get_configuration"), - SyncORStatus: getWarehouseValue("sync_or_status"), - WebhookTNC: getWarehouseValue("webhook_tnc"), - WebhookGlobalCare: getWarehouseValue("webhook_global_care"), - WebhookOnPoint: getWarehouseValue("webhook_on_point"), - FindOne: getWarehouseValue("find_one"), - FindByCondition: getWarehouseValue("find_all_by_condition"), - Distinct: getWarehouseValue("distinct"), - Count: getWarehouseValue("count"), - UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"), - GetWarehouses: getWarehouseValue("get_warehouses"), - UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"), + SyncWarehouseIntoServiceSupplier: getWarehouseValue("sync_warehouse_into_service_supplier"), + AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"), + AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"), + CreateOutboundRequest: getWarehouseValue("create_outbound_request"), + UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"), + CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"), + GetConfiguration: getWarehouseValue("get_configuration"), + SyncORStatus: getWarehouseValue("sync_or_status"), + WebhookTNC: getWarehouseValue("webhook_tnc"), + WebhookShiip: getWarehouseValue("webhook_shiip"), + WebhookGlobalCare: getWarehouseValue("webhook_global_care"), + WebhookOnPoint: getWarehouseValue("webhook_on_point"), + FindOne: getWarehouseValue("find_one"), + FindByCondition: getWarehouseValue("find_all_by_condition"), + Distinct: getWarehouseValue("distinct"), + Count: getWarehouseValue("count"), + UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"), + GetWarehouses: getWarehouseValue("get_warehouses"), + UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"), } diff --git a/subject/withdraw.go b/subject/withdraw.go new file mode 100644 index 0000000..08f9a87 --- /dev/null +++ b/subject/withdraw.go @@ -0,0 +1,13 @@ +package subject + +import "fmt" + +func getWithdrawValue(val string) string { + return fmt.Sprintf("%s.%s", prefixes.Withdraw, val) +} + +var Withdraw = struct { + GetSupplierCash string +}{ + GetSupplierCash: getWithdrawValue("get_supplier_cash"), +}