- routes/api.php: H-1~3, I-2~8 엔드포인트 추가 - error.php: 에러 메시지 키 추가 (en/ko) - TenantUserProfile 모델 업데이트 - LOGICAL_RELATIONSHIPS.md 업데이트 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
20 KiB
논리적 데이터베이스 관계 문서
자동 생성: 2025-12-26 15:08:36 소스: Eloquent 모델 관계 분석
📊 모델별 관계 현황
bad_debts
모델: App\Models\BadDebts\BadDebt
- client(): belongsTo →
clients - assignedUser(): belongsTo →
users - creator(): belongsTo →
users - documents(): hasMany →
bad_debt_documents - memos(): hasMany →
bad_debt_memos
bad_debt_documents
모델: App\Models\BadDebts\BadDebtDocument
- badDebt(): belongsTo →
bad_debts - file(): belongsTo →
files
bad_debt_memos
모델: App\Models\BadDebts\BadDebtMemo
- badDebt(): belongsTo →
bad_debts - creator(): belongsTo →
users
boards
모델: App\Models\Boards\Board
- creator(): belongsTo →
users - updater(): belongsTo →
users - customFields(): hasMany →
board_settings - posts(): hasMany →
posts
board_comments
모델: App\Models\Boards\BoardComment
- post(): belongsTo →
posts - user(): belongsTo →
users - parent(): belongsTo →
board_comments - children(): hasMany →
board_comments
board_settings
모델: App\Models\Boards\BoardSetting
- board(): belongsTo →
boards
posts
모델: App\Models\Boards\Post
- board(): belongsTo →
boards - comments(): hasMany →
board_comments - files(): morphMany →
files
post_custom_field_values
모델: App\Models\Boards\PostCustomFieldValue
- post(): belongsTo →
posts - field(): belongsTo →
board_settings
categorys
모델: App\Models\Commons\Category
- parent(): belongsTo →
categories - children(): hasMany →
categories - categoryFields(): hasMany →
category_fields
category_fields
모델: App\Models\Commons\CategoryField
- category(): belongsTo →
categories
category_logs
모델: App\Models\Commons\CategoryLog
- category(): belongsTo →
categories
category_templates
모델: App\Models\Commons\CategoryTemplate
- category(): belongsTo →
categories
files
모델: App\Models\Commons\File
- tenant(): belongsTo →
tenants - folder(): belongsTo →
folders - uploader(): belongsTo →
users - shareLinks(): hasMany →
file_share_links - fileable(): morphTo →
(Polymorphic)
global_menus
모델: App\Models\Commons\GlobalMenu
- parent(): belongsTo →
global_menus - children(): hasMany →
global_menus - tenantMenus(): hasMany →
menus
menus
모델: App\Models\Commons\Menu
- parent(): belongsTo →
menus - globalMenu(): belongsTo →
global_menus - children(): hasMany →
menus
tags
모델: App\Models\Commons\Tag
- tenant(): belongsTo →
tenants
company_requests
모델: App\Models\CompanyRequest
- user(): belongsTo →
users - approver(): belongsTo →
users - createdTenant(): belongsTo →
tenants
bom_templates
모델: App\Models\Design\BomTemplate
- modelVersion(): belongsTo →
model_versions - items(): hasMany →
bom_template_items
bom_template_items
모델: App\Models\Design\BomTemplateItem
- template(): belongsTo →
bom_templates
design_models
모델: App\Models\Design\DesignModel
- versions(): hasMany →
model_versions
model_versions
모델: App\Models\Design\ModelVersion
- model(): belongsTo →
models - bomTemplates(): hasMany →
bom_templates
estimates
모델: App\Models\Estimate\Estimate
- modelSet(): belongsTo →
categories - items(): hasMany →
estimate_items
estimate_items
모델: App\Models\Estimate\EstimateItem
- estimate(): belongsTo →
estimates
fcm_send_logs
모델: App\Models\FcmSendLog
file_share_links
모델: App\Models\FileShareLink
- file(): belongsTo →
files - tenant(): belongsTo →
tenants
folders
모델: App\Models\Folder
custom_tabs
모델: App\Models\ItemMaster\CustomTab
- columnSetting(): hasOne →
tab_columns
entity_relationships
모델: App\Models\ItemMaster\EntityRelationship
- parent(): morphTo →
(Polymorphic) - child(): morphTo →
(Polymorphic)
item_pages
모델: App\Models\ItemMaster\ItemPage
- sectionRelationships(): hasMany →
entity_relationships - fieldRelationships(): hasMany →
entity_relationships - allRelationships(): hasMany →
entity_relationships
item_sections
모델: App\Models\ItemMaster\ItemSection
- fieldRelationships(): hasMany →
entity_relationships - bomRelationships(): hasMany →
entity_relationships - allChildRelationships(): hasMany →
entity_relationships
tab_columns
모델: App\Models\ItemMaster\TabColumn
- tab(): belongsTo →
custom_tabs
items
모델: App\Models\Items\Item
- category(): belongsTo →
categories - files(): hasMany →
files - details(): hasOne →
item_details
item_details
모델: App\Models\Items\ItemDetail
- item(): belongsTo →
items
login_tokens
모델: App\Models\LoginToken
- user(): belongsTo →
users
main_requests
모델: App\Models\MainRequest
- flows(): hasMany →
main_request_flows
main_request_flows
모델: App\Models\MainRequestFlow
- mainRequest(): belongsTo →
main_requests - flowable(): morphTo →
(Polymorphic)
material_inspections
모델: App\Models\Materials\MaterialInspection
- receipt(): belongsTo →
material_receipts - items(): hasMany →
material_inspection_items
material_inspection_items
모델: App\Models\Materials\MaterialInspectionItem
- inspection(): belongsTo →
material_inspections
material_receipts
모델: App\Models\Materials\MaterialReceipt
- item(): belongsTo →
items - inspections(): hasMany →
material_inspections
users
모델: App\Models\Members\User
- userTenants(): hasMany →
user_tenants - userRoles(): hasMany →
user_roles - tenantProfiles(): hasMany →
tenant_user_profiles - userTenant(): hasOne →
user_tenants - userTenantById(): hasOne →
user_tenants - tenantProfile(): hasOne →
tenant_user_profiles - tenantsMembership(): belongsToMany →
tenants - files(): morphMany →
files
user_menu_permissions
모델: App\Models\Members\UserMenuPermission
- user(): belongsTo →
users - menu(): belongsTo →
menus
user_roles
모델: App\Models\Members\UserRole
- user(): belongsTo →
users - tenant(): belongsTo →
tenants - role(): belongsTo →
roles
user_tenants
모델: App\Models\Members\UserTenant
- user(): belongsTo →
users - tenant(): belongsTo →
tenants
notification_settings
모델: App\Models\NotificationSetting
notification_setting_groups
모델: App\Models\NotificationSettingGroup
- items(): hasMany →
notification_setting_group_items
notification_setting_group_items
모델: App\Models\NotificationSettingGroupItem
- group(): belongsTo →
notification_setting_groups
notification_setting_group_states
모델: App\Models\NotificationSettingGroupState
clients
모델: App\Models\Orders\Client
- clientGroup(): belongsTo →
client_groups - orders(): hasMany →
orders - badDebts(): hasMany →
bad_debts - activeBadDebts(): hasMany →
bad_debts
client_groups
모델: App\Models\Orders\ClientGroup
- clients(): hasMany →
clients
orders
모델: App\Models\Orders\Order
- item(): belongsTo →
items - items(): hasMany →
order_items - histories(): hasMany →
order_histories - versions(): hasMany →
order_versions
order_historys
모델: App\Models\Orders\OrderHistory
- order(): belongsTo →
orders
order_items
모델: App\Models\Orders\OrderItem
- order(): belongsTo →
orders - item(): belongsTo →
items - components(): hasMany →
order_item_components
order_item_components
모델: App\Models\Orders\OrderItemComponent
- orderItem(): belongsTo →
order_items
order_versions
모델: App\Models\Orders\OrderVersion
- order(): belongsTo →
orders
permissions
모델: App\Models\Permissions\Permission
- tenant(): belongsTo →
tenants
permission_overrides
모델: App\Models\Permissions\PermissionOverride
- permission(): belongsTo →
permissions
roles
모델: App\Models\Permissions\Role
- tenant(): belongsTo →
tenants - menuPermissions(): hasMany →
role_menu_permissions - userRoles(): hasMany →
user_roles
role_menu_permissions
모델: App\Models\Permissions\RoleMenuPermission
- role(): belongsTo →
roles - menu(): belongsTo →
menus
popups
모델: App\Models\Popups\Popup
- department(): belongsTo →
departments - creator(): belongsTo →
users - updater(): belongsTo →
users
work_orders
모델: App\Models\Production\WorkOrder
- salesOrder(): belongsTo →
orders - assignee(): belongsTo →
users - team(): belongsTo →
departments - creator(): belongsTo →
users - updater(): belongsTo →
users - items(): hasMany →
work_order_items - issues(): hasMany →
work_order_issues - bendingDetail(): hasOne →
work_order_bending_details
work_order_bending_details
모델: App\Models\Production\WorkOrderBendingDetail
- workOrder(): belongsTo →
work_orders
work_order_issues
모델: App\Models\Production\WorkOrderIssue
- workOrder(): belongsTo →
work_orders - reporter(): belongsTo →
users - resolver(): belongsTo →
users
work_order_items
모델: App\Models\Production\WorkOrderItem
- workOrder(): belongsTo →
work_orders - item(): belongsTo →
items
work_results
모델: App\Models\Production\WorkResult
- workOrder(): belongsTo →
work_orders - workOrderItem(): belongsTo →
work_order_items - worker(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users
prices
모델: App\Models\Products\Price
- clientGroup(): belongsTo →
client_groups - revisions(): hasMany →
price_revisions
price_revisions
모델: App\Models\Products\PriceRevision
- price(): belongsTo →
prices
push_device_tokens
모델: App\Models\PushDeviceToken
push_notification_settings
모델: App\Models\PushNotificationSetting
lots
모델: App\Models\Qualitys\Lot
- item(): belongsTo →
items - sales(): hasMany →
lot_sales
lot_sales
모델: App\Models\Qualitys\LotSale
- lot(): belongsTo →
lots
quotes
모델: App\Models\Quote\Quote
- client(): belongsTo →
clients - item(): belongsTo →
items - finalizer(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users - items(): hasMany →
quote_items - revisions(): hasMany →
quote_revisions
quote_formulas
모델: App\Models\Quote\QuoteFormula
- category(): belongsTo →
quote_formula_categories - ranges(): hasMany →
quote_formula_ranges - mappings(): hasMany →
quote_formula_mappings - items(): hasMany →
quote_formula_items
quote_formula_categorys
모델: App\Models\Quote\QuoteFormulaCategory
- formulas(): hasMany →
quote_formulas
quote_formula_items
모델: App\Models\Quote\QuoteFormulaItem
- formula(): belongsTo →
quote_formulas
quote_formula_mappings
모델: App\Models\Quote\QuoteFormulaMapping
- formula(): belongsTo →
quote_formulas
quote_formula_ranges
모델: App\Models\Quote\QuoteFormulaRange
- formula(): belongsTo →
quote_formulas
quote_items
모델: App\Models\Quote\QuoteItem
- quote(): belongsTo →
quotes
quote_revisions
모델: App\Models\Quote\QuoteRevision
- quote(): belongsTo →
quotes - reviser(): belongsTo →
users
ai_reports
모델: App\Models\Tenants\AiReport
- creator(): belongsTo →
users
approvals
모델: App\Models\Tenants\Approval
- form(): belongsTo →
approval_forms - drafter(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users - steps(): hasMany →
approval_steps - approverSteps(): hasMany →
approval_steps - referenceSteps(): hasMany →
approval_steps
approval_forms
모델: App\Models\Tenants\ApprovalForm
- creator(): belongsTo →
users - updater(): belongsTo →
users - approvals(): hasMany →
approvals
approval_lines
모델: App\Models\Tenants\ApprovalLine
- creator(): belongsTo →
users - updater(): belongsTo →
users
approval_steps
모델: App\Models\Tenants\ApprovalStep
- approval(): belongsTo →
approvals - approver(): belongsTo →
users
attendances
모델: App\Models\Tenants\Attendance
- user(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users
bank_accounts
모델: App\Models\Tenants\BankAccount
- assignedUser(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users
barobill_settings
모델: App\Models\Tenants\BarobillSetting
- tenant(): belongsTo →
tenants - creator(): belongsTo →
users - updater(): belongsTo →
users
bills
모델: App\Models\Tenants\Bill
- client(): belongsTo →
clients - bankAccount(): belongsTo →
bank_accounts - creator(): belongsTo →
users - installments(): hasMany →
bill_installments
bill_installments
모델: App\Models\Tenants\BillInstallment
- bill(): belongsTo →
bills - creator(): belongsTo →
users
cards
모델: App\Models\Tenants\Card
- assignedUser(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users
data_exports
모델: App\Models\Tenants\DataExport
- tenant(): belongsTo →
tenants - creator(): belongsTo →
users
departments
모델: App\Models\Tenants\Department
- parent(): belongsTo →
departments - children(): hasMany →
departments - departmentUsers(): hasMany →
department_user - users(): belongsToMany →
users - permissionOverrides(): morphMany →
permission_overrides
deposits
모델: App\Models\Tenants\Deposit
- client(): belongsTo →
clients - bankAccount(): belongsTo →
bank_accounts - creator(): belongsTo →
users
expected_expenses
모델: App\Models\Tenants\ExpectedExpense
- client(): belongsTo →
clients - bankAccount(): belongsTo →
bank_accounts - creator(): belongsTo →
users
leaves
모델: App\Models\Tenants\Leave
- user(): belongsTo →
users - approver(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users - userProfile(): hasOne →
tenant_user_profiles
leave_balances
모델: App\Models\Tenants\LeaveBalance
- user(): belongsTo →
users
leave_grants
모델: App\Models\Tenants\LeaveGrant
- user(): belongsTo →
users - creator(): belongsTo →
users
leave_policys
모델: App\Models\Tenants\LeavePolicy
- tenant(): belongsTo →
tenants
loans
모델: App\Models\Tenants\Loan
- withdrawal(): belongsTo →
withdrawals
payments
모델: App\Models\Tenants\Payment
- subscription(): belongsTo →
subscriptions
payrolls
모델: App\Models\Tenants\Payroll
- user(): belongsTo →
users - confirmer(): belongsTo →
users - withdrawal(): belongsTo →
withdrawals - creator(): belongsTo →
users - updater(): belongsTo →
users
payroll_settings
모델: App\Models\Tenants\PayrollSetting
- tenant(): belongsTo →
tenants
department_users
모델: App\Models\Tenants\Pivots\DepartmentUser
- department(): belongsTo →
departments - user(): belongsTo →
users
plans
모델: App\Models\Tenants\Plan
- subscriptions(): hasMany →
subscriptions
purchases
모델: App\Models\Tenants\Purchase
- client(): belongsTo →
clients - withdrawal(): belongsTo →
withdrawals - creator(): belongsTo →
users
receivings
모델: App\Models\Tenants\Receiving
- item(): belongsTo →
items - creator(): belongsTo →
users
salarys
모델: App\Models\Tenants\Salary
- employee(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users - employeeProfile(): hasOne →
tenant_user_profiles
sales
모델: App\Models\Tenants\Sale
- client(): belongsTo →
clients - deposit(): belongsTo →
deposits - creator(): belongsTo →
users
setting_field_defs
모델: App\Models\Tenants\SettingFieldDef
- tenantSettings(): hasMany →
tenant_field_settings
sites
모델: App\Models\Tenants\Site
- creator(): belongsTo →
users - updater(): belongsTo →
users
stocks
모델: App\Models\Tenants\Stock
- creator(): belongsTo →
users - lots(): hasMany →
stock_lots
stock_lots
모델: App\Models\Tenants\StockLot
- stock(): belongsTo →
stocks - receiving(): belongsTo →
receivings - creator(): belongsTo →
users
subscriptions
모델: App\Models\Tenants\Subscription
- tenant(): belongsTo →
tenants - plan(): belongsTo →
plans - payments(): hasMany →
payments
tax_invoices
모델: App\Models\Tenants\TaxInvoice
- creator(): belongsTo →
users - updater(): belongsTo →
users - reference(): morphTo →
(Polymorphic)
tenants
모델: App\Models\Tenants\Tenant
- plan(): belongsTo →
plans - subscription(): belongsTo →
subscriptions - userTenants(): hasMany →
user_tenants - roles(): hasMany →
roles - userRoles(): hasMany →
user_roles - users(): belongsToMany →
users - files(): morphMany →
files
tenant_field_settings
모델: App\Models\Tenants\TenantFieldSetting
- fieldDef(): belongsTo →
setting_field_defs - optionGroup(): belongsTo →
tenant_option_groups
tenant_option_groups
모델: App\Models\Tenants\TenantOptionGroup
- values(): hasMany →
tenant_option_values
tenant_option_values
모델: App\Models\Tenants\TenantOptionValue
- group(): belongsTo →
tenant_option_groups
tenant_stat_fields
모델: App\Models\Tenants\TenantStatField
- tenant(): belongsTo →
tenants
tenant_user_profiles
모델: App\Models\Tenants\TenantUserProfile
- user(): belongsTo →
users - department(): belongsTo →
departments - manager(): belongsTo →
users
withdrawals
모델: App\Models\Tenants\Withdrawal
- client(): belongsTo →
clients - bankAccount(): belongsTo →
bank_accounts - card(): belongsTo →
cards - creator(): belongsTo →
users
user_invitations
모델: App\Models\UserInvitation
- tenant(): belongsTo →
tenants - role(): belongsTo →
roles - inviter(): belongsTo →
users