How can I fix the ball from going through the brick at start of game?

The pink ball is going through brick boundary at beginning of game, after it returns and hits the paddle it detects brick boundary.

from tkinter import *
import random
import time

color1 = 0

tk = Tk()
tk.title("Bounce!")
tk.resizable(0, 0)
tk.wm_attributes("-topmost", 1)
canvas = Canvas(tk, width=500, height=500, bg="white", bd=0, 
highlightthickness=0)
canvas.pack()
tk.update()

ball creation class

class Ball:
def __init__(self, canvas, paddle, brick, color):
    self.canvas = canvas
    self.paddle = paddle
    self.brick = brick
    self.id = canvas.create_oval(10, 10, 25, 25, fill=color)
    self.canvas.move(self.id, 245, 100)
    start = [-3, -2, -1, 0, 1, 2, 3]
    random.shuffle(start)
    self.x = start[0]
    self.y = -3
    self.canvas_height = self.canvas.winfo_height()
    self.canvas_width = self.canvas.winfo_width()
    self.hit_bottom = False`

gets update when paddle gets hit to send the ball back up

def hit_paddle(self, pos):
    paddle_pos = self.canvas.coords(self.paddle.id)
    if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
        if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
            return True
        return False

gets update when brick is hit to change color

def hit_brick(self, pos):
    brick_pos = self.canvas.coords(self.brick.id)
    if pos[0] >= brick_pos[0] and pos[2] <= brick_pos[2]:
        if pos[1] <= brick_pos[3] and pos[1] == brick_pos[3]:
            return True
        return False

movement update for ball and brick change color update when brick is hit

def draw(self):
    self.canvas.move(self.id, self.x, self.y)
    pos = self.canvas.coords(self.id)
    #print(pos)
    global color1

brick update if statement, I added a print statment to see how many times it counts brick as getting hit at start of game and it returns the value 1 2 as soon as it hits the brick.

    if self.hit_brick(pos):
        self.y = 1
        color1 = color1 + 1
        print(color1)

        if color1 == 4:
            brick.draw()

    if pos[1] <= 0:
        self.y = 1
    if pos[3] >= self.canvas_height:
        self.hit_bottom = True
        canvas.create_text(245, 100, text="Game Over")

    if pos[0] <= 0:
        self.x = 1
    if pos[2] >= self.canvas_width:
        self.x = -1

    if self.hit_paddle(pos):
        self.y = -1`

paddle creation class

class Paddle:
def __init__(self, canvas, color):
    self.canvas = canvas
    self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)
    self.canvas.move(self.id, 200, 300)
    self.x = 0
    self.canvas_width = self.canvas.winfo_width()
    self.canvas.bind_all("<KeyPress-Left>", self.turn_left)
    self.canvas.bind_all("<KeyPress-Right>", self.turn_right)

Paddle Controls
def draw(self):
    self.canvas.move(self.id, self.x, 0)
    pos = self.canvas.coords(self.id)
    if pos[0] <= 0:
        self.x = 0
    if pos[2] >= self.canvas_width:
        self.x = 0

def turn_left(self, evt):
    self.x = -2

def turn_right(self, evt):
    self.x = 2

class Brick:
def __init__(self, canvas, color):
    self.canvas = canvas
    self.id = canvas.create_rectangle(0, 0, 500, 10, fill=color)

def draw(self):
    self.canvas.itemconfig(self.id, fill="red")


brick = Brick(canvas, "Pink")
paddle = Paddle(canvas, "Blue")
ball = Ball(canvas, paddle, brick, 'pink')


while 1:

if ball.hit_bottom == False:
    ball.draw()
    paddle.draw()
tk.update_idletasks()
tk.update()
time.sleep(0.01)

tk.mainloop()

At start of game ball should bounce off of pink brick but goes straight through and bounces back.