'boolean', 'setup_completed' => 'boolean', 'setup_completed_at' => 'datetime', ]; /** * Ein Partner (Händler/Makler) kann einem Hub zugeordnet sein. * Ein Hersteller ist evtl. "global" (hub_id = null). */ public function hub(): BelongsTo { return $this->belongsTo(Hub::class); } /** * Ein Partner (Firma) kann mehrere User-Logins haben. */ public function users(): HasMany { return $this->hasMany(User::class); } /** * Für Kunden: Zugeordneter Makler/Händler (Parent-Partner) */ public function parentPartner(): BelongsTo { return $this->belongsTo(Partner::class, 'parent_partner_id'); } /** * Für Makler/Händler: Zugeordnete Kunden (Child-Partners) */ public function childPartners(): HasMany { return $this->hasMany(Partner::class, 'parent_partner_id'); } /** * Alias für parentPartner (für bessere Lesbarkeit im Code) */ public function broker(): BelongsTo { return $this->parentPartner(); } /** * Alias für childPartners (für bessere Lesbarkeit im Code) */ public function customers(): HasMany { return $this->childPartners(); } /** * Ein Partner (Manufacturer) kann eine Marke haben */ public function brand(): HasOne { return $this->hasOne(Brand::class); } // TODO: Später die Beziehung zu Products hinzufügen // public function products(): HasMany // { // return $this->hasMany(Product::class); // } }