/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2023 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using System;
using System.Linq;
using Python.Runtime;
using Newtonsoft.Json;
using System.Collections.Generic;
using QuantConnect.Data.UniverseSelection;
namespace QuantConnect.Data.Fundamental
{
///
/// Definition of the CompanyProfile class
///
public class CompanyProfile : FundamentalTimeDependentProperty
{
///
/// The headquarter address as given in the latest report
///
///
/// Morningstar DataId: 2100
///
[JsonProperty("2100")]
public string HeadquarterAddressLine1 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterAddressLine1);
///
/// The headquarter address as given in the latest report
///
///
/// Morningstar DataId: 2101
///
[JsonProperty("2101")]
public string HeadquarterAddressLine2 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterAddressLine2);
///
/// The headquarter address as given in the latest report
///
///
/// Morningstar DataId: 2102
///
[JsonProperty("2102")]
public string HeadquarterAddressLine3 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterAddressLine3);
///
/// The headquarter address as given in the latest report
///
///
/// Morningstar DataId: 2103
///
[JsonProperty("2103")]
public string HeadquarterAddressLine4 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterAddressLine4);
///
/// The headquarter address as given in the latest report
///
///
/// Morningstar DataId: 2104
///
[JsonProperty("2104")]
public string HeadquarterAddressLine5 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterAddressLine5);
///
/// The headquarter city as given in the latest report
///
///
/// Morningstar DataId: 2105
///
[JsonProperty("2105")]
public string HeadquarterCity => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterCity);
///
/// The headquarter state or province as given in the latest report
///
///
/// Morningstar DataId: 2106
///
[JsonProperty("2106")]
public string HeadquarterProvince => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterProvince);
///
/// The headquarter country as given in the latest report
///
///
/// Morningstar DataId: 2107
///
[JsonProperty("2107")]
public string HeadquarterCountry => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterCountry);
///
/// The headquarter postal code as given in the latest report
///
///
/// Morningstar DataId: 2108
///
[JsonProperty("2108")]
public string HeadquarterPostalCode => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterPostalCode);
///
/// The headquarter phone number as given in the latest report
///
///
/// Morningstar DataId: 2109
///
[JsonProperty("2109")]
public string HeadquarterPhone => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterPhone);
///
/// The headquarter fax number as given in the latest report
///
///
/// Morningstar DataId: 2110
///
[JsonProperty("2110")]
public string HeadquarterFax => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterFax);
///
/// The headquarters' website address as given in the latest report
///
///
/// Morningstar DataId: 2111
///
[JsonProperty("2111")]
public string HeadquarterHomepage => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_HeadquarterHomepage);
///
/// The number of employees as indicated on the latest Annual Report, 10-K filing, Form 20-F or equivalent report indicating the employee count at the end of latest fiscal year.
///
///
/// Morningstar DataId: 2113
///
[JsonProperty("2113")]
public int TotalEmployeeNumber => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_TotalEmployeeNumber);
///
/// Company's contact email address
///
///
/// Morningstar DataId: 2114
///
[JsonProperty("2114")]
public string ContactEmail => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_ContactEmail);
///
/// Average number of employees from Annual Report
///
///
/// Morningstar DataId: 2115
///
[JsonProperty("2115")]
public int AverageEmployeeNumber => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_AverageEmployeeNumber);
///
/// Details for registered office contact information including address full details, phone and
///
///
/// Morningstar DataId: 2116
///
[JsonProperty("2116")]
public string RegisteredAddressLine1 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredAddressLine1);
///
/// Address for registered office
///
///
/// Morningstar DataId: 2117
///
[JsonProperty("2117")]
public string RegisteredAddressLine2 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredAddressLine2);
///
/// Address for registered office
///
///
/// Morningstar DataId: 2118
///
[JsonProperty("2118")]
public string RegisteredAddressLine3 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredAddressLine3);
///
/// Address for registered office
///
///
/// Morningstar DataId: 2119
///
[JsonProperty("2119")]
public string RegisteredAddressLine4 => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredAddressLine4);
///
/// City for registered office
///
///
/// Morningstar DataId: 2120
///
[JsonProperty("2120")]
public string RegisteredCity => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredCity);
///
/// Province for registered office
///
///
/// Morningstar DataId: 2121
///
[JsonProperty("2121")]
public string RegisteredProvince => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredProvince);
///
/// Country for registered office
///
///
/// Morningstar DataId: 2122
///
[JsonProperty("2122")]
public string RegisteredCountry => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredCountry);
///
/// Postal Code for registered office
///
///
/// Morningstar DataId: 2123
///
[JsonProperty("2123")]
public string RegisteredPostalCode => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredPostalCode);
///
/// Phone number for registered office
///
///
/// Morningstar DataId: 2124
///
[JsonProperty("2124")]
public string RegisteredPhone => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredPhone);
///
/// Fax number for registered office
///
///
/// Morningstar DataId: 2125
///
[JsonProperty("2125")]
public string RegisteredFax => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_RegisteredFax);
///
/// Flag to denote whether head and registered offices are the same
///
///
/// Morningstar DataId: 2126
///
[JsonProperty("2126")]
public bool IsHeadOfficeSameWithRegisteredOfficeFlag => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_IsHeadOfficeSameWithRegisteredOfficeFlag);
///
/// The latest total shares outstanding reported by the company; most common source of this information is from the cover of the 10K, 10Q, or 20F filing. This figure is an aggregated shares outstanding number for a company. It can be used to calculate the most accurate market cap, based on each individual share's trading price and the total aggregated shares outstanding figure.
///
///
/// Morningstar DataId: 40000
///
[JsonProperty("40000")]
public long SharesOutstanding => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_SharesOutstanding);
///
/// Price * Total SharesOutstanding. The most current market cap for example, would be the most recent closing price x the most recent reported shares outstanding. For ADR share classes, market cap is price * (ordinary shares outstanding / adr ratio).
///
///
/// Morningstar DataId: 40001
///
[JsonProperty("40001")]
public long MarketCap => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_MarketCap);
///
/// This number tells you what cash return you would get if you bought the entire company, including its debt. Enterprise Value = Market Cap + Preferred stock + Long-Term Debt And Capital Lease + Short Term Debt And Capital Lease + Securities Sold But Not Yet Repurchased - Cash, Cash Equivalent And Market Securities - Securities Purchased with Agreement to Resell - Securities Borrowed.
///
///
/// Morningstar DataId: 40002
///
[JsonProperty("40002")]
public long EnterpriseValue => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_EnterpriseValue);
///
/// The latest shares outstanding reported by the company of a particular share class; most common source of this information is from the cover of the 10K, 10Q, or 20F filing. This figure is an aggregated shares outstanding number for a particular share class of the company.
///
///
/// Morningstar DataId: 40003
///
[JsonProperty("40003")]
public long ShareClassLevelSharesOutstanding => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_ShareClassLevelSharesOutstanding);
///
/// Total shares outstanding reported by the company as of the balance sheet period ended date. The most common source of this information is from the 10K, 10Q, or 20F filing. This figure is an aggregated shares outstanding number for a company.
///
///
/// Morningstar DataId: 40007
///
[JsonProperty("40007")]
public long SharesOutstandingWithBalanceSheetEndingDate => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_SharesOutstandingWithBalanceSheetEndingDate);
///
/// The reason for the change in a company's total shares outstanding from the previous record. Examples could be share issuances or share buy-back. This field will only be populated when total shares outstanding is collected from a press release.
///
///
/// Morningstar DataId: 40010
///
[JsonProperty("40010")]
public string ReasonofSharesChange => FundamentalService.Get(_timeProvider.GetUtcNow(), _securityIdentifier, FundamentalProperty.CompanyProfile_ReasonofSharesChange);
///
/// Creates a new instance for the given time and security
///
public CompanyProfile(ITimeProvider timeProvider, SecurityIdentifier securityIdentifier)
: base(timeProvider, securityIdentifier)
{
}
///
/// Clones this instance
///
public override FundamentalTimeDependentProperty Clone(ITimeProvider timeProvider)
{
return new CompanyProfile(timeProvider, _securityIdentifier);
}
}
}