input: Write a function that loads a JSON fixture file containing property objects, extracts the properties, creates Property objects from them, and saves them to the database. The function should accept command line arguments to specify the fixture file and folder. It should return the number of Property objects saved.
  
  assert main(get_path())==7
  assert main(get_path(), fixture='custom_properties.json', fixture_folder='custom_fixtures')==5
  assert main(get_path(), fixture='empty_properties.json')==0
  assert main(get_path(), fixture='invalid_properties.json')==0
  assert main(get_path(), fixture='mixed_properties.json')==3
output: import json
  import os
  
  def main(get_path, fixture='properties.json', fixture_folder='fixtures'):
      fixture_path = os.path.join(fixture_folder, fixture)
      if not os.path.exists(fixture_path):
          return 0
      
      with open(fixture_path, 'r') as file:
          data = json.load(file)
      
      if not isinstance(data, list):
          return 0
      
      properties = [Property(**item) for item in data if isinstance(item, dict) and all(key in item for key in Property.__annotations__)]
      
      for prop in properties:
          prop.save()
      
      return len(properties)