104 lines
3.9 KiB
Go
104 lines
3.9 KiB
Go
package ecalc
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
)
|
|
|
|
type Ecalc struct {
|
|
ID int `json:"id,omitempty"`
|
|
Type string `json:"type"`
|
|
Version string `json:"version"`
|
|
CompanyFacts CompanyFacts `json:"companyFacts"`
|
|
Matrix Matrix `json:"matrix"`
|
|
}
|
|
|
|
// EncodeJSON writes the JSON of the conf into the Writer
|
|
func (e Ecalc) EncodeJSON(w io.Writer) error {
|
|
enc := json.NewEncoder(w)
|
|
enc.SetIndent("", " ")
|
|
return enc.Encode(e)
|
|
}
|
|
|
|
type CompanyFacts struct {
|
|
ID int `json:"id,omitempty"`
|
|
TotalPurchaseFromSuppliers int `json:"totalPurchaseFromSuppliers"`
|
|
TotalStaffCosts int `json:"totalStaffCosts"`
|
|
Profit int `json:"profit"`
|
|
FinancialCosts int `json:"financialCosts"`
|
|
IncomeFromFinancialInvestments int `json:"incomeFromFinancialInvestments"`
|
|
AdditionsToFixedAssets int `json:"additionsToFixedAssets"`
|
|
Turnover int `json:"turnover"`
|
|
TotalAssets int `json:"totalAssets"`
|
|
FinancialAssetsAndCashBalance int `json:"financialAssetsAndCashBalance"`
|
|
SupplyFractions []SupplyFraction `json:"supplyFractions"`
|
|
EmployeesFractions []EmployeesFraction `json:"employeesFractions"`
|
|
IndustrySectors []IndustrySector `json:"industrySectors"`
|
|
NumberOfEmployees int `json:"numberOfEmployees"`
|
|
HasCanteen bool `json:"hasCanteen"`
|
|
IsB2B bool `json:"isB2B"`
|
|
AverageJourneyToWorkForStaffInKm float64 `json:"averageJourneyToWorkForStaffInKm"`
|
|
Rating Rating `json:"rating"`
|
|
}
|
|
|
|
type SupplyFraction struct {
|
|
ID int `json:"id,omitempty"`
|
|
IndustryCode string `json:"industryCode"`
|
|
CountryCode string `json:"countryCode"`
|
|
Costs int `json:"costs"`
|
|
}
|
|
|
|
type EmployeesFraction struct {
|
|
ID int `json:"id,omitempty"`
|
|
CountryCode string `json:"countryCode"`
|
|
Percentage float64 `json:"percentage"`
|
|
}
|
|
|
|
type IndustrySector struct {
|
|
ID int `json:"id,omitempty"`
|
|
IndustryCode string `json:"industryCode"`
|
|
AmountOfTotalTurnover int `json:"amountOfTotalTurnover"`
|
|
Description string `json:"description"`
|
|
}
|
|
|
|
type Rating struct {
|
|
Topics []Topic `json:"topics"`
|
|
}
|
|
|
|
type Topic struct {
|
|
Points float64 `json:"points"`
|
|
MaxPoints float64 `json:"maxPoints"`
|
|
ID int `json:"id,omitempty"`
|
|
ShortName string `json:"shortName"`
|
|
Name string `json:"name"`
|
|
Estimations int `json:"estimations"`
|
|
Weight float64 `json:"weight"`
|
|
IsWeightSelectedByUser bool `json:"isWeightSelectedByUser"`
|
|
Aspects []Aspect `json:"aspects"`
|
|
}
|
|
|
|
type Aspect struct {
|
|
Points float64 `json:"points"`
|
|
MaxPoints float64 `json:"maxPoints"`
|
|
ID int `json:"id,omitempty"`
|
|
ShortName string `json:"shortName"`
|
|
Name string `json:"name"`
|
|
Estimations int `json:"estimations"`
|
|
Weight float64 `json:"weight"`
|
|
IsWeightSelectedByUser bool `json:"isWeightSelectedByUser"`
|
|
IsPositive bool `json:"isPositive"`
|
|
}
|
|
|
|
type Matrix struct {
|
|
Topics []MatrixTopic `json:"topics"`
|
|
}
|
|
|
|
type MatrixTopic struct {
|
|
ShortName string `json:"shortName"`
|
|
Name string `json:"name"`
|
|
Points int `json:"points"`
|
|
MaxPoints int `json:"maxPoints"`
|
|
PercentageReached int `json:"percentageReached"`
|
|
NotApplicable bool `json:"notApplicable"`
|
|
}
|