Files
excelConverter/pkg/ecalc/ecalc.go
Andreas Schröpfer 72eb5c74d8 ecg matrix as output
2021-03-02 19:32:25 +01:00

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 int `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 int `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"`
}