I have a feeling I am gonna get my ass kicked here, but this is my first
attempt at creating real life model logic
I have 3 models:
Trader -
https://github.com/JonleePeakman/locations/blob/master/app/models/trader.rb
Service -
https://github.com/JonleePeakman/locations/blob/master/app/models/service.rb
Location -
https://github.com/JonleePeakman/locations/blob/master/app/models/location.rb
and my DB Schema is:
https://github.com/JonleePeakman/locations/blob/master/db/schema.rb
This is all I have at the moment and it does exactly what I want it to
do.
I will plan on my controller and views later but I want to pause and
review on my work and could use some help as I am unsure if I am
overusing
callbacks especially in the Service model and what I could do otherwise.
A quick overview of the plan is:
A Trader has and belongs to many Locations and vice-versa, and a Trader
has
many Services each of which have a range. This range is the distance a
trader may travel to provide the service from their central post_code
e.g.
a builder might travel 20 miles to build a porch but would travel 50
miles
for a customer to build a full house extension. Therefore the Locations
for a Trader all hinge on the maximum range of their Services.
The Locations table is populated with UK postcode data with Lat/Lon
coordinates and all distances and ranges are calculated using the
Haversine
formula.
The plan is when a User visits the website they enter their post code,
firstly all Traders in the Location will be identified. Then When the
user
clicks on a specific Trader, the Trader=>‘services_in’ function will be
called to only show the services that the trader provides within their
post
code.
I hope that makes sense and you have a little time to peruse the models,
I
could really do with having a discussion on what I have created so far
to
see how smelly my code is. As I say I have never done anything to this
level before.
much regards
JL