diff --git a/.serena/project.yml b/.serena/project.yml index 7a512bc..686b4f7 100644 --- a/.serena/project.yml +++ b/.serena/project.yml @@ -114,3 +114,12 @@ symbol_info_budget: # Note: the backend is fixed at startup. If a project with a different backend # is activated post-init, an error will be returned. language_backend: + +# line ending convention to use when writing source files. +# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default) +# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings. +line_ending: + +# list of regex patterns which, when matched, mark a memory entry as read‑only. +# Extends the list from the global configuration, merging the two lists. +read_only_memory_patterns: [] diff --git a/LOGICAL_RELATIONSHIPS.md b/LOGICAL_RELATIONSHIPS.md index 6fc90b6..be019cf 100644 --- a/LOGICAL_RELATIONSHIPS.md +++ b/LOGICAL_RELATIONSHIPS.md @@ -1,6 +1,6 @@ # 논리적 데이터베이스 관계 문서 -> **자동 생성**: 2026-03-06 21:25:05 +> **자동 생성**: 2026-03-12 13:58:25 > **소스**: Eloquent 모델 관계 분석 ## 📊 모델별 관계 현황 @@ -26,6 +26,68 @@ ### bad_debt_memos - **badDebt()**: belongsTo → `bad_debts` - **creator()**: belongsTo → `users` +### barobill_bank_sync_status +**모델**: `App\Models\Barobill\BarobillBankSyncStatus` + +- **tenant()**: belongsTo → `tenants` + +### barobill_bank_transactions +**모델**: `App\Models\Barobill\BarobillBankTransaction` + +- **tenant()**: belongsTo → `tenants` + +### barobill_bank_transaction_splits +**모델**: `App\Models\Barobill\BarobillBankTransactionSplit` + +- **tenant()**: belongsTo → `tenants` + +### barobill_billing_records +**모델**: `App\Models\Barobill\BarobillBillingRecord` + +- **member()**: belongsTo → `barobill_members` + +### barobill_card_transactions +**모델**: `App\Models\Barobill\BarobillCardTransaction` + +- **tenant()**: belongsTo → `tenants` + +### barobill_card_transaction_amount_logs +**모델**: `App\Models\Barobill\BarobillCardTransactionAmountLog` + +- **cardTransaction()**: belongsTo → `barobill_card_transactions` + +### barobill_card_transaction_splits +**모델**: `App\Models\Barobill\BarobillCardTransactionSplit` + +- **tenant()**: belongsTo → `tenants` + +### barobill_members +**모델**: `App\Models\Barobill\BarobillMember` + +- **tenant()**: belongsTo → `tenants` + +### barobill_monthly_summarys +**모델**: `App\Models\Barobill\BarobillMonthlySummary` + +- **member()**: belongsTo → `barobill_members` + +### barobill_subscriptions +**모델**: `App\Models\Barobill\BarobillSubscription` + +- **member()**: belongsTo → `barobill_members` + +### hometax_invoices +**모델**: `App\Models\Barobill\HometaxInvoice` + +- **tenant()**: belongsTo → `tenants` +- **journals()**: hasMany → `hometax_invoice_journals` + +### hometax_invoice_journals +**모델**: `App\Models\Barobill\HometaxInvoiceJournal` + +- **tenant()**: belongsTo → `tenants` +- **invoice()**: belongsTo → `hometax_invoices` + ### biddings **모델**: `App\Models\Bidding\Bidding` @@ -309,6 +371,43 @@ ### esign_signers - **contract()**: belongsTo → `esign_contracts` - **signFields()**: hasMany → `esign_sign_fields` +### equipments +**모델**: `App\Models\Equipment\Equipment` + +- **inspectionTemplates()**: hasMany → `equipment_inspection_templates` +- **inspections()**: hasMany → `equipment_inspections` +- **repairs()**: hasMany → `equipment_repairs` +- **photos()**: hasMany → `files` +- **processes()**: belongsToMany → `processes` + +### equipment_inspections +**모델**: `App\Models\Equipment\EquipmentInspection` + +- **equipment()**: belongsTo → `equipments` +- **details()**: hasMany → `equipment_inspection_details` + +### equipment_inspection_details +**모델**: `App\Models\Equipment\EquipmentInspectionDetail` + +- **inspection()**: belongsTo → `equipment_inspections` +- **templateItem()**: belongsTo → `equipment_inspection_templates` + +### equipment_inspection_templates +**모델**: `App\Models\Equipment\EquipmentInspectionTemplate` + +- **equipment()**: belongsTo → `equipments` + +### equipment_process +**모델**: `App\Models\Equipment\EquipmentProcess` + +- **equipment()**: belongsTo → `equipments` +- **process()**: belongsTo → `processes` + +### equipment_repairs +**모델**: `App\Models\Equipment\EquipmentRepair` + +- **equipment()**: belongsTo → `equipments` + ### estimates **모델**: `App\Models\Estimate\Estimate` @@ -734,6 +833,36 @@ ### push_notification_settings **모델**: `App\Models\PushNotificationSetting` +### audit_checklists +**모델**: `App\Models\Qualitys\AuditChecklist` + +- **categories()**: hasMany → `audit_checklist_categories` + +### audit_checklist_categorys +**모델**: `App\Models\Qualitys\AuditChecklistCategory` + +- **checklist()**: belongsTo → `audit_checklists` +- **items()**: hasMany → `audit_checklist_items` + +### audit_checklist_items +**모델**: `App\Models\Qualitys\AuditChecklistItem` + +- **category()**: belongsTo → `audit_checklist_categories` +- **standardDocuments()**: hasMany → `audit_standard_documents` + +### audit_standard_documents +**모델**: `App\Models\Qualitys\AuditStandardDocument` + +- **checklistItem()**: belongsTo → `audit_checklist_items` +- **document()**: belongsTo → `documents` + +### checklist_templates +**모델**: `App\Models\Qualitys\ChecklistTemplate` + +- **creator()**: belongsTo → `users` +- **updater()**: belongsTo → `users` +- **documents()**: morphMany → `files` + ### inspections **모델**: `App\Models\Qualitys\Inspection` @@ -838,6 +967,11 @@ ### quote_revisions - **quote()**: belongsTo → `quotes` - **reviser()**: belongsTo → `users` +### account_codes +**모델**: `App\Models\Tenants\AccountCode` + +- **children()**: hasMany → `account_codes` + ### ai_reports **모델**: `App\Models\Tenants\AiReport` @@ -857,14 +991,24 @@ ### approvals **모델**: `App\Models\Tenants\Approval` - **form()**: belongsTo → `approval_forms` +- **line()**: belongsTo → `approval_lines` - **drafter()**: belongsTo → `users` +- **department()**: belongsTo → `departments` +- **parentDocument()**: belongsTo → `approvals` - **creator()**: belongsTo → `users` - **updater()**: belongsTo → `users` +- **childDocuments()**: hasMany → `approvals` - **steps()**: hasMany → `approval_steps` - **approverSteps()**: hasMany → `approval_steps` - **referenceSteps()**: hasMany → `approval_steps` - **linkable()**: morphTo → `(Polymorphic)` +### approval_delegations +**모델**: `App\Models\Tenants\ApprovalDelegation` + +- **delegator()**: belongsTo → `users` +- **delegate()**: belongsTo → `users` + ### approval_forms **모델**: `App\Models\Tenants\ApprovalForm` @@ -883,6 +1027,7 @@ ### approval_steps - **approval()**: belongsTo → `approvals` - **approver()**: belongsTo → `users` +- **actedBy()**: belongsTo → `users` ### attendances **모델**: `App\Models\Tenants\Attendance` @@ -1004,6 +1149,11 @@ ### loans - **creator()**: belongsTo → `users` - **updater()**: belongsTo → `users` +### mail_logs +**모델**: `App\Models\Tenants\MailLog` + +- **tenant()**: belongsTo → `tenants` + ### payments **모델**: `App\Models\Tenants\Payment` @@ -1046,6 +1196,7 @@ ### receivings **모델**: `App\Models\Tenants\Receiving` - **item()**: belongsTo → `items` +- **certificateFile()**: belongsTo → `files` - **creator()**: belongsTo → `users` ### salarys @@ -1167,6 +1318,11 @@ ### tenant_field_settings - **fieldDef()**: belongsTo → `setting_field_defs` - **optionGroup()**: belongsTo → `tenant_option_groups` +### tenant_mail_configs +**모델**: `App\Models\Tenants\TenantMailConfig` + +- **tenant()**: belongsTo → `tenants` + ### tenant_option_groups **모델**: `App\Models\Tenants\TenantOptionGroup` diff --git a/database/migrations/2026_03_11_213232_alter_files_table_extend_mime_type.php b/database/migrations/2026_03_11_213232_alter_files_table_extend_mime_type.php new file mode 100644 index 0000000..d6f807e --- /dev/null +++ b/database/migrations/2026_03_11_213232_alter_files_table_extend_mime_type.php @@ -0,0 +1,28 @@ +string('mime_type', 150)->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('files', function (Blueprint $table) { + $table->string('mime_type', 50)->change(); + }); + } +}; diff --git a/storage/api-docs/api-docs-v1.json b/storage/api-docs/api-docs-v1.json index 92d16ed..cb709d1 100755 --- a/storage/api-docs/api-docs-v1.json +++ b/storage/api-docs/api-docs-v1.json @@ -11,7 +11,7 @@ "servers": [ { "url": "https://api.sam.kr/", - "description": "SAM API 서버" + "description": "SAM관리시스템 API 서버" } ], "paths": {