from django.db import models


class Part(models.Model):
    name = models.CharField(max_length=20)

    class Meta:
        ordering = ("name",)


class Car(models.Model):
    name = models.CharField(max_length=20)
    default_parts = models.ManyToManyField(Part)
    optional_parts = models.ManyToManyField(Part, related_name="cars_optional")

    class Meta:
        ordering = ("name",)


class SportsCar(Car):
    price = models.IntegerField()


class Person(models.Model):
    name = models.CharField(max_length=20)
    fans = models.ManyToManyField("self", related_name="idols", symmetrical=False)
    friends = models.ManyToManyField("self")

    class Meta:
        ordering = ("name",)