- /me 라우트를 /{userId} 와일드카드보다 먼저 정의
- auth:sanctum 미들웨어 그룹으로 분리
- LOGICAL_RELATIONSHIPS.md 타임스탬프 업데이트
14 KiB
논리적 데이터베이스 관계 문서
자동 생성: 2025-12-18 19:32:06 소스: Eloquent 모델 관계 분석
📊 모델별 관계 현황
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
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
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
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 - userTenant(): hasOne →
user_tenants - userTenantById(): hasOne →
user_tenants - 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
clients
모델: App\Models\Orders\Client
- clientGroup(): belongsTo →
client_groups - orders(): hasMany →
orders
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
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_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
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
cards
모델: App\Models\Tenants\Card
- assignedUser(): belongsTo →
users - creator(): belongsTo →
users - updater(): 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
- bankAccount(): belongsTo →
bank_accounts
leaves
모델: App\Models\Tenants\Leave
- user(): belongsTo →
users - approver(): belongsTo →
users - creator(): belongsTo →
users - updater(): belongsTo →
users
leave_balances
모델: App\Models\Tenants\LeaveBalance
- user(): belongsTo →
users
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
- withdrawal(): belongsTo →
withdrawals
sales
모델: App\Models\Tenants\Sale
- deposit(): belongsTo →
deposits
setting_field_defs
모델: App\Models\Tenants\SettingFieldDef
- tenantSettings(): hasMany →
tenant_field_settings
sites
모델: App\Models\Tenants\Site
- creator(): belongsTo →
users - updater(): belongsTo →
users
subscriptions
모델: App\Models\Tenants\Subscription
- tenant(): belongsTo →
tenants - plan(): belongsTo →
plans - payments(): hasMany →
payments
tax_invoices
모델: App\Models\Tenants\TaxInvoice
- 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
- bankAccount(): belongsTo →
bank_accounts