diff --git a/backend/internal/core/usecases/auth/register_candidate.go b/backend/internal/core/usecases/auth/register_candidate.go index c2226f9..4504a24 100644 --- a/backend/internal/core/usecases/auth/register_candidate.go +++ b/backend/internal/core/usecases/auth/register_candidate.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" - "github.com/google/uuid" "github.com/rede5/gohorsejobs/backend/internal/core/domain/entity" "github.com/rede5/gohorsejobs/backend/internal/core/dto" "github.com/rede5/gohorsejobs/backend/internal/core/ports" @@ -39,21 +38,21 @@ func (uc *RegisterCandidateUseCase) Execute(ctx context.Context, input dto.Regis } // 3. Create Candidate's Personal Tenant/Workspace - candidateTenantID := uuid.New().String() + // NOTE: ID is empty - will be auto-generated by DB (SERIAL) candidateCompany := entity.NewCompany( - candidateTenantID, + "", // DB generates SERIAL id fmt.Sprintf("Candidate - %s", input.Name), nil, // No document for candidates nil, // No contact - will use user's contact info ) - _, err = uc.companyRepo.Save(ctx, candidateCompany) + savedCompany, err := uc.companyRepo.Save(ctx, candidateCompany) if err != nil { return nil, fmt.Errorf("failed to create candidate workspace: %w", err) } - // 4. Create User Entity - user := entity.NewUser(uuid.New().String(), candidateTenantID, input.Name, input.Email) + // 4. Create User Entity - ID is auto-generated by DB + user := entity.NewUser("", savedCompany.ID, input.Name, input.Email) user.PasswordHash = hashed // Set Metadata @@ -75,7 +74,7 @@ func (uc *RegisterCandidateUseCase) Execute(ctx context.Context, input dto.Regis roles[i] = r.Name } - // 4. Generate Token (Auto-login) + // 5. Generate Token (Auto-login) token, err := uc.authService.GenerateToken(saved.ID, saved.TenantID, roles) if err != nil { return nil, err