Skip to main content

Eloquent Models

All ~96 models grouped by domain namespace. Each model maps to one database table from the schema changes document. Table names follow Laravel's snake_case plural convention. Models are namespaced under App\Models\{Domain}\.


Core Patterns Applied Across Models

Tenant scoping: All firm-scoped models apply TenantScope global scope automatically.

Append-only: Financial models register AppendOnlyObserver in their booted() method. INSERT is allowed, UPDATE and DELETE throw AppendOnlyViolationException.

Soft deletes: Seven models use Laravel's SoftDeletes trait (see schema changes §5).


App\Models\Auth

ModelTableNotes
UserusersLaravel Authenticatable. Has many FirmUserProfile, ClientUser, PartnerAttorneyUser.

App\Models\Firm

ModelTableNotes
LawFirmlaw_firmsImplements HasTenants. Tenant anchor.
FirmUserProfilefirm_user_profilesBelongsTo User, BelongsTo LawFirm. SoftDeletes.
LawyerLicenselawyer_licensesBelongsTo FirmUserProfile.
OrgUnitorg_unitsSelf-referential parent/children.
PositionpositionsBelongsTo OrgUnit.
CategoryDimensioncategory_dimensionsLookup table.
PositionCategoryposition_categoriesBelongsTo Position.
UserPositionuser_positionsPivot with started_at, ended_at.
UserOrgUnituser_org_unitsPivot.
ReportingLinereporting_linesBelongsTo FirmUserProfile (manager + report).
SpecialtyspecialtiesLookup table.
FirmUserSpecialtyfirm_user_specialtiesPivot.
LocalelocalesLookup table.
UserProfileTranslationuser_profile_translationsBelongsTo FirmUserProfile.

App\Models\Matter

ModelTableNotes
MattermattersSoftDeletes. BelongsTo LawFirm. Global TenantScope.
MatterBudgetmatter_budgetsBelongsTo Matter.
MatterAttorneyRoleTypematter_attorney_role_typesLookup.
MatterPartyRoleTypematter_party_role_typesLookup.
MatterFirmRoleTypematter_firm_role_typesLookup.
MatterAttorneymatter_attorneysPivot with role_type_id.
MatterClientmatter_clientsPivot with role_type_id.
MatterPartnerAttorneymatter_partner_attorneysPivot.
MatterPartnerFirmmatter_partner_firmsPivot.
MatterBillingSettingmatter_billing_settingsBelongsTo Matter.
MatterRatePlanSelectionmatter_rate_plan_selectionsBelongsTo Matter.
MatterPartnerRateSelectionmatter_partner_rate_selectionsBelongsTo Matter.

App\Models\Client

ModelTableNotes
ClientclientsSoftDeletes. BelongsTo LawFirm.
ClientContactclient_contactsBelongsTo Client.
ClientUserclient_usersLinks User to ClientContact. Portal auth record.
ClientRatePlanSelectionclient_rate_plan_selectionsBelongsTo Client.

App\Models\Partner

ModelTableNotes
PartnerFirmpartner_firmsSoftDeletes. BelongsTo LawFirm.
PartnerFirmContactpartner_firm_contactsBelongsTo PartnerFirm.
PartnerAttorneypartner_attorneysSoftDeletes. BelongsTo PartnerFirm.
PartnerAttorneyUserpartner_attorney_usersLinks User to PartnerAttorney. Portal auth record.
FirmPartnerRelationshipfirm_partner_relationshipsBelongsTo LawFirm, BelongsTo PartnerFirm.
FirmPartnerAgreementfirm_partner_agreementsBelongsTo FirmPartnerRelationship.
FirmPartnerRateCardfirm_partner_rate_cardsBelongsTo FirmPartnerRelationship.
FirmPartnerJurisdictionfirm_partner_jurisdictionsBelongsTo FirmPartnerRelationship.

App\Models\RBAC

