1: <?php
2:
3: /**
4: * Deep
5: *
6: * @package rsanchez\Deep
7: * @author Rob Sanchez <info@robsanchez.com>
8: */
9:
10: namespace rsanchez\Deep\Model;
11:
12: use Illuminate\Database\Eloquent\Model;
13:
14: /**
15: * Interface for field/col models
16: */
17: abstract class AbstractProperty extends Model
18: {
19: /**
20: * Get the property short name (eg. the field_name or col_name)
21: *
22: * @return string
23: */
24: abstract public function getName();
25:
26: /**
27: * Get the property ID with column suffix (eg. field_id_13 or col_id_13)
28: *
29: * @return string
30: */
31: abstract public function getIdentifier();
32:
33: /**
34: * Get the property ID (eg. the field_id or col_id)
35: *
36: * @return string
37: */
38: abstract public function getId();
39:
40: /**
41: * Get the property type (eg. the field_type or col_type)
42: *
43: * @return string
44: */
45: abstract public function getType();
46: }
47: