53 lines
3.0 KiB
Go
53 lines
3.0 KiB
Go
package distributor
|
|
|
|
import (
|
|
"context"
|
|
|
|
rmodel "git-molva.ru/Molva/molva-backend/services/api_gateway/internal/request_model"
|
|
)
|
|
|
|
type DistributorService interface {
|
|
GetVacancyList(ctx context.Context, request *rmodel.VacancyListGetRequest) (*rmodel.VacancyListGetResponse, error)
|
|
CreateVacancy(ctx context.Context, request *rmodel.VacancyCreateRequest) (*rmodel.VacancyCreateResponse, error)
|
|
UpdateVacancy(ctx context.Context, request *rmodel.VacancyUpdateRequest) (*rmodel.VacancyUpdateResponse, error)
|
|
DeleteVacancy(ctx context.Context, request *rmodel.VacancyDeleteRequest) (*rmodel.VacancyDeleteResponse, error)
|
|
SendVacancyToModeration(ctx context.Context, request *rmodel.SendVacancyToModerationRequest) (*rmodel.SendVacancyToModerationResponse, error)
|
|
|
|
GetSubmissionListForVacancy(ctx context.Context, request *rmodel.SubmissionListForVacancyGetRequest) (*rmodel.SubmissionListForVacancyGetResponse, error)
|
|
UpdateSubmissionStatus(ctx context.Context, request *rmodel.SubmissionStatusUpdateRequest) (*rmodel.SubmissionStatusUpdateResponse, error)
|
|
|
|
GetProfile(ctx context.Context, request *rmodel.ProfileGetRequest) (*rmodel.ProfileGetResponse, error)
|
|
UpdateProfile(ctx context.Context, request *rmodel.ProfileUpdateRequest) (*rmodel.ProfileUpdateResponse, error)
|
|
|
|
GetCompanyList(ctx context.Context, request *rmodel.CompanyListGetRequest) (*rmodel.CompanyListGetResponse, error)
|
|
GetCompanyInfoById(ctx context.Context, request *rmodel.CompanyByIdGetRequest) (*rmodel.CompanyByIdGetResponse, error)
|
|
CreateCompany(ctx context.Context, request *rmodel.CompanyCreateRequest) (*rmodel.CompanyCreateResponse, error)
|
|
UpdateCompanyInfo(ctx context.Context, request *rmodel.CompanyUpdateRequest) (*rmodel.CompanyUpdateResponse, error)
|
|
AddEmployee(ctx context.Context, request *rmodel.AddDistributorCompanyMemberRequest) (*rmodel.AddDistributorCompanyMemberResponse, error)
|
|
|
|
GetBalance(ctx context.Context, request *rmodel.BalanceGetRequest) (*rmodel.BalanceGetResponse, error)
|
|
|
|
GetTransactionList(ctx context.Context, request *rmodel.TransactionListGetRequest) (*rmodel.TransactionListGetResponse, error)
|
|
CreateTransaction(ctx context.Context, request *rmodel.TransactionCreateRequest) (*rmodel.TransactionCreateResponse, error)
|
|
|
|
GetBankAccountList(ctx context.Context, request *rmodel.BankAccountListGetRequest) (*rmodel.BankAccountListGetResponse, error)
|
|
CreateBankAccount(ctx context.Context, request *rmodel.BankAccountCreateRequest) (*rmodel.BankAccountCreateResponse, error)
|
|
UpdateBankAccount(ctx context.Context, request *rmodel.BankAccountUpdateRequest) (*rmodel.BankAccountUpdateResponse, error)
|
|
DeleteBankAccount(ctx context.Context, request *rmodel.BankAccountDeleteRequest) (*rmodel.BankAccountDeleteResponse, error)
|
|
}
|
|
|
|
func New(typ Type, cfg Config) (DistributorService, error) {
|
|
switch typ {
|
|
case CrmDistributorServiceType:
|
|
config, ok := cfg.(CrmDistributorServiceConfig)
|
|
if !ok {
|
|
return nil, ErrInvalidConfig
|
|
}
|
|
|
|
return newCrmDistributorService(config), nil
|
|
|
|
default:
|
|
return nil, ErrUnknownDistributorServiceType
|
|
}
|
|
}
|