ModelTableNotes
PermissionpermissionsSystem-defined. code is unique.
RolerolesHasMany RolePermission.
RolePermissionrole_permissionsPivot with fields_mode, fields, condition_json.
UserRoleAssignmentuser_role_assignmentsBelongsTo User, BelongsTo Role. Temporal (starts_at, ends_at).
ResourceTyperesource_typesLookup. PK is code string.
ResourceSubtyperesource_subtypesBelongsTo ResourceType.
ResourceAccessGrantresource_access_grantsPolymorphic ACL. BelongsTo User.

App\Models\Billing

ModelTableNotes
BillingActivityCodebilling_activity_codesLookup.
ExpenseCategoryexpense_categoriesLookup.
FirmTaxRatefirm_tax_ratesBelongsTo LawFirm. Temporal.
LawyerRatePlanlawyer_rate_plansBelongsTo LawFirm.
LawyerRatePlanRatelawyer_rate_plan_ratesBelongsTo LawyerRatePlan.
PartnerRatePlanpartner_rate_plansBelongsTo LawFirm.
PartnerRatePlanRatepartner_rate_plan_ratesBelongsTo PartnerRatePlan.
LawyerTimeEntrylawyer_time_entriesAppend-only. BelongsTo Matter, BelongsTo FirmUserProfile.
PartnerTimeEntrypartner_time_entriesAppend-only. BelongsTo Matter.
ExpenseEntryexpense_entriesAppend-only. BelongsTo Matter.

App\Models\Invoicing

ModelTableNotes
InvoiceinvoicesAppend-only. BelongsTo Matter.
InvoiceLineIteminvoice_line_itemsAppend-only. BelongsTo Invoice.
CreditNotecredit_notesBelongsTo Invoice.
CreditNoteLinecredit_note_linesBelongsTo CreditNote.
CreditNoteAllocationcredit_note_allocationsBelongsTo CreditNote, BelongsTo Invoice.
PaymentMethodpayment_methodsBelongsTo LawFirm.
PaymentpaymentsAppend-only. BelongsTo Invoice.
PaymentAllocationpayment_allocationsBelongsTo Payment, BelongsTo Invoice.
PaymentEventpayment_eventsAppend-only. Event log for Payment.
PartnerBillpartner_billsBelongsTo PartnerFirm.
PartnerBillLinepartner_bill_linesBelongsTo PartnerBill.

App\Models\ERP

ModelTableNotes
ErpExportQueueerp_export_queueBelongsTo LawFirm. Pending ERP posting records.
ErpAccountMappingerp_account_mappingsBelongsTo LawFirm.
ErpPostingRuleerp_posting_rulesBelongsTo LawFirm.
VendorvendorsBelongsTo LawFirm.
FirmOpexfirm_opexBelongsTo LawFirm.

App\Models\HR

ModelTableNotes
PerformanceCycleperformance_cyclesBelongsTo LawFirm.
PerformanceMetricperformance_metricsBelongsTo PerformanceCycle.
PerformanceReviewperformance_reviewsBelongsTo FirmUserProfile.
PerformanceReviewMetricperformance_review_metricsPivot.
BonusPlanbonus_plansBelongsTo LawFirm.
BonusAwardbonus_awardsBelongsTo BonusPlan, BelongsTo FirmUserProfile.
BonusAwardRevisionbonus_award_revisionsAppend-only revision history for BonusAward.

App\Models\Content

ModelTableNotes
ArticlearticlesBelongsTo LawFirm. Many-to-many Specialty.
ArticleTranslationarticle_translationsBelongsTo Article.

App\Models\Appointment

ModelTableNotes
AppointmentappointmentsBelongsTo Matter.
AppointmentAttendeeappointment_attendeesPivot.
AppointmentNoteappointment_notesBelongsTo Appointment.
AppointmentConsentappointment_consentsBelongsTo Appointment.
AppointmentEventappointment_eventsAppend-only. Status change log.

Standalone Models

ModelTableNotes
DocumentdocumentsSoftDeletes. BelongsTo Matter. Uses Media Library.
CommentcommentsPolymorphic commentable.
SupportAccessSessionsupport_access_sessionsBelongsTo User (admin).
AdminResourceLockadmin_resource_locksPolymorphic lockable.