diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php deleted file mode 100644 index 200dc04..0000000 --- a/app/Actions/Fortify/CreateNewUser.php +++ /dev/null @@ -1,39 +0,0 @@ - $input - */ - public function create(array $input): User - { - Validator::make($input, [ - 'USER_ID' => ['required', 'string', 'max:30', 'unique:SITE_USER_INFO,USER_ID'], - 'USER_PWD' => ['required', 'string', 'min:8'], - 'USER_EMAIL' => ['nullable', 'string', 'email', 'max:40'], - 'USER_NCNM' => ['nullable', 'string', 'max:50'], - ])->validate(); - - return User::create([ - 'USER_ID' => $input['USER_ID'], - 'USER_PWD' => Hash::make($input['USER_PWD']), // 비밀번호 암호화 저장 - 'USER_NCNM' => $input['USER_NCNM'] ?? null, - 'USER_EMAIL' => $input['USER_EMAIL'] ?? null, - 'USER_HP' => $input['USER_HP'] ?? null, - 'USER_STATUS' => '01', // 기본적으로 활성화 상태 - 'REG_DTTM' => now(), // 등록 날짜 자동 설정 - ]); - } -} diff --git a/app/Actions/Fortify/PasswordValidationRules.php b/app/Actions/Fortify/PasswordValidationRules.php deleted file mode 100644 index 76b19d3..0000000 --- a/app/Actions/Fortify/PasswordValidationRules.php +++ /dev/null @@ -1,18 +0,0 @@ -|string> - */ - protected function passwordRules(): array - { - return ['required', 'string', Password::default(), 'confirmed']; - } -} diff --git a/app/Actions/Fortify/ResetUserPassword.php b/app/Actions/Fortify/ResetUserPassword.php deleted file mode 100644 index 7a57c50..0000000 --- a/app/Actions/Fortify/ResetUserPassword.php +++ /dev/null @@ -1,29 +0,0 @@ - $input - */ - public function reset(User $user, array $input): void - { - Validator::make($input, [ - 'password' => $this->passwordRules(), - ])->validate(); - - $user->forceFill([ - 'password' => Hash::make($input['password']), - ])->save(); - } -} diff --git a/app/Actions/Fortify/UpdateUserPassword.php b/app/Actions/Fortify/UpdateUserPassword.php deleted file mode 100644 index 7005639..0000000 --- a/app/Actions/Fortify/UpdateUserPassword.php +++ /dev/null @@ -1,32 +0,0 @@ - $input - */ - public function update(User $user, array $input): void - { - Validator::make($input, [ - 'current_password' => ['required', 'string', 'current_password:web'], - 'password' => $this->passwordRules(), - ], [ - 'current_password.current_password' => __('The provided password does not match your current password.'), - ])->validateWithBag('updatePassword'); - - $user->forceFill([ - 'password' => Hash::make($input['password']), - ])->save(); - } -} diff --git a/app/Actions/Fortify/UpdateUserProfileInformation.php b/app/Actions/Fortify/UpdateUserProfileInformation.php deleted file mode 100644 index 9738772..0000000 --- a/app/Actions/Fortify/UpdateUserProfileInformation.php +++ /dev/null @@ -1,56 +0,0 @@ - $input - */ - public function update(User $user, array $input): void - { - Validator::make($input, [ - 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'email', 'max:255', Rule::unique('users')->ignore($user->id)], - 'photo' => ['nullable', 'mimes:jpg,jpeg,png', 'max:1024'], - ])->validateWithBag('updateProfileInformation'); - - if (isset($input['photo'])) { - $user->updateProfilePhoto($input['photo']); - } - - if ($input['email'] !== $user->email && - $user instanceof MustVerifyEmail) { - $this->updateVerifiedUser($user, $input); - } else { - $user->forceFill([ - 'name' => $input['name'], - 'email' => $input['email'], - ])->save(); - } - } - - /** - * Update the given verified user's profile information. - * - * @param array $input - */ - protected function updateVerifiedUser(User $user, array $input): void - { - $user->forceFill([ - 'name' => $input['name'], - 'email' => $input['email'], - 'email_verified_at' => null, - ])->save(); - - $user->sendEmailVerificationNotification(); - } -} diff --git a/app/Actions/Jetstream/DeleteUser.php b/app/Actions/Jetstream/DeleteUser.php deleted file mode 100644 index 083159e..0000000 --- a/app/Actions/Jetstream/DeleteUser.php +++ /dev/null @@ -1,19 +0,0 @@ -deleteProfilePhoto(); - $user->tokens->each->delete(); - $user->delete(); - } -} diff --git a/app/Http/Controllers/Api/V1/ApiController.php b/app/Http/Controllers/Api/V1/ApiController.php index 87755af..bcfc6e9 100644 --- a/app/Http/Controllers/Api/V1/ApiController.php +++ b/app/Http/Controllers/Api/V1/ApiController.php @@ -2,12 +2,11 @@ namespace App\Http\Controllers\Api\V1; -use App\Models\User; +use App\Http\Controllers\Controller; +use App\Models\Members\User; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; -use App\Http\Controllers\Controller; class ApiController extends Controller diff --git a/app/Http/Middleware/ApiKeyMiddleware.php b/app/Http/Middleware/ApiKeyMiddleware.php index b341cf9..ef031c1 100644 --- a/app/Http/Middleware/ApiKeyMiddleware.php +++ b/app/Http/Middleware/ApiKeyMiddleware.php @@ -2,11 +2,11 @@ namespace App\Http\Middleware; +use App\Models\Members\User; use Closure; use Illuminate\Auth\AuthenticationException; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; -use App\Models\User; use Illuminate\Support\Facades\Log; use Laravel\Sanctum\PersonalAccessToken; diff --git a/app/Http/Responses/CustomLoginResponse.php b/app/Http/Responses/CustomLoginResponse.php index c9d3457..1ac3409 100644 --- a/app/Http/Responses/CustomLoginResponse.php +++ b/app/Http/Responses/CustomLoginResponse.php @@ -2,9 +2,9 @@ namespace App\Http\Responses; -use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; +use App\Models\Members\User; use Illuminate\Support\Facades\Session; -use App\Models\User; +use Laravel\Fortify\Contracts\LoginResponse as LoginResponseContract; class CustomLoginResponse implements LoginResponseContract { diff --git a/app/Models/Boards/BoardFile.php b/app/Models/Boards/BoardFile.php deleted file mode 100644 index c16a080..0000000 --- a/app/Models/Boards/BoardFile.php +++ /dev/null @@ -1,15 +0,0 @@ -belongsTo(Post::class, 'post_id'); - } -} diff --git a/app/Models/Boards/Post.php b/app/Models/Boards/Post.php index 62a536c..c21968e 100644 --- a/app/Models/Boards/Post.php +++ b/app/Models/Boards/Post.php @@ -15,11 +15,8 @@ class Post extends Model 'ip_address', 'is_notice', 'is_secret', 'views', 'status' ]; - public function customFieldValues() { - return $this->hasMany(PostCustomFieldValue::class, 'post_id'); - } public function files() { - return $this->hasMany(BoardFile::class, 'post_id'); + return $this->morphMany(File::class, 'fileable'); } public function comments() { return $this->hasMany(BoardComment::class, 'post_id')->whereNull('parent_id')->where('status', 'active'); diff --git a/app/Models/Commons/Category.php b/app/Models/Commons/Category.php new file mode 100644 index 0000000..b308ff3 --- /dev/null +++ b/app/Models/Commons/Category.php @@ -0,0 +1,43 @@ + 'array', + 'is_active' => 'boolean', + ]; + + // 관계: 상위 코드 + public function parent() + { + return $this->belongsTo(self::class, 'parent_id'); + } + + // 관계: 하위 코드들 + public function children() + { + return $this->hasMany(self::class, 'parent_id'); + } +} diff --git a/app/Models/Commons/File.php b/app/Models/Commons/File.php new file mode 100644 index 0000000..b1456d9 --- /dev/null +++ b/app/Models/Commons/File.php @@ -0,0 +1,43 @@ +morphTo(); + } + + /** + * 업로더 (User 등) + */ + public function uploader() + { + return $this->belongsTo(User::class, 'uploaded_by'); + } +} diff --git a/app/Models/Menu.php b/app/Models/Commons/Menu.php similarity index 93% rename from app/Models/Menu.php rename to app/Models/Commons/Menu.php index 9a0bc27..81848a0 100644 --- a/app/Models/Menu.php +++ b/app/Models/Commons/Menu.php @@ -1,6 +1,6 @@ EstimateStatus::class, + ]; + + protected $fillable = [ + 'main_request_id', + 'estimate_no', + // ... 기타 필드 + 'status_code', + ]; + + // 관계 메서드 등 추가 +} diff --git a/app/Models/Material.php b/app/Models/Materials/Material.php similarity index 81% rename from app/Models/Material.php rename to app/Models/Materials/Material.php index b5f272d..2dbcf38 100644 --- a/app/Models/Material.php +++ b/app/Models/Materials/Material.php @@ -1,7 +1,9 @@ hasMany(Lot::class, 'material_id'); } + + public function files() + { + return $this->morphMany(File::class, 'fileable'); + } } diff --git a/app/Models/MaterialInspection.php b/app/Models/Materials/MaterialInspection.php similarity index 93% rename from app/Models/MaterialInspection.php rename to app/Models/Materials/MaterialInspection.php index 8426d8b..5e6af9a 100644 --- a/app/Models/MaterialInspection.php +++ b/app/Models/Materials/MaterialInspection.php @@ -1,6 +1,6 @@ 'datetime', - ]; - - public function getAuthPassword() - { - return $this->mb_pass; // 기본 비밀번호 필드를 mb_pass로 설정 - } - - public function getAuthIdentifierName() - { - return 'mb_id'; // 기본 로그인 필드를 mb_id로 변경 - } - - public function company() - { - return $this->belongsTo(MemberCompany::class, 'tn_num', 'mc_num'); - // members.tn_num = member_company.mc_num - } - - public function tenant() - { - return $this->belongsTo(Tenant::class, 'tn_num'); - } -} diff --git a/app/Models/MemberCompany.php b/app/Models/MemberCompany.php deleted file mode 100644 index 641597c..0000000 --- a/app/Models/MemberCompany.php +++ /dev/null @@ -1,17 +0,0 @@ -hasMany(Member::class, 'tn_num', 'mc_num'); - // member_company.mc_num = members.tn_num - } -} diff --git a/app/Models/User.php b/app/Models/Members/User.php similarity index 86% rename from app/Models/User.php rename to app/Models/Members/User.php index 4cf302a..acd343e 100644 --- a/app/Models/User.php +++ b/app/Models/Members/User.php @@ -1,12 +1,14 @@ hasOne(UserTenant::class)->where('tenant_id', $tenantId); } + + public function files() + { + return $this->morphMany(File::class, 'fileable'); + } } diff --git a/app/Models/UserMenuPermission.php b/app/Models/Members/UserMenuPermission.php similarity index 87% rename from app/Models/UserMenuPermission.php rename to app/Models/Members/UserMenuPermission.php index d1ec319..078db39 100644 --- a/app/Models/UserMenuPermission.php +++ b/app/Models/Members/UserMenuPermission.php @@ -1,7 +1,8 @@ hasMany(Bom::class); } + + public function files() + { + return $this->morphMany(File::class, 'fileable'); + } } diff --git a/app/Models/Lot.php b/app/Models/Qualitys/Lot.php similarity index 85% rename from app/Models/Lot.php rename to app/Models/Qualitys/Lot.php index b509c3b..83dc527 100644 --- a/app/Models/Lot.php +++ b/app/Models/Qualitys/Lot.php @@ -1,7 +1,8 @@ hasMany(UserRole::class); } + + public function files() + { + return $this->morphMany(File::class, 'fileable'); + } } diff --git a/app/Repositories/MainRequestRepository.php b/app/Repositories/MainRequestRepository.php index 63328fb..1920afb 100644 --- a/app/Repositories/MainRequestRepository.php +++ b/app/Repositories/MainRequestRepository.php @@ -1,10 +1,10 @@ [ 'users' => [ 'driver' => 'eloquent', - 'model' => env('AUTH_MODEL', App\Models\User::class), + 'model' => env('AUTH_MODEL', \App\Models\Members\User::class), ], // 'users' => [ diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index ea955ad..818f993 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,15 +2,15 @@ namespace Database\Factories; +use App\Models\Members\User; use App\Models\Team; -use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; use Laravel\Jetstream\Features; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User> + * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Members\User> */ class UserFactory extends Factory { diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..9a05b4d 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,10 +2,11 @@ namespace Database\Seeders; -use App\Models\User; -// use Illuminate\Database\Console\Seeds\WithoutModelEvents; +use App\Models\Members\User; use Illuminate\Database\Seeder; +// use Illuminate\Database\Console\Seeds\WithoutModelEvents; + class DatabaseSeeder extends Seeder { /** diff --git a/tests/Feature/ApiTokenPermissionsTest.php b/tests/Feature/ApiTokenPermissionsTest.php index b15bdbd..bcb5a82 100644 --- a/tests/Feature/ApiTokenPermissionsTest.php +++ b/tests/Feature/ApiTokenPermissionsTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Str; use Laravel\Jetstream\Features; diff --git a/tests/Feature/AuthenticationTest.php b/tests/Feature/AuthenticationTest.php index 7bfcae2..db371d2 100644 --- a/tests/Feature/AuthenticationTest.php +++ b/tests/Feature/AuthenticationTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; diff --git a/tests/Feature/BrowserSessionsTest.php b/tests/Feature/BrowserSessionsTest.php index 770c435..c5f7755 100644 --- a/tests/Feature/BrowserSessionsTest.php +++ b/tests/Feature/BrowserSessionsTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Jetstream\Http\Livewire\LogoutOtherBrowserSessionsForm; use Livewire\Livewire; diff --git a/tests/Feature/CreateApiTokenTest.php b/tests/Feature/CreateApiTokenTest.php index fab69d9..cc1ef61 100644 --- a/tests/Feature/CreateApiTokenTest.php +++ b/tests/Feature/CreateApiTokenTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Jetstream\Features; use Laravel\Jetstream\Http\Livewire\ApiTokenManager; diff --git a/tests/Feature/DeleteAccountTest.php b/tests/Feature/DeleteAccountTest.php index 561d692..e2f55f6 100644 --- a/tests/Feature/DeleteAccountTest.php +++ b/tests/Feature/DeleteAccountTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Jetstream\Features; use Laravel\Jetstream\Http\Livewire\DeleteUserForm; diff --git a/tests/Feature/DeleteApiTokenTest.php b/tests/Feature/DeleteApiTokenTest.php index 1903e17..cedc01b 100644 --- a/tests/Feature/DeleteApiTokenTest.php +++ b/tests/Feature/DeleteApiTokenTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Str; use Laravel\Jetstream\Features; diff --git a/tests/Feature/EmailVerificationTest.php b/tests/Feature/EmailVerificationTest.php index 5d3e336..2fa8eeb 100644 --- a/tests/Feature/EmailVerificationTest.php +++ b/tests/Feature/EmailVerificationTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Auth\Events\Verified; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Event; diff --git a/tests/Feature/PasswordConfirmationTest.php b/tests/Feature/PasswordConfirmationTest.php index 34c860a..abb4f95 100644 --- a/tests/Feature/PasswordConfirmationTest.php +++ b/tests/Feature/PasswordConfirmationTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Tests\TestCase; diff --git a/tests/Feature/PasswordResetTest.php b/tests/Feature/PasswordResetTest.php index a30e8cd..90aac0f 100644 --- a/tests/Feature/PasswordResetTest.php +++ b/tests/Feature/PasswordResetTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Auth\Notifications\ResetPassword; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Notification; diff --git a/tests/Feature/ProfileInformationTest.php b/tests/Feature/ProfileInformationTest.php index ce1a8e7..15656c2 100644 --- a/tests/Feature/ProfileInformationTest.php +++ b/tests/Feature/ProfileInformationTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Jetstream\Http\Livewire\UpdateProfileInformationForm; use Livewire\Livewire; diff --git a/tests/Feature/TwoFactorAuthenticationSettingsTest.php b/tests/Feature/TwoFactorAuthenticationSettingsTest.php index 1321659..3775ba7 100644 --- a/tests/Feature/TwoFactorAuthenticationSettingsTest.php +++ b/tests/Feature/TwoFactorAuthenticationSettingsTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Laravel\Fortify\Features; use Laravel\Jetstream\Http\Livewire\TwoFactorAuthenticationForm; diff --git a/tests/Feature/UpdatePasswordTest.php b/tests/Feature/UpdatePasswordTest.php index 57dbe2d..4fda1b2 100644 --- a/tests/Feature/UpdatePasswordTest.php +++ b/tests/Feature/UpdatePasswordTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature; -use App\Models\User; +use App\Models\Members\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Hash; use Laravel\Jetstream\Http\Livewire\UpdatePasswordForm;