feat(client,setting): complete Phase 2 with partitioned client_follow_logs

- apps/client (11 models): Client, ClientContact, ClientRequirement,
  ClientSchoolPreference, ClientFollowLog (partitioned),
  ClientFollowLogAttachment, ClientViewing, ClientPropertyMatch,
  ClientStatusLog, ClientFavoriteFolder, ClientFolderItem
- apps/client/0002 RunSQL: PARTITION BY RANGE(created_at) for
  client_follow_logs + monthly partitions + default; triggers
  update_client_last_follow + update_client_viewing_progress;
  partial unique index on client_no WHERE deleted_at IS NULL
- apps/setting (4 models): LookupGroup, LookupItem, TenantSetting,
  FieldRequirementRule (tenant schema only per spec)

manage.py check green; all 9 Phase 2 apps complete.
This commit is contained in:
Sisyphus
2026-04-29 17:33:58 +08:00
parent 5b55dda367
commit ed40de4050
12 changed files with 1266 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
from .contacts import ClientContact, ClientRequirement, ClientSchoolPreference
from .core import Client
from .folders import ClientFavoriteFolder, ClientFolderItem
from .follow import ClientFollowLog, ClientFollowLogAttachment
from .viewing_match import (
ClientPropertyMatch,
ClientStatusLog,
ClientViewing,
)
__all__ = [
"Client",
"ClientContact",
"ClientRequirement",
"ClientSchoolPreference",
"ClientFollowLog",
"ClientFollowLogAttachment",
"ClientViewing",
"ClientPropertyMatch",
"ClientStatusLog",
"ClientFavoriteFolder",
"ClientFolderItem",
]