1
This commit is contained in:
270
internal/request_model/company.go
Normal file
270
internal/request_model/company.go
Normal file
@@ -0,0 +1,270 @@
|
||||
package requestmodel
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
dbtypes "git-molva.ru/Molva/molva-backend/services/api_gateway/internal/database/types"
|
||||
"git-molva.ru/Molva/molva-backend/services/api_gateway/internal/types"
|
||||
)
|
||||
|
||||
type AddNewAgentCompanyMemberRequest struct {
|
||||
Uid string `json:"uid"`
|
||||
}
|
||||
|
||||
type EmployeeRequest struct {
|
||||
Uid string `json:"uid"`
|
||||
}
|
||||
|
||||
type EmployeeResponse struct {
|
||||
CompanyID string `json:"company_id"`
|
||||
Employees []types.Employee `json:"employees"`
|
||||
}
|
||||
|
||||
type (
|
||||
Company struct {
|
||||
Id string `json:"id"`
|
||||
OwnerId string `json:"owner_id"`
|
||||
Name *string `json:"name"`
|
||||
LegalPerson *string `json:"legal_person"`
|
||||
Description *string `json:"description"`
|
||||
Website *string `json:"website"`
|
||||
PhysicalAddress *string `json:"physical_address"`
|
||||
LegalAddress *string `json:"legal_address"`
|
||||
Inn *string `json:"inn"`
|
||||
Kpp *string `json:"kpp"`
|
||||
IsActive bool `json:"is_active"`
|
||||
HasModerationTicket bool `json:"has_moderation_ticket"`
|
||||
Staff []string `json:"staff"`
|
||||
Metadata *string `json:"metadata"`
|
||||
ExtraFieldsTemplate *string `json:"extra_fields_template"`
|
||||
}
|
||||
)
|
||||
|
||||
func (c *Company) From(msg *dbtypes.Company) *Company {
|
||||
if msg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
res := &Company{
|
||||
Id: msg.Id,
|
||||
OwnerId: msg.OwnerId,
|
||||
Name: msg.Name,
|
||||
LegalPerson: msg.LegalPerson,
|
||||
Description: msg.Description,
|
||||
Website: msg.Website,
|
||||
PhysicalAddress: msg.PhysicalAddress,
|
||||
LegalAddress: msg.LegalAddress,
|
||||
Inn: msg.Inn,
|
||||
Kpp: msg.Kpp,
|
||||
IsActive: msg.IsActive,
|
||||
HasModerationTicket: msg.HasModerationTicket,
|
||||
Staff: msg.Staff,
|
||||
Metadata: msg.Metadata,
|
||||
ExtraFieldsTemplate: msg.ExtraFieldsTemplate,
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
type (
|
||||
CompanyListGetRequest struct {
|
||||
Id string
|
||||
}
|
||||
|
||||
CompanyListGetResponse struct {
|
||||
Companies []Company `json:"companies"`
|
||||
}
|
||||
)
|
||||
|
||||
func (r *CompanyListGetRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.Id == "" {
|
||||
return fmt.Errorf("%w: ID is required", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *CompanyListGetResponse) From(msg *dbtypes.CompanyListGetResponse) *CompanyListGetResponse {
|
||||
if msg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
res := &CompanyListGetResponse{
|
||||
Companies: make([]Company, len(msg.Companies)),
|
||||
}
|
||||
|
||||
for i, company := range msg.Companies {
|
||||
res.Companies[i] = *new(Company).From(&company)
|
||||
}
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
type (
|
||||
CompanyByIdGetRequest struct {
|
||||
UserId string
|
||||
CompanyId string
|
||||
}
|
||||
|
||||
CompanyByIdGetResponse struct {
|
||||
Company Company `json:"company"`
|
||||
}
|
||||
)
|
||||
|
||||
func (r *CompanyByIdGetRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.UserId == "" {
|
||||
return fmt.Errorf("%w: UserID is required", ErrValidation)
|
||||
}
|
||||
|
||||
if r.CompanyId == "" {
|
||||
return fmt.Errorf("%w: CompanyID is required", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *CompanyByIdGetResponse) From(msg *dbtypes.CompanyByIdGetResponse) *CompanyByIdGetResponse {
|
||||
if msg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &CompanyByIdGetResponse{
|
||||
Company: *new(Company).From(&msg.Company),
|
||||
}
|
||||
}
|
||||
|
||||
type (
|
||||
CompanyCreateRequest struct {
|
||||
OwnerId string
|
||||
Name *string `json:"name"`
|
||||
LegalPerson *string `json:"legal_person"`
|
||||
Description *string `json:"description"`
|
||||
Website *string `json:"website"`
|
||||
PhysicalAddress *string `json:"physical_address"`
|
||||
LegalAddress *string `json:"legal_address"`
|
||||
Inn *string `json:"inn"`
|
||||
Kpp *string `json:"kpp"`
|
||||
Staff []string `json:"staff"`
|
||||
Metadata *string `json:"metadata"`
|
||||
ExtraFieldsTemplate *string `json:"extra_fields_template"`
|
||||
}
|
||||
|
||||
CompanyCreateResponse struct {
|
||||
Id string `json:"id"`
|
||||
}
|
||||
)
|
||||
|
||||
func (r *CompanyCreateRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.OwnerId == "" {
|
||||
return fmt.Errorf("%w: OwnerID is required", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *CompanyCreateResponse) From(msg *dbtypes.CompanyCreateResponse) *CompanyCreateResponse {
|
||||
if msg == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &CompanyCreateResponse{
|
||||
Id: msg.Id,
|
||||
}
|
||||
}
|
||||
|
||||
type (
|
||||
CompanyUpdateRequest struct {
|
||||
Id string
|
||||
Name *string `json:"name"`
|
||||
LegalPerson *string `json:"legal_person"`
|
||||
Description *string `json:"description"`
|
||||
Website *string `json:"website"`
|
||||
PhysicalAddress *string `json:"physical_address"`
|
||||
LegalAddress *string `json:"legal_address"`
|
||||
Inn *string `json:"inn"`
|
||||
Kpp *string `json:"kpp"`
|
||||
Staff []string `json:"staff"`
|
||||
Metadata *string `json:"metadata"`
|
||||
ExtraFields *string `json:"extra_fields"`
|
||||
}
|
||||
|
||||
CompanyUpdateResponse struct {
|
||||
}
|
||||
)
|
||||
|
||||
func (r *CompanyUpdateRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.Id == "" {
|
||||
return fmt.Errorf("%w: ID is required", ErrValidation)
|
||||
}
|
||||
|
||||
if r.Name == nil && r.LegalPerson == nil && r.Description == nil && r.Website == nil &&
|
||||
r.PhysicalAddress == nil && r.LegalAddress == nil && r.Inn == nil && r.Kpp == nil &&
|
||||
r.Staff == nil && r.Metadata == nil && r.ExtraFields == nil {
|
||||
return fmt.Errorf("%w: nothing to update", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type (
|
||||
AddDistributorCompanyMemberRequest struct {
|
||||
Id string `json:"id"`
|
||||
CompanyId string
|
||||
}
|
||||
|
||||
AddDistributorCompanyMemberResponse struct {
|
||||
}
|
||||
)
|
||||
|
||||
func (r *AddDistributorCompanyMemberRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.Id == "" {
|
||||
return fmt.Errorf("%w: ID is required", ErrValidation)
|
||||
}
|
||||
|
||||
if r.CompanyId == "" {
|
||||
return fmt.Errorf("%w: CompanyID is required", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type (
|
||||
CompanyDeleteRequest struct {
|
||||
Id string
|
||||
}
|
||||
|
||||
CompanyDeleteResponse struct {
|
||||
}
|
||||
)
|
||||
|
||||
func (r *CompanyDeleteRequest) Validate() error {
|
||||
if r == nil {
|
||||
return fmt.Errorf("%w: request is nil", ErrValidation)
|
||||
}
|
||||
|
||||
if r.Id == "" {
|
||||
return fmt.Errorf("%w: ID is required", ErrValidation)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user