models

package
v0.0.0-...-9d9e716 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusPreliminary = "PRELIMINARY"
	StatusReserve     = "RESERVE"
	StatusSuccess     = "SUCCESS"
	StatusCencel      = "CANCEL"
)

Variables

This section is empty.

Functions

func CheckStatus

func CheckStatus(status_ string) bool

func VehicleToRentLandingVehicle

func VehicleToRentLandingVehicle(from *Vehicle, to *RentLandingVehicle)

Types

type Account

type Account struct {
	ID    int64  `json:"id" gorm:"primarykey"`
	Name  string `json:"name"`
	Token string `json:"token" gorm:"unique, not null"`

	ShtrafovnetAuthToken string `json:"shtrafovnet_auth_token"`
	ShtrafovnetCompanyID int64  `json:"shtrafovnet_company_id"`
	TelegramBotToken     string `json:"telegram_bot_token"`
	TelegramChatID       string `json:"telegram_chat_id"`

	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type AccountToken

type AccountToken string

type AddInvestment

type AddInvestment struct {
	ID             int64      `json:"id" gorm:"primarykey"`
	UID            string     `json:"uid"`
	AccountsID     int64      `json:"accounts_id"`
	Title          string     `json:"title"`
	Type           string     `json:"type"`
	Description    string     `json:"description"`
	Amount         *float64   `json:"amount"`
	DayAmount      *float64   `json:"day_amount"`
	RelationsID    int64      `json:"relations_id"`
	RelationsTable string     `json:"relations_table"`
	Date           time.Time  `json:"date"`
	DateEnd        *time.Time `json:"date_end"`

	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type Bill

type Bill struct {
	Balance           float64 `json:"balance"`
	Deposit           float64 `json:"deposit"`
	DaysOfDelay       uint64  `json:"days_of_delay"`
	DaysOfDelayAmount float64 `json:"days_of_delay_amount"`
	DayPaymentsAmount float64 `json:"day_payments_amount"`
	RentDebitAmount   float64 `json:"rent_debit_amount"`
}

type Fine

type Fine struct {
	ID         int64          `json:"id" gorm:"primarykey"`
	UID        string         `json:"uid"`
	AccountsID int64          `json:"accounts_id"`
	VehiclesID int64          `json:"vehicles_id"`
	CreatedAt  time.Time      `json:"created_at"`
	UpdatedAt  time.Time      `json:"updated_at"`
	DeletedAt  gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`

	Number               string     `json:"number"`
	BillDate             string     `json:"bill_date"`
	Amount               int        `json:"amount"`
	AmountToPay          int        `json:"amount_to_pay"`
	PaymentStatus        string     `json:"payment_status"`
	DiscountDate         string     `json:"discount_date"`
	DiscountSize         int        `json:"discount_size"`
	ReplacedWith         string     `json:"replaced_with"`
	ChangeStatus         string     `json:"change_status"`
	ChangeStatusReason   string     `json:"change_status_reason"`
	ViolationDate        string     `json:"violation_date"`
	ViolatorName         string     `json:"violator_name"`
	Location             string     `json:"location"`
	Coordinates          string     `json:"coordinates"`
	KoapCode             string     `json:"koap_code"`
	KoapText             string     `json:"koap_text"`
	DivisionName         string     `json:"division_name"`
	DivisionCode         string     `json:"division_code"`
	Name                 string     `json:"name"`
	Org                  string     `json:"org"`
	Vin                  string     `json:"vin"`
	Sts                  string     `json:"sts"`
	PayeeUsername        string     `json:"payee_username"`
	PayeeInn             string     `json:"payee_inn"`
	PayeeKpp             string     `json:"payee_kpp"`
	PayeeOktmo           string     `json:"payee_oktmo"`
	PayeeKbk             string     `json:"payee_kbk"`
	PayeeBankName        string     `json:"payee_bank_name"`
	PayeeBankBik         string     `json:"payee_bank_bik"`
	PayeeBankAccount     string     `json:"payee_bank_account"`
	PayeeBankCorrAccount string     `json:"payee_bank_corr_account"`
	ManualPayment        bool       `json:"manual_payment"`
	FsspIP               string     `json:"fssp_ip"`
	FsspUin              string     `json:"fssp_uin"`
	OriginalCreatedAt    time.Time  `json:"original_created_at"`
	OriginalUpdatedAt    time.Time  `json:"original_updated_at"`
	OriginalArchivedAt   *time.Time `json:"original_archived_at"`
	Comment              string     `json:"comment"`
	CommentUpdatedAt     time.Time  `json:"comment_updated_at"`
	PaidAt               time.Time  `json:"paid_at"`
}

type FineFromSite

type FineFromSite struct {
	Number               string   `json:"number"`
	BillDate             string   `json:"bill_date"`
	Amount               float64  `json:"amount"`
	AmountToPay          float64  `json:"amount_to_pay"`
	PaymentStatus        string   `json:"payment_status"`
	DiscountDate         string   `json:"discount_date"`
	DiscountSize         float64  `json:"discount_size"`
	ReplacedWith         string   `json:"replaced_with"`
	ChangeStatus         string   `json:"change_status"`
	ChangeStatusReason   string   `json:"change_status_reason"`
	ViolationDate        string   `json:"violation_date"`
	ViolatorName         string   `json:"violator_name"`
	Location             string   `json:"location"`
	Coordinates          string   `json:"coordinates"`
	KoapCode             string   `json:"koap_code"`
	KoapText             string   `json:"koap_text"`
	DivisionName         string   `json:"division_name"`
	DivisionCode         string   `json:"division_code"`
	Name                 string   `json:"name"`
	Org                  string   `json:"org"`
	PayeeUsername        string   `json:"payee_username"`
	PayeeInn             string   `json:"payee_inn"`
	PayeeKpp             string   `json:"payee_kpp"`
	PayeeOktmo           string   `json:"payee_oktmo"`
	PayeeKbk             string   `json:"payee_kbk"`
	PayeeBankName        string   `json:"payee_bank_name"`
	PayeeBankBik         string   `json:"payee_bank_bik"`
	PayeeBankAccount     string   `json:"payee_bank_account"`
	PayeeBankCorrAccount string   `json:"payee_bank_corr_account"`
	Pics                 []string `json:"pics"`
	Docs                 []struct {
		Type   string `json:"type"`
		Number string `json:"number"`
		IsMain bool   `json:"is_main"`
	} `json:"docs"`
	ManualPayment bool        `json:"manual_payment"`
	FsspIP        string      `json:"fssp_ip"`
	FsspUin       string      `json:"fssp_uin"`
	CreatedAt     time.Time   `json:"created_at"`
	UpdatedAt     time.Time   `json:"updated_at"`
	ArchivedAt    interface{} `json:"archived_at"`
	BestMatchCar  struct {
		ID             int       `json:"id"`
		UnitID         string    `json:"unit_id"`
		Sts            string    `json:"sts"`
		Grz            string    `json:"grz"`
		Name           string    `json:"name"`
		Status         string    `json:"status"`
		InactiveReason string    `json:"inactive_reason"`
		CreatedAt      time.Time `json:"created_at"`
		UpdatedAt      time.Time `json:"updated_at"`
		ArchivedAt     time.Time `json:"archived_at"`
		MkadPass       []struct {
			Number     string    `json:"number"`
			Grz        string    `json:"grz"`
			ValidFrom  time.Time `json:"valid_from"`
			ValidTo    time.Time `json:"valid_to"`
			CancelDate time.Time `json:"cancel_date"`
			Zone       string    `json:"zone"`
			Status     string    `json:"status"`
			Type       string    `json:"type"`
		} `json:"mkad_pass"`
		Vin              string   `json:"vin"`
		RestrictionTypes []string `json:"restriction_types"`
	} `json:"best_match_car"`
	Unit struct {
		ID        string    `json:"id"`
		Name      string    `json:"name"`
		IsDefault bool      `json:"is_default"`
		CreatedAt time.Time `json:"created_at"`
		UpdatedAt time.Time `json:"updated_at"`
	} `json:"unit"`
	Driver struct {
		ID              int       `json:"id"`
		UnitID          string    `json:"unit_id"`
		LicenseNumber   string    `json:"license_number"`
		LicenseIssuedAt time.Time `json:"license_issued_at"`
		Name            string    `json:"name"`
		Status          string    `json:"status"`
		CreatedAt       time.Time `json:"created_at"`
		UpdatedAt       time.Time `json:"updated_at"`
		Restrictions    struct {
			Decisions []struct {
				Date        time.Time `json:"date"`
				FisID       string    `json:"fis_id"`
				BreachPlace string    `json:"breach_place"`
				Comment     string    `json:"comment"`
				RegName     string    `json:"reg_name"`
				State       string    `json:"state"`
				PeriodMonth int       `json:"period_month"`
				RegCode     string    `json:"reg_code"`
			} `json:"decisions"`
			Doc struct {
				Date   time.Time `json:"date"`
				Bdate  time.Time `json:"bdate"`
				Wanted string    `json:"wanted"`
				Reg    string    `json:"reg"`
				Cat    []string  `json:"cat"`
				Num    string    `json:"num"`
				VUch   string    `json:"v_uch"`
				Type   string    `json:"type"`
				Period time.Time `json:"period"`
				Divid  string    `json:"divid"`
				Status string    `json:"status"`
			} `json:"doc"`
			RequestTime time.Time `json:"request_time"`
		} `json:"restrictions"`
	} `json:"driver"`
	Owner struct {
		ID           string    `json:"id"`
		Type         string    `json:"type"`
		Form         string    `json:"form"`
		Status       string    `json:"status"`
		Rawid        string    `json:"rawid"`
		Inn          string    `json:"inn"`
		Kpp          string    `json:"kpp"`
		Name         string    `json:"name"`
		ShortName    string    `json:"short_name"`
		LegalAddress string    `json:"legal_address"`
		CreatedAt    time.Time `json:"created_at"`
		UpdatedAt    time.Time `json:"updated_at"`
	} `json:"owner"`
	RegistryStatus []struct {
		RegistryID      int       `json:"registry_id"`
		PayAmount       float64   `json:"pay_amount"`
		PaymentOrderURL string    `json:"payment_order_url"`
		ItemStatus      string    `json:"item_status"`
		RegistryStatus  string    `json:"registry_status"`
		PaidAt          time.Time `json:"paid_at"`
		CheckedAt       time.Time `json:"checked_at"`
		ConfirmedAt     time.Time `json:"confirmed_at"`
		CreatedAt       time.Time `json:"created_at"`
	} `json:"registry_status"`
	Ckadtx struct {
		ID           string    `json:"id"`
		Grz          string    `json:"grz"`
		Date         time.Time `json:"date"`
		Plaza        string    `json:"plaza"`
		Road         string    `json:"road"`
		Cost         float64   `json:"cost"`
		Status       string    `json:"status"`
		BestMatchCar struct {
			ID             int       `json:"id"`
			UnitID         string    `json:"unit_id"`
			Sts            string    `json:"sts"`
			Grz            string    `json:"grz"`
			Name           string    `json:"name"`
			Status         string    `json:"status"`
			InactiveReason string    `json:"inactive_reason"`
			CreatedAt      time.Time `json:"created_at"`
			UpdatedAt      time.Time `json:"updated_at"`
			ArchivedAt     time.Time `json:"archived_at"`
			MkadPass       []struct {
				Number     string    `json:"number"`
				Grz        string    `json:"grz"`
				ValidFrom  time.Time `json:"valid_from"`
				ValidTo    time.Time `json:"valid_to"`
				CancelDate time.Time `json:"cancel_date"`
				Zone       string    `json:"zone"`
				Status     string    `json:"status"`
				Type       string    `json:"type"`
			} `json:"mkad_pass"`
			Vin              string   `json:"vin"`
			RestrictionTypes []string `json:"restriction_types"`
		} `json:"best_match_car"`
		Unit struct {
			ID        string    `json:"id"`
			Name      string    `json:"name"`
			IsDefault bool      `json:"is_default"`
			CreatedAt time.Time `json:"created_at"`
			UpdatedAt time.Time `json:"updated_at"`
		} `json:"unit"`
		Photo  string    `json:"photo"`
		DueAt  time.Time `json:"due_at"`
		CkadID string    `json:"ckad_id"`
	} `json:"ckadtx"`
	Comment          string    `json:"comment"`
	CommentUpdatedAt time.Time `json:"comment_updated_at"`
	PaidAt           time.Time `json:"paid_at"`
	Ckad             struct {
		GracePeriod string  `json:"grace_period"`
		PayApcrr    float64 `json:"pay_apcrr"`
		URLPayApcrr string  `json:"url_pay_apcrr"`
	} `json:"ckad"`
}

type FinesFilters

type FinesFilters struct {
	VehicleNumber *string `json:"vehicle_number"`
	VehicleUID    *string `json:"vehicle_uid"`
	Search        *string `json:"search"`
}

type FinesFromSite

type FinesFromSite struct {
	Fines []FineFromSite `json:"fines"`
}

type FullSysInfo

type FullSysInfo struct {
	TotalVehicles                 int64            `json:"total_vehicles"`             //Calculated in Vehicles Service
	TotalActiveRansomOrders       int64            `json:"total_active_ransom_orders"` //Calculated in Vehicles Service
	TotalActiveRentOrders         int64            `json:"total_active_rent_orders"`   //Calculated in Vehicles Service
	TotalVehiclesByStatuses       map[string]int64 `json:"total_vehicles_by_statuses"` //Calculated in Vehicles Service
	DebtorsOrdersAmount           int64            `json:"debtors_orders_amount"`
	DebtorsBalance                float64          `json:"debtors_balance"`
	CoverageAmount                float64          `json:"coverage_amount"`
	ResidualFleetAmount           float64          `json:"residual_fleet_amount"`
	PlannedIncomeAmount           float64          `json:"planned_income_amount"` //Calculated in Vehicles Service
	ActualIncomeAmount            float64          `json:"actual_income_amount"`
	RansomBalanceOperationsAmount float64          `json:"ransom_balance_operations_amount"`
	RentBalanceOperationsAmount   float64          `json:"rent_balance_operations_amount"`
	ActiveRansomOrdersUIDs        []string         `json:"active_ransom_orders_uids"`          //Calculated in Vehicles Service
	ActiveRentOrdersUIDs          []string         `json:"active_rent_orders_uids"`            //Calculated in Vehicles Service
	RansomOrdersUIDs              []string         `json:"ransom_orders_uids"`                 //Calculated in Vehicles Service
	RentOrdersUIDs                []string         `json:"rent_orders_uids"`                   //Calculated in Vehicles Service
	SumOfTotalVehicleAmountActive float64          `json:"sum_of_total_vehicle_amount_active"` //Calculated in Vehicles Service
	SumOfTotalVehicleAmount       float64          `json:"sum_of_total_vehicle_amount"`        //Calculated in Vehicles Service
}

type History

type History struct {
	ID            int64          `json:"id" gorm:"primarykey"`
	AccountsID    int64          `json:"accounts_id"`
	SourceTable   string         `json:"source_table" gorm:"index"`
	SourceID      int64          `json:"source_id" gorm:"index"`
	OperationType string         `json:"operation_type"`
	After         datatypes.JSON `json:"after"`
	Before        datatypes.JSON `json:"before"`
	UserID        int64          `json:"user_id"`
	UserData      interface{}    `json:"user_data" gorm:"-"`
	CreatedAt     time.Time      `json:"created_at"`
}

type InputGetListFines

type InputGetListFines struct {
	Page     int          `json:"page"`
	PageSize int          `json:"page_size"`
	OrderBy  string       `json:"order_by"`
	OrderDir string       `json:"order_direction" example:"asc|desc"`
	Filters  FinesFilters `json:"filters"`
}

type Manager

type Manager struct {
	ID           int64                     `json:"id" gorm:"primarykey"`
	UID          string                    `json:"uid"`
	ExtID        int64                     `json:"ext_id"`
	AccountsID   int64                     `json:"accounts_id"`
	FirstName    string                    `json:"first_name"`
	MiddleName   string                    `json:"middle_name"`
	LastName     string                    `json:"last_name"`
	Phone        string                    `json:"phone"`
	Email        string                    `json:"email"`
	Birthday     time.Time                 `json:"birthday"`
	RansomOrders *[]map[string]interface{} `json:"ransom_orders,omitempty" gorm:"-"`
	RentOrders   *[]map[string]interface{} `json:"rent_orders,omitempty" gorm:"-"`
	CreatedAt    time.Time                 `json:"created_at"`
	UpdatedAt    time.Time                 `json:"updated_at"`
	DeletedAt    gorm.DeletedAt            `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type MandatoryPayment

type MandatoryPayment struct {
	ID                 int64     `json:"id" gorm:"primarykey"`
	RansomOrdersID     int64     `json:"ransom_orders_id" gorm:"index"`
	ContractYearStart  time.Time `json:"contract_year_start" gorm:"index"`
	ContractYearEnd    time.Time `json:"contract_year_end"`
	MandatoryAmount    float64   `json:"mandatory_amount"`
	ContributionAmount float64   `json:"contribution_amount"`

	ContributionAmountArray datatypes.JSON `json:"contribution_amount_array"`
}

type MandatoryPaymentOne

type MandatoryPaymentOne struct {
	Date   time.Time `json:"date"`
	Amount float64   `json:"amout"`
}

type Order

type Order struct {
	ID              int64      `json:"id"`
	UID             string     `json:"uid"`
	IsActive        bool       `json:"is_active"`
	Status          string     `json:"status"`
	UserFullName    string     `json:"user_full_name"`
	VehicleFullName string     `json:"vehicle_full_name"`
	UserUID         string     `json:"user_uid"`
	VehicleUID      string     `json:"vehicle_uid"`
	UserPhone       string     `json:"user_phone"`
	RansomTerm      *int       `json:"ransom_term"`
	RansomYearRate  *float64   `json:"ransom_year_rate"`
	DayPayment      float64    `json:"day_payment"`
	DateStart       *time.Time `json:"date_start"`
	DateEnd         *time.Time `json:"date_end"`
	ContractDate    *time.Time `json:"contract_date"`
	ContractDateEnd *time.Time `json:"contract_date_end"`
	Type            string     `json:"type"`
}

type OrdersPeriodSummary

type OrdersPeriodSummary struct {
	//All
	TotalNewAndEndedOrders int64 `json:"total_new_and_ended_orders"`
	TotalEndedOrders       int64 `json:"total_ended_orders"`
	TotalNewOrders         int64 `json:"total_new_orders"`
	//Rent
	TotalNewAndEndedRentOrders int64 `json:"total_new_and_ended_rent_orders"`
	TotalEndedRentOrders       int64 `json:"total_ended_rent_orders"`
	TotalNewRentOrders         int64 `json:"total_new_rent_orders"`
	//Ransom
	TotalNewAndEndedRansomOrders int64 `json:"total_new_and_ended_ransom_orders"`
	TotalEndedRansomOrders       int64 `json:"total_ended_ransom_orders"`
	TotalNewRansomOrders         int64 `json:"total_new_ransom_orders"`
	//Sums
	RentCashSummary   PeriodCashSummary `json:"rent_cash_summary"`
	RansomCashSummary PeriodCashSummary `json:"ransom_cash_summary"`
	TotalCashSummary  PeriodCashSummary `json:"total_cash_summary"`
}

type PaginationOrder

type PaginationOrder struct {
	Page       int      `json:"page"`
	Items      *[]Order `json:"items"`
	TotalItems int64    `json:"total_items"`
	TotalPages int      `json:"total_pages"`
}

type PaginationRansomOrder

type PaginationRansomOrder struct {
	Page       int            `json:"page"`
	Items      *[]RansomOrder `json:"items"`
	TotalItems int64          `json:"total_items"`
	TotalPages int            `json:"total_pages"`
}

type PaginationRentOrder

type PaginationRentOrder struct {
	Page       int          `json:"page"`
	Items      *[]RentOrder `json:"items"`
	TotalItems int64        `json:"total_items"`
	TotalPages int          `json:"total_pages"`
}

type PeriodCashSummary

type PeriodCashSummary struct {
	BalanceReplenishment float64 `json:"balance_replenishment"` //Opertaions Category 10
	MonthlyPayments      float64 `json:"monthly_payments"`      //Opertaions Category 8
	Delta                float64 `json:"delta"`                 //Opertaions Category 8 - Opertaions Category 10
	TotalRepairAmount    float64 `json:"total_repair_amount"`   //Opertaions Category 21
}

type RansomOrder

type RansomOrder struct {
	ID                          int64          `json:"id" gorm:"primarykey"`
	UID                         string         `json:"uid"`
	ExtID                       int64          `json:"ext_id"`
	AccountsID                  int64          `json:"accounts_id"`
	ManagersID                  int64          `json:"managers_id"`
	UsersID                     int64          `json:"users_id"`
	VehiclesID                  int64          `json:"vehicles_id"`
	TariffsID                   int64          `json:"tariffs_id"`
	ContractDate                time.Time      `json:"contract_date"`
	ContractDateEnd             *time.Time     `json:"contract_date_end"`
	ContractDateEndDescription  *string        `json:"contract_date_end_description"`
	Status                      string         `json:"status"  default:"PRELIMINARY" example:"PRELIMINARY/RESERVE/SUCCESS/CANCEL"`
	IsActive                    bool           `json:"is_active"`
	IsMandatoryPaymentsIncluded bool           `json:"is_mandatory_payments_included"`
	IsInitialPay                bool           `json:"is_initial_pay"`
	WriteOffPriority            datatypes.JSON `json:"write_off_priority"`
	DepositPayout               float64        `json:"deposit_payout"`
	DKPAmount                   float64        `json:"dkp_amount"`
	AdditionalEquipment         float64        `json:"additional_equipment"`
	DayPayment                  float64        `json:"day_payment"`
	RansomTariff                *RansomTariff  `json:"ransom_tariffs,omitempty" gorm:"-"`
	User                        *User          `json:"user,omitempty" gorm:"-"`
	Manager                     *Manager       `json:"manager,omitempty" gorm:"-"`
	Vehicle                     *Vehicle       `json:"vehicle,omitempty" gorm:"-"`
	UserFullName                *string        `json:"user_full_name,omitempty" gorm:"-"`
	VehicleFullName             *string        `json:"vehicle_full_name,omitempty" gorm:"-"`
	UserUID                     *string        `json:"user_uid,omitempty" gorm:"-"`
	VehicleUID                  *string        `json:"vehicle_uid,omitempty" gorm:"-"`
	LastPayment                 *interface{}   `json:"last_payment,omitempty" gorm:"-"`
	Bill                        *Bill          `json:"bill,omitempty" gorm:"-"`
	CreatedAt                   time.Time      `json:"created_at"`
	UpdatedAt                   time.Time      `json:"updated_at"`
	DeletedAt                   gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type RansomOrderFromSearch

type RansomOrderFromSearch struct {
	RansomOrderID       int64   `json:"ransom_order_id"`
	RansomOrderUID      string  `json:"ransom_order_uid"`
	RansomUsersID       int64   `json:"ransom_users_id"`
	RansomUsersUID      string  `json:"ransom_users_uid"`
	VehiclesUID         string  `json:"vehicles_uid"`
	VehiclesNumber      string  `json:"vehicles_number"`
	RansomUsersPhone    string  `json:"ransom_users_phone"`
	RansomUsersFullname string  `json:"ransom_users_fullname"`
	VehiclesFullname    string  `json:"vehicles_fullname"`
	DayPayment          float64 `json:"day_payment"`

	Term          int     `json:"term"`
	YearRate      float64 `json:"year_rate"`
	InsuranceRate int     `json:"insurance_rate"`
	MonthPayment  float64 `json:"month_payment"`
	InitialFee    int     `json:"initial_fee"`
	VehicleAmount float64 `json:"vehicle_amount"`

	YearMandatoryAmount       float64 `json:"year_mandatory_amount"`
	YearMandatoryPayoutAmount float64 `json:"year_mandatory_payout_amount"`

	ExtID                       int64          `json:"ext_id"`
	AccountsID                  int64          `json:"accounts_id"`
	ManagersID                  int64          `json:"managers_id"`
	UsersID                     int64          `json:"users_id"`
	VehiclesID                  int64          `json:"vehicles_id"`
	TariffsID                   int64          `json:"tariffs_id"`
	ContractDate                time.Time      `json:"contract_date"`
	ContractEndAt               *time.Time     `json:"contract_end_at"`
	ContractEndDescription      *string        `json:"contract_end_description"`
	Status                      string         `json:"status" example:"PRELIMINARY/RESERVE/SUCCESS/CANCEL"`
	IsActive                    bool           `json:"is_active"`
	IsMandatoryPaymentsIncluded bool           `json:"is_mandatory_payments_included"`
	IsInitialPay                bool           `json:"is_initial_pay"`
	WriteOffPriority            datatypes.JSON `json:"write_off_priority"`
	DepositPayout               float64        `json:"deposit_payout"`
	DKPAmount                   float64        `json:"dkp_amount"`
	AdditionalEquipment         float64        `json:"additional_equipment"`
	LastPayment                 *interface{}   `json:"last_payment"`
	Bill                        *Bill          `json:"bill"`
	CreatedAt                   time.Time      `json:"created_at"`
	UpdatedAt                   time.Time      `json:"updated_at"`
	DeletedAt                   gorm.DeletedAt `json:"deleted_at" swaggertype:"string"`
}

type RansomTariff

type RansomTariff struct {
	ID                                 int64          `json:"id" gorm:"primarykey"`
	UID                                string         `json:"uid"`
	ExtID                              int64          `json:"ext_id"`
	AccountsID                         int64          `json:"accounts_id"`
	VehiclesID                         int64          `json:"vehicles_id"`
	InitialFee                         int            `json:"initial_fee"`
	VehicleAmount                      float64        `json:"vehicle_amount"`
	TrackerAmount                      float64        `json:"tracker_amount"`
	TrackerServiceAmount               float64        `json:"tracker_service_amount"`
	SourceTrackerMonthAmount           float64        `json:"source_tracker_month_amount"`
	VehicleTaxAmount                   float64        `json:"vehicle_tax_amount"`
	RegistrationAmount                 float64        `json:"regisration_amount"`
	InsuranceOsagoAmount               float64        `json:"insurance_osago_amount"`
	Term                               int            `json:"term"`
	YearRate                           float64        `json:"year_rate"`
	InsuranceRate                      int            `json:"insurance_rate"`
	MonthPayment                       float64        `json:"month_payment"`
	DayPayment                         float64        `json:"day_payment"`
	TotalVehicleAmount                 float64        `json:"total_vehicle_amount"`
	TotalVehicleWithoutInsuranceAmount float64        `json:"total_vehicle_without_insurance_amount"`
	Vehicle                            *Vehicle       `json:"vehicle,omitempty" gorm:"-"`
	CreatedAt                          time.Time      `json:"created_at"`
	UpdatedAt                          time.Time      `json:"updated_at"`
	DeletedAt                          gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type Reminder

type Reminder struct {
	ID         int64     `json:"id"`
	Date       time.Time `json:"date"`
	Text       string    `json:"text"`
	VehiclesID int64     `json:"vehicles_id"`
	AccountsID int64     `json:"accounts_id"`
	Closed     bool      `json:"closed"`
}

type RentLandingVehicle

type RentLandingVehicle struct {
	ID                 int64  `json:"id"`
	VehiclesServiceUid string `json:"vehiclesServiceUid"`
	Mark               string `json:"mark"`
	Model              string `json:"model"`
	Year               int    `json:"year"`
	Color              string `json:"color"`
	Transmission       string `json:"transmission"`
	Engine             int    `json:"engine"`
	Drive              string `json:"drive"`

	Volume   int `json:"volume"`
	Rent     int `json:"rent"`
	DayPrice int `json:"dayPrice"`
}

type RentOrder

type RentOrder struct {
	ID                   int64          `json:"id" gorm:"primarykey"`
	UID                  string         `json:"uid"`
	ExtID                int64          `json:"ext_id"`
	AccountsID           int64          `json:"accounts_id"`
	UsersID              int64          `json:"users_id"`
	ManagersID           int64          `json:"managers_id"`
	VehiclesID           int64          `json:"vehicles_id"`
	TariffsID            int64          `json:"tariffs_id"`
	DateStart            time.Time      `json:"date_start"`
	DateEnd              time.Time      `json:"date_end"`
	DateEndDescription   *string        `json:"date_end_description"`
	ReasonForTerminating *string        `json:"reason_for_terminating"`
	Status               string         `json:"status"  default:"PRELIMINARY" example:"PRELIMINARY|RESERVE|SUCCESS|CANCEL"`
	IsActive             bool           `json:"is_active"`
	DepositPayout        float64        `json:"deposit_payout"`
	RentTariff           *RentTariff    `json:"rent_tariff,omitempty" gorm:"-"`
	User                 *User          `json:"user,omitempty" gorm:"-"`
	Manager              *Manager       `json:"manager,omitempty" gorm:"-"`
	Vehicle              *Vehicle       `json:"vehicle,omitempty" gorm:"-"`
	UserFullName         *string        `json:"user_full_name,omitempty" gorm:"-"`
	VehicleFullName      *string        `json:"vehicle_full_name,omitempty" gorm:"-"`
	UserUID              *string        `json:"user_uid,omitempty" gorm:"-"`
	VehicleUID           *string        `json:"vehicle_uid,omitempty" gorm:"-"`
	Bill                 *Bill          `json:"bill,omitempty" gorm:"-"`
	LastPayment          *interface{}   `json:"last_payment,omitempty" gorm:"-"`
	CreatedAt            time.Time      `json:"created_at"`
	UpdatedAt            time.Time      `json:"updated_at"`
	DeletedAt            gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type RentTariff

type RentTariff struct {
	ID         int64          `json:"id" gorm:"primarykey"`
	UID        string         `json:"uid"`
	ExtID      int64          `json:"ext_id"`
	AccountsID int64          `json:"accounts_id"`
	VehiclesID int64          `json:"vehicles_id"`
	FromDays   int            `json:"from_days"`
	ToDays     int            `json:"to_days"`
	DayPayment float64        `json:"day_payment"`
	Vehicle    *Vehicle       `json:"vehicle,omitempty" gorm:"-"`
	CreatedAt  time.Time      `json:"created_at"`
	UpdatedAt  time.Time      `json:"updated_at"`
	DeletedAt  gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

type SysInfoByDate

type SysInfoByDate struct {
	TotalCreatedVehicles       int64            `json:"total_created_vehiles"`
	TotalCompletedRansomOrders int64            `json:"total_completed_ransom_orders"`
	TotalCompletedRentOrders   int64            `json:"total_completed_rent_orders"`
	TotalVehiclesStatuses      map[string]int64 `json:"total_vehicles_statuses"`
	TotalNewAndCompletedOrders int64            `json:"total_new_and_completed_orders"`
}

type User

type User struct {
	ID                   int64          `json:"id" gorm:"primarykey"`
	UID                  string         `json:"uid"`
	ExtID                int64          `json:"ext_id"`
	AccountsID           int64          `json:"accounts_id"`
	FirstName            string         `json:"first_name"`
	LastName             string         `json:"last_name"`
	MiddleName           string         `json:"middle_name"`
	Phone                string         `json:"phone" gorm:"index"`
	FirebaseUID          string         `json:"firebase_uid"`
	Firebase             datatypes.JSON `json:"firebase" swaggertype:"string"`
	PartnerType          string         `json:"partner_type" default:"PHYSICAL"`
	PassportNumber       string         `json:"passport_number"`
	PassportSeries       string         `json:"passport_series"`
	PassportIssuedBy     string         `json:"passport_issued_by"`
	PassportDateOfIssue  time.Time      `json:"passport_date_of_issue"`
	PassportPlaceOfIssue string         `json:"passport_place_of_issue"`
	Birthday             time.Time      `json:"birthday"`
	Email                string         `json:"email"`
	ContactPerson        string         `json:"contact_person"`
	Comment              string         `json:"comment"`
	AddressOfLiving      string         `json:"address_of_living"`
	LegalAddress         string         `json:"legal_address"`
	INN                  string         `json:"inn"`
	OGRN                 string         `json:"ogrn"`
	Bank                 string         `json:"bank"`
	BIK                  string         `json:"bik"`
	KPP                  string         `json:"kpp"`
	CheckingBill         string         `json:"checking_bill"`
	CorrespondentBill    string         `json:"correspondent_bill"`

	RentOrders   *[]RentOrder   `json:"rent_orders,omitempty" gorm:"-"`
	RansomOrders *[]RansomOrder `json:"ransom_orders,omitempty" gorm:"-"`
	Bill         *Bill          `json:"bill,omitempty" gorm:"-"`
	LastPayment  *interface{}   `json:"last_payment,omitempty" gorm:"-"`

	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

func (*User) AfterSave

func (u *User) AfterSave(tx *gorm.DB) (err error)

type Vehicle

type Vehicle struct {
	ID                    int64           `json:"id" gorm:"primarykey"`
	UID                   string          `json:"uid"`
	ExtID                 int64           `json:"ext_id"`
	OtherExtIDs           pq.Int64Array   `json:"other_ext_ids" gorm:"type:integer[]" swaggertype:"array,integer"`
	AccountsID            int64           `json:"accounts_id"`
	Number                string          `json:"number"`
	Mark                  string          `json:"mark"`
	Model                 string          `json:"model"`
	Type                  string          `json:"type"`
	Sts                   string          `json:"sts"`
	Win                   string          `json:"win"`
	Width                 *int            `json:"widht"`
	Height                *int            `json:"height"`
	Depth                 *int            `json:"depth"`
	Capacity              *float32        `json:"capacity"`
	FuelTank              *int            `json:"fuel_tank"`
	SummerRate            *float32        `json:"summer_rate"`
	WinterRate            *float32        `json:"winter_rate"`
	Ransom                bool            `json:"ransom"`
	Description           string          `json:"description"`
	Bodywork              string          `json:"bodywork"`                           // Кузов
	Color                 string          `json:"color"`                              // Цвет
	CustomFields          datatypes.JSON  `json:"custom_fields" swaggertype:"string"` // Свободные поля
	Drive                 string          `json:"drive"`                              // Привод
	Engine                string          `json:"engine"`                             // Двигатель
	Kpp                   string          `json:"kpp"`                                // Коробка передач
	Owner                 string          `json:"owner"`                              // Владелец
	RentUsersID           *int            `json:"rent_users_id"`                      // Идентификатор арендатора
	Salon                 string          `json:"salon"`                              // Салон
	Year                  string          `json:"year"`                               // Год выпуска
	DefaultRansomTariffID *int64          `json:"default_ransom_tariff_id"`           // Тариф на рассрочку по умолчанию
	Status                string          `json:"status" gorm:"default:FREE"`         // Статус
	DateOsagoStart        *time.Time      `json:"date_osago_start"`                   // Дата начала ОСАГО
	DateOsagoEnd          *time.Time      `json:"date_osago_end"`                     // Дата окончания ОСАГО
	BuyDate               *time.Time      `json:"buy_date"`                           // Дата покупки
	BuyAmount             *float64        `json:"buy_amount"`                         // Цена покупки
	RegistrationDate      *time.Time      `json:"registration_date"`                  // Дата постановки на учет
	TrackerInstallDate    *time.Time      `json:"tracker_install_date"`               // Дата установки трекера
	TrackerNumber         string          `json:"tracker_number"`                     // Номер трекера
	LighthouseNumber      string          `json:"lighthouse_number"`                  // Номер маяка
	DKPAmount             float64         `json:"dkp_amount"`
	RentOrder             *RentOrder      `json:"rent_order,omitempty" gorm:"-"`
	RansomOrder           *RansomOrder    `json:"ransom_order,omitempty" gorm:"-"`
	RentOrders            *[]RentOrder    `json:"rent_orders,omitempty" gorm:"-"`
	RansomOrders          *[]RansomOrder  `json:"ransom_orders,omitempty" gorm:"-"`
	RentTariffs           *[]RentTariff   `json:"rent_tariffs,omitempty" gorm:"-"`
	RansomTariffs         *[]RansomTariff `json:"ransom_tariffs,omitempty" gorm:"-"`
	Bill                  *Bill           `json:"bill,omitempty" gorm:"-"`
	LastPayment           *interface{}    `json:"last_payment,omitempty" gorm:"-"`
	RemindersCount        *int64          `json:"reminders_count,omitempty" gorm:"-"`
	AvatarUri             string          `json:"avatar_uri"`
	DkpEnterFiles         datatypes.JSON  `json:"dkp_enter_files" swaggertype:"string"`
	StsFiles              datatypes.JSON  `json:"sts_files" swaggertype:"string"`
	OsagoFiles            datatypes.JSON  `json:"osago_files" swaggertype:"string"`
	DutyFiles             datatypes.JSON  `json:"duty_files" swaggertype:"string"`
	ContractsFiles        datatypes.JSON  `json:"contracts_files" swaggertype:"string"`
	OtherFiles            datatypes.JSON  `json:"other_files" swaggertype:"string"`
	ImagesFiles           datatypes.JSON  `json:"images_files" swaggertype:"string"`

	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"index" swaggertype:"string"`
}

func (*Vehicle) AfterCreate

func (v *Vehicle) AfterCreate(tx *gorm.DB) (err error)

type VehicleAnalytics

type VehicleAnalytics struct {
	VehiclesID                                   int64   `json:"vehicles_id"`
	BuyDate                                      string  `json:"buy_date"` //- находим операцию с категорией ext_id = 14 и берем date операции
	VehiclesMark                                 string  `json:"vehicles_mark"`
	VehiclesModel                                string  `json:"vehicles_model"`
	VehiclesVin                                  string  `json:"vehicles_vin"`
	VehiclesNumber                               string  `json:"vehicles_number"`
	VehiclesSts                                  string  `json:"vehicles_sts"`
	VehiclesOwner                                string  `json:"vehicles_owner"`
	VehicleAmount                                float64 `json:"vehicle_amount"`                      // - находим операции с категорией ext_id = 14 и берем amount операции
	Users                                        *[]User `json:"users"`                               //- все пользователи в договорах которого участвовала машина
	AllVehicleAmount                             float64 `json:"all_vehicle_amount"`                  // - total_vehicle_amount из тарифа ransom is_active = true
	Deposit                                      float64 `json:"deposit"`                             //- все операции по машине в deposit = true
	VehicleAmountForUser                         float64 `json:"vehicle_amount_for_user"`             //- vehicle_amount из тарифа ransom is_active = true
	DaysCount                                    uint64  `json:"days_count"`                          //- количество дней по операциям с категорией ext_id = 8
	DayPaymentAmount                             float64 `json:"day_payment_amount"`                  //- day_payment из тарифа ransom is_active = true умножаем на X 30.4167
	Result                                       float64 `json:"result"`                              //- (сумма всех операций в категориях ext_id IN (10,48,57) AND parent_id{ext_id} IN (49,54,58)) минус (сумма всех операций в категориях ext_id IN (14,16,17,20,21) AND parent_id{ext_id} IN (15,19,23)
	MetaVehicleAmount                            float64 `json:"meta_vehicle_amount"`                 //- current.vehicleAmount + current.repairCreditAmount + current.otherCreditAmount
	VehicleAmountWithoutInititalFee              float64 `json:"vehicle_amount_without_initital_fee"` //- берем тариф ransom is_active = true (vehicle_amount - initial_fee)
	YearKoeff                                    float64 `json:"year_koeff"`
	RansTariffTotalVehicleWithoutInsuranceAmount float64 `json:"rans_tariff_total_vehicle_without_insurance_amount"`
	RansTariffInsuranceRate                      int64   `json:"rans_tariff_insurance_rate"`
	MonthPaymentAmount                           float64 `json:"month_payment_amount"`
	DayPaymentsVehicleAmount                     float64 `json:"day_payments_vehicle_amount"` //-
	//const yearKoeff = ransom_tariff.term / 12
	//const termDays = yearKoeff X 365
	//return (current.vehicle_amount_without_initital_fee / termDays) X current.days_count
	DayPaymentsMetaVehicleAmount  float64 `json:"day_payments_meta_vehicle_amount"`  //- (current.meta_vehicle_amount / termDays) X current.days_count
	MandatoryPaymentAmount        float64 `json:"mandatory_payment_amount"`          // - (ransom_tariff.tracker_service_amount X ransom_tariff.term) + (ransom_tariff.tracker_amount) + (ransom_tariff.vehicle_tax_amount X yearKoeff) + (ransom_tariff.registration_amount) + (ransom_tariff.insurance_osago_amount X yearKoeff)
	DayPaymentsMandatoryAmount    float64 `json:"day_payments_mandatory_amount"`     // - (current.mandatory_payment_amount / termDays) X current.days_count
	InvestAmount                  float64 `json:"invest_amount"`                     // - (ransom_tariff.vehicle_amount) + (ransom_tariff.tracker_service_amount X ransom_tariff.term) + (ransom_tariff.vehicle_tax_amoun X yearKoeff) + (ransom_tariff.registration_amount) + (ransom_tariff.tracker_amount) + (ransom_tariff.insurance_osago_amount X yearKoeff)
	DayPaymentsCoverageAmount     float64 `json:"day_payments_coverage_amount"`      // - ((ransom_tariff.total_vehicle_without_insurance_amount - current.invest_amount) / termDays) X current.days_count
	SecurityDepositAmount         float64 `json:"security_deposit_amount"`           // - ((ransom_tariff.total_vehicle_without_insurance_amount  X (ransom_tariff.insurance_amount / 100)) / termDays) X current.days_count
	DayPaymentsMarginIncomeAmount float64 `json:"day_payments_margin_income_amount"` // - ((tariff.vehicle_amount - current.meta_vehicle_amount) / termDays) * current.days_count

	TrackerInstallAmount           float64 `json:"tracker_install_amount"`            //[16]
	TrackerMonthAmount             float64 `json:"tracker_month_amount"`              //[17]
	RegistrationAmount             float64 `json:"registration_amount"`               // [20],
	RepairCreditAmount             float64 `json:"repair_credit_amount"`              // [21],
	OtherCreditAmount              float64 `json:"other_credit_amount"`               // [23],
	VehicleTaxAmount               float64 `json:"vehicle_tax_amount"`                // [19],
	TotalCreditAmount              float64 `json:"total_credit_amount"`               // [14, 16, 17, 20, 21], // = 14 ~ 2000, 17 ~ 1000 = 3000
	RentDebitAmount                float64 `json:"rent_debit_amount"`                 // [10],
	InitialPaymentAmount           float64 `json:"initial_payment_amount"`            // [48],
	CategoryMandatoryPaymentAmount float64 `json:"category_mandatory_payment_amount"` // [49],
	RepairDebitAmount              float64 `json:"repair_debit_amount"`               // [57],
	TotalDebitAmount               float64 `json:"total_debit_amount"`                // [10, 48, 57],
	DayPaymentsAmount              float64 `json:"day_payments_amount"`               // [8],

	//CATEGORIES_PARENTS_IDS
	ParentsOsagoAndDkAmount       float64 `json:"parents_osago_and_dk_amount"`      // [15],
	ParentsTotalCreditAmount      float64 `json:"parents_total_credit_amount"`      // [15, 19, 23], // = 15 ~ 200, 23 ~ 3000 = 3200
	ParentsMandatoryPaymentAmount float64 `json:"parents_mandatory_payment_amount"` // [49, 54],
	ParentsOtherDebitAmount       float64 `json:"parents_other_debit_amount"`       // [58],
	ParentsTotalDebitAmount       float64 `json:"parents_total_debit_amount"`       // [49, 54, 58],

	OrdersUIDs *[]string `json:"orders_uids"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL