code: def create_job(self, tree):
      job_name = None
      queries = []
      start_time = None
      end_time = None
      repeat_interval = None
      repeat_period = None
      if_not_exists = False
      for child in tree.children:
          if isinstance(child, Tree):
              if child.data == "if_not_exists":
                  if_not_exists = True
              if child.data == "uid":
                  job_name = self.visit(child)
              if child.data == "job_sql_statements":
                  queries = self.visit(child)
              elif child.data == "start_time":
                  start_time = self.visit(child)
              elif child.data == "end_time":
                  end_time = self.visit(child)
              elif child.data == "repeat_clause":
                  repeat_interval, repeat_period = self.visit(child)
  
      create_job = CreateJobStatement(
          job_name,
          queries,
          if_not_exists,
          start_time,
          end_time,
          repeat_interval,
          repeat_period,
      )
  
      return create_job
  
imports: from lark import Tree
  from evadb.catalog.catalog_type import ColumnType, NdArrayType, VectorStoreType
  from evadb.expression.tuple_value_expression import TupleValueExpression
  from evadb.parser.create_index_statement import CreateIndexStatement
  from evadb.parser.create_statement import ColConstraintInfo, ColumnDefinition, CreateDatabaseStatement, CreateJobStatement, CreateTableStatement
  from evadb.parser.table_ref import TableRef
  from evadb.parser.types import ColumnConstraintEnum
label_desc: Use image node_id 1 for calling the CreateJob obj's underlying member method code with example usage: obj.create_job(tree) and returns: create_job