از شما خواسته شده طبق توضیحات زیر یک سامانه درخواست خودرو پیادهسازی کنید. ابتدا فایلهای اولیه را از این [لینک](http://s8.picofile.com/file/8346390292/initial.zip.html) دانلود کرده و محتوای آن را مطالعه فرمایید.
این سامانه ۲ هدف اصلی دارد:
+ ثبت درخواست برای خودرو
+ گزارش گیری از سامانه
## ثبت درخواست برای خودرو
۱. پیادهسازی تابع `get_distance` در کلاس `RideRequest`:
در این تابع باید فاصلهی یک ماشین تا محلی که سفر درخواست داده شده را محاسبه کرده و برگردانید.
```python
def get_distance(self, car)
```
+ *صفت `location` تاپلی به صورت `(x, y)` است.*
۲. پیادهسازی تابع `find_best_driver` در کلاس`RideService`:
مسافر، درخواستی برای خودرو با نوع (`car_type`) مشخص میکند، وظیفهی شما پیدا کردن رانندهی آماده به کار
(`active`) با نوع ماشین موردنظر است که حاصل تقسیم امتیاز راننده بر فاصله تا مکان درخواست سفر بیشتر باشد.
```python
def find_best_driver(self, ride_request)
```
+ *تضمین میشود که فاصله تا مکان درخواست سفر صفر نیست.*
## گزارش گیری از سامانه
**حتما قبل شروع نوشتن کد، تذکرات انتهای سوال را بخوانید!**
#### ۱. ورودی کل شرکت (پولی که از طریق پرداخت وارد شرکت میشود)
```python
def total_company_income(payments)
```
#### ۲. کل مبلغ پرداخت شده توسط مشتری با ایمیل برابر با `email`
```python
def total_user_payment(payments, email)
```
#### ۳. راننده با بیشترین تعداد سفر
```python
def driver_with_most_rides(rides):
```
+ *اگر تعداد سفرها برابر بود به ترتیب حروف الفبا بر اساس نام خانوادگی راننده *
#### ۴. لیست رانندگانی که حداقل یک ماشین با نوع `car_type` دارند.
```python
def get_drivers(cars, car_type)
```
+ *اگر رانندهای بیش از یک ماشین با نوع `car_type` داشت فقط یک بار در این لیست قرار میگیرد.*
+ *ترتیب رانندگان در این لیست اهمیت ندارد.*
## **تذکرات:**
+ هریک از گزارشها را باید در کلاس `ReportService` و در تابع مربوط به گزارش پیادهسازی کنید.
+ به نوع خروجی تابع توجه کنید
+ برای مثال اگر خروجی تابع `راننده` باشد منظور `object` راننده میباشد و نه اسم یا ایمیل راننده.
### آنچه باید آپلود کنید
+ پس از اعمال تغییرات، کل پروژه را Zip کرده و ارسال کنید.
+ نام فایل Zip اهمیت ندارد.