{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/shareworks/main/json-schema/CompanyCrudRequest.json",
  "title": "Company Body",
  "required": [
    "companyName"
  ],
  "type": "object",
  "properties": {
    "companyName": {
      "type": "string",
      "description": "Name for the company"
    },
    "phone": {
      "type": "string",
      "description": "Primary phone number for the company"
    },
    "fiscalYearEnd": {
      "type": "string",
      "description": "Fiscal year end for the company",
      "format": "date"
    },
    "initialNumberOfAuthorizedShares": {
      "type": "number",
      "description": "Number of shares used when creating the initial stock filing during company setup (if not provided, placeholder quantity of zero is used)",
      "format": "double"
    },
    "numberOfSharesWithVestingAllocatedToFounders": {
      "type": "number",
      "description": "Number of shares from the initial authorized shares that are allocated to the default vesting plan",
      "format": "double"
    },
    "parValue": {
      "type": "number",
      "description": "Par value used when creating the initial stock filing during company setup (if not provided, default value of 0.001 is used)",
      "format": "double"
    },
    "stateOfIncorporation": {
      "type": "string",
      "description": "The state of incorporation for the company, if it is U.S.-based",
      "enum": [
        "CA_AB",
        "CA_BC",
        "CA_MB",
        "CA_NB",
        "CA_NL",
        "CA_NS",
        "CA_NT",
        "CA_NU",
        "CA_ON",
        "CA_PE",
        "CA_QC",
        "CA_SK",
        "CA_YT",
        "US_AK",
        "US_AL",
        "US_AR",
        "US_AZ",
        "US_CA",
        "US_CO",
        "US_CT",
        "US_DC",
        "US_DE",
        "US_FL",
        "US_GA",
        "US_HI",
        "US_IA",
        "US_ID",
        "US_IL",
        "US_IN",
        "US_KS",
        "US_KY",
        "US_LA",
        "US_MA",
        "US_MD",
        "US_ME",
        "US_MI",
        "US_MN",
        "US_MO",
        "US_MS",
        "US_MT",
        "US_NC",
        "US_ND",
        "US_NE",
        "US_NH",
        "US_NJ",
        "US_NM",
        "US_NV",
        "US_NY",
        "US_OH",
        "US_OK",
        "US_OR",
        "US_PA",
        "US_RI",
        "US_SC",
        "US_SD",
        "US_TN",
        "US_TX",
        "US_UT",
        "US_VA",
        "US_VT",
        "US_WA",
        "US_WI",
        "US_WV",
        "US_WY",
        "US_AA",
        "US_AE",
        "US_AP",
        "AS",
        "GU",
        "MP",
        "PR",
        "VI",
        "AU_ACT",
        "AU_NSW",
        "AU_NT",
        "AU_QLD",
        "AU_SA",
        "AU_TAS",
        "AU_VIC",
        "AU_WA",
        "DE_BW",
        "DE_BY",
        "DE_BE",
        "DE_BB",
        "DE_HB",
        "DE_HH",
        "DE_HE",
        "DE_MV",
        "DE_NI",
        "DE_NW",
        "DE_RP",
        "DE_SL",
        "DE_SN",
        "DE_ST",
        "DE_SH",
        "DE_TH",
        "CH_ZH",
        "CH_BE",
        "CH_LU",
        "CH_UR",
        "CH_SZ",
        "CH_OW",
        "CH_NW",
        "CH_GL",
        "CH_ZG",
        "CH_FR",
        "CH_SO",
        "CH_BS",
        "CH_BL",
        "CH_SH",
        "CH_AR",
        "CH_AI",
        "CH_SG",
        "CH_GR",
        "CH_AG",
        "CH_TG",
        "CH_TI",
        "CH_VD",
        "CH_VS",
        "CH_NE",
        "CH_GE",
        "CH_JU",
        "IT_21",
        "IT_23",
        "IT_25",
        "IT_32",
        "IT_34",
        "IT_36",
        "IT_42",
        "IT_45",
        "IT_52",
        "IT_55",
        "IT_57",
        "IT_62",
        "IT_65",
        "IT_67",
        "IT_72",
        "IT_75",
        "IT_77",
        "IT_78",
        "IT_82",
        "IT_88"
      ]
    },
    "dateOfIncorporation": {
      "type": "string",
      "description": "The date of incorporation for the company",
      "format": "date"
    },
    "entityType": {
      "type": "string",
      "description": "Entity type for the company (e.g. LLC)",
      "enum": [
        "C_CORP",
        "S_CORP",
        "LLC",
        "SOLE_PROPRIETORSHIP",
        "PARTNERSHIP",
        "UNINCORPORATED_GROUP",
        "ASSOCIATION",
        "UNKNOWN"
      ]
    },
    "contacts": {
      "type": "array",
      "description": "List of all company contacts",
      "items": {
        "$ref": "#/components/schemas/CompanyContactCrudRequest"
      }
    },
    "companyAddresses": {
      "type": "array",
      "description": "List of up to three company addresses",
      "items": {
        "$ref": "#/components/schemas/CompanyAddressCrudRequest"
      }
    },
    "enforceOneToOneDesignationToFund": {
      "type": "boolean",
      "description": "Require unique Fund for each Designation"
    }
  }
}