mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2026-02-05 13:35:19 -05:00
w
This commit is contained in:
@@ -62,12 +62,15 @@ class Company(TrackedModel):
|
||||
founded_year = models.PositiveIntegerField(blank=True, null=True, help_text="Year the company was founded")
|
||||
founded_date = models.DateField(blank=True, null=True, help_text="Full founding date if known")
|
||||
DATE_PRECISION_CHOICES = [
|
||||
("YEAR", "Year only"),
|
||||
("MONTH", "Month and year"),
|
||||
("DAY", "Full date"),
|
||||
("exact", "Exact Date"),
|
||||
("month", "Month and Year"),
|
||||
("year", "Year Only"),
|
||||
("decade", "Decade"),
|
||||
("century", "Century"),
|
||||
("approximate", "Approximate"),
|
||||
]
|
||||
founded_date_precision = models.CharField(
|
||||
max_length=10,
|
||||
max_length=20,
|
||||
choices=DATE_PRECISION_CHOICES,
|
||||
blank=True,
|
||||
help_text="Precision of the founding date",
|
||||
@@ -78,6 +81,35 @@ class Company(TrackedModel):
|
||||
banner_image_url = models.URLField(blank=True, help_text="Banner image for company page header")
|
||||
card_image_url = models.URLField(blank=True, help_text="Card/thumbnail image for listings")
|
||||
|
||||
# Image ID fields (for frontend submissions - Cloudflare image IDs)
|
||||
banner_image_id = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
help_text="Cloudflare image ID for banner image",
|
||||
)
|
||||
card_image_id = models.CharField(
|
||||
max_length=255,
|
||||
blank=True,
|
||||
help_text="Cloudflare image ID for card image",
|
||||
)
|
||||
|
||||
# Location relationship (for headquarters coordinates)
|
||||
location = models.ForeignKey(
|
||||
"ParkLocation",
|
||||
on_delete=models.SET_NULL,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name="companies_hq",
|
||||
help_text="Linked location record for headquarters",
|
||||
)
|
||||
|
||||
# Text-based headquarters location (matches frontend schema)
|
||||
headquarters_location = models.CharField(
|
||||
max_length=200,
|
||||
blank=True,
|
||||
help_text="Headquarters location description (e.g., 'Los Angeles, CA, USA')",
|
||||
)
|
||||
|
||||
# Rating & Review Aggregates (computed fields, updated by triggers/signals)
|
||||
average_rating = models.DecimalField(
|
||||
max_digits=3,
|
||||
@@ -95,6 +127,16 @@ class Company(TrackedModel):
|
||||
parks_count = models.IntegerField(default=0, help_text="Number of parks operated (auto-calculated)")
|
||||
rides_count = models.IntegerField(default=0, help_text="Number of rides manufactured (auto-calculated)")
|
||||
|
||||
# Submission metadata fields (from frontend schema)
|
||||
source_url = models.URLField(
|
||||
blank=True,
|
||||
help_text="Source URL for the data (e.g., official website, Wikipedia)",
|
||||
)
|
||||
is_test_data = models.BooleanField(
|
||||
default=False,
|
||||
help_text="Whether this is test/development data",
|
||||
)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
self.slug = slugify(self.name)
|
||||
|
||||
Reference in New Issue
Block a user