I'm building a production scheduling optimization model (but not exactly a jobshop, so I can't just use OR tools). I have decision variables for both the start time of each job, and the duration. For each pair of jobs, there is a changeover time that is unique for the permutation. So for example, changeover from Job A to Job B may be 2 hours, but from Job B to Job A may be 3 hours. I want to add constraints to ensure this changeover. In a nonlinear way, I would describe it as: $$ \mbox{Start}_A + \mbox{Duration}_A + \mbox{Changeover}_{AB} \le \mbox{Start}_B \quad \mbox{if } \mbox{Start}_A \le \mbox{Start}_B \\ \mbox{Start}_B + \mbox{Duration}_B + \mbox{Changeover}_{BA} \le \mbox{Start}_A \quad \mbox{if } \mbox{Start}_B \le \mbox{Start}_A $$ $\mbox{Start}_A$, $\mbox{Start}_B$, $\mbox{Duration}_A$, $\mbox{Duration}_B$ all continuous variables $\ge 0$. $\mbox{Changeover}_{AB}$ and $\mbox{Changeover}_{BA}$ are scalars.
How do I formulate these as constraints? I can either produce Job_A or Job_B first, there's no requirement of order.