Note: Since this is a do-it-for-me question and no MWE was provided, I am not likely to entertain further questions regarding this. I did this for my own exercise.
\documentclass{report}
\usepackage{circuitikz}
\tikzset{% from https://tex.stackexchange.com/a/134090/117534
declare function={% in case of CVS which switches the arguments of atan2
atan3(\a,\b)=ifthenelse(atan2(0,1)==90, atan2(\a,\b), atan2(\b,\a));},
kinky cross radius/.initial=+.125cm,
@kinky cross/.initial=+, kinky crosses/.is choice,
kinky crosses/left/.style={@kinky cross=-},kinky crosses/right/.style={@kinky cross=+},
kinky cross/.style args={(#1)--(#2)}{
to path={
let \p{@kc@}=($(\tikztotarget)-(\tikztostart)$),
\n{@kc@}={atan3(\p{@kc@})+180} in
-- ($(intersection of \tikztostart--{\tikztotarget} and #1--#2)!%
\pgfkeysvalueof{/tikz/kinky cross radius}!(\tikztostart)$)
arc [ radius =\pgfkeysvalueof{/tikz/kinky cross radius},
start angle=\n{@kc@},
delta angle=\pgfkeysvalueof{/tikz/@kinky cross}180 ]
-- (\tikztotarget)}}}
\begin{document}
\begin{circuitikz}
\draw[color=orange,thick]
(-2,1) node[spdt,yscale=-1] (bottom-spdt) {}
(-2,3) node[spdt,yscale=-1] (top-spdt) {}
(top-spdt.in) to (bottom-spdt.in)
(top-spdt.out 2) to ++(3,0)
to[lamp,/tikz/circuitikz/bipoles/length=1cm] ++(0,-2.5) to ++(0,-1.5)
to[battery1] ++(-2,0) node(batt-left){}
|- (bottom-spdt.out 1)
(top-spdt.out 1) -| node(intersect){} (batt-left)
;
\draw[thick, color=violet!70]
(bottom-spdt.out 2) to[kinky cross=(intersect)--(batt-left)] ++(3,0)
;
\end{circuitikz}
\end{document}

ciruitikz
has the most of elements which you need for this circuits. missing one you can draw withtikz
macros.