Migrated endpoints from user to member; Renamed membership to member

This commit is contained in:
Constantin Graf
2024-05-13 19:50:50 +02:00
parent ba335b4f05
commit b2365e2778
64 changed files with 853 additions and 456 deletions

View File

@@ -5,7 +5,7 @@ declare(strict_types=1);
namespace App\Models;
use App\Models\Concerns\HasUuids;
use Database\Factories\MembershipFactory;
use Database\Factories\MemberFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Laravel\Jetstream\Membership as JetstreamMembership;
@@ -21,9 +21,9 @@ use Laravel\Jetstream\Membership as JetstreamMembership;
* @property-read Organization $organization
* @property-read User $user
*
* @method static MembershipFactory factory()
* @method static MemberFactory factory()
*/
class Membership extends JetstreamMembership
class Member extends JetstreamMembership
{
use HasFactory;
use HasUuids;
@@ -33,10 +33,10 @@ class Membership extends JetstreamMembership
*
* @var string
*/
protected $table = 'organization_user';
protected $table = 'members';
/**
* @return BelongsTo<User, Membership>
* @return BelongsTo<User, Member>
*/
public function user(): BelongsTo
{
@@ -44,7 +44,7 @@ class Membership extends JetstreamMembership
}
/**
* @return BelongsTo<Organization, Membership>
* @return BelongsTo<Organization, Member>
*/
public function organization(): BelongsTo
{

View File

@@ -30,7 +30,7 @@ use Laravel\Jetstream\Team as JetstreamTeam;
* @property Collection<int, User> $users
* @property Collection<int, User> $realUsers
* @property-read Collection<int, OrganizationInvitation> $teamInvitations
* @property Membership $membership
* @property Member $membership
*
* @method HasMany<OrganizationInvitation> teamInvitations()
* @method static OrganizationFactory factory()

View File

@@ -14,9 +14,11 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* @property string $id
* @property int|null $billable_rate
* @property string $project_id
* @property string $user_id
* @property string $project_id Project ID
* @property string $member_id Member ID
* @property string $user_id User ID (legacy)
* @property-read Project $project
* @property-read Member $member
* @property-read User $user
*
* @method static Builder<ProjectMember> whereBelongsToOrganization(Organization $organization)
@@ -45,6 +47,8 @@ class ProjectMember extends Model
}
/**
* @deprecated Use member relationship instead
*
* @return BelongsTo<User, ProjectMember>
*/
public function user(): BelongsTo
@@ -52,6 +56,14 @@ class ProjectMember extends Model
return $this->belongsTo(User::class, 'user_id');
}
/**
* @return BelongsTo<Member, ProjectMember>
*/
public function member(): BelongsTo
{
return $this->belongsTo(Member::class, 'member_id');
}
/**
* @param Builder<ProjectMember> $builder
*/

View File

@@ -65,9 +65,14 @@ class Task extends Model
return $this->hasMany(TimeEntry::class, 'task_id');
}
/**
* @param Builder<Task> $builder
* @return Builder<Task>
*/
public function scopeVisibleByUser(Builder $builder, User $user): Builder
{
return $builder->whereHas('project', function (Builder $builder) use ($user): Builder {
/** @var Builder<Project> $builder */
return $builder->visibleByUser($user);
});
}

View File

@@ -24,7 +24,9 @@ use Korridor\LaravelComputedAttributes\ComputedAttributes;
* @property bool $billable
* @property array $tags
* @property string $user_id
* @property string $member_id
* @property-read User $user
* @property-read Member $member
* @property string $organization_id
* @property-read Organization $organization
* @property string|null $project_id
@@ -91,6 +93,14 @@ class TimeEntry extends Model
return $this->belongsTo(User::class, 'user_id');
}
/**
* @return BelongsTo<Member, TimeEntry>
*/
public function member(): BelongsTo
{
return $this->belongsTo(Member::class, 'member_id');
}
/**
* @return BelongsTo<Organization, TimeEntry>
*/

View File

@@ -43,7 +43,7 @@ use Laravel\Passport\HasApiTokens;
* @property string $current_team_id
* @property Collection<int, Organization> $organizations
* @property Collection<int, TimeEntry> $timeEntries
* @property Membership $membership
* @property Member $membership
*
* @method HasMany<Organization> ownedTeams()
* @method static UserFactory factory()
@@ -136,7 +136,7 @@ class User extends Authenticatable implements FilamentUser, MustVerifyEmail
*/
public function organizations(): BelongsToMany
{
return $this->belongsToMany(Organization::class, Membership::class)
return $this->belongsToMany(Organization::class, Member::class)
->withPivot([
'id',
'role',