Files
AIclinicalresearch/docs/03-业务模块/ADMIN-运营管理端/01-需求分析/02-通用能力层_07-运营与机构管理端PRD_v2.1.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

8.3 KiB
Raw Blame History

憯寡<EFBFBD>敺服I撟喳蝱 - 餈鞱𨯫銝擧㦤<E693A7><E3A6A4><EFBFBD><E681A3>垢 PRD

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗?v2.1
<0A><EFBFBD><E59786><EFBFBD><><E695BA><EFBFBD>?(Ready for Dev)
隡睃<E99AA1>蝥改<E89DA5> P0
<0A><EFBFBD><E79285>嚗?璅<E79285><E288AA><EFBFBD>雿?(Modular Monolith)
<0A>湔鰵<E6B994><EFBFBD>嚗?<3F><EFBFBD><E595A3>𨅯<EFBFBD><F0A885AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E79899>摰帋<E691B0>銝枏<E98A9D><E69E8F><EFBFBD>憿?URL 閫<><E996AB>嚗𤤿<E59A97><F0A4A4BF>𣇉<EFBFBD><F0A38789><EFBFBD>蝵桀<E89DB5>畾萸<E795BE>?

1. 銝𡁜𦛚<F0A1819C>峕艶銝𡡞<E98A9D><EFBFBD><E79899><EFBFBD>?(Context & Requirements)

1.1 銝箔<E98A9D><EFBFBD><E98A8B><EFBFBD>𡁶恣<F0A181B6><E681A3>垢嚗?Why)

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>頂蝏<EFBFBD><EFBFBD>User App嚗㗇糓銝<E7B393>銝芸撩憭抒<E686AD><E68A92><EFBFBD>雿𨀣<E99BBF>撌亙<E6928C>嚗䔶<E59A97><EFBFBD><EFBFBD>碶蛹<E7A2B6><EFBFBD><E79285><E288AA><EFBFBD><EFBFBD><EFBFBD> **SaaS <20><><EFBFBD>鈭批<E988AD>**嚗峕<E59A97>隞祇𢒰銝氯<E98A9D>𦦵恣<F0A6A6B5><E681A3><EFBFBD>蝛算<E89D9B><EFBFBD>

  1. **<2A><EFBFBD>鈭支<E988AD> B 蝡?*嚗𡁜龫<F0A1819C>僭鈭<E583AD>頂蝏<E9A082><E89D8F>蝘睲蜓隞餅<E99A9E>瘜閙<E7989C>韐血噡<E8A180><E599A1><EFBFBD><EFBFBD><EFBFBD>嚗諹晓隡<E69993>僭鈭<E583AD>頂蝏<E9A082><E89D8F><EFBFBD><EFBFBD><E4ADBE>烐綉憿寧𤌍餈𥕦漲<F0A595A6>?
  2. **AI <20>鞉𧋦暺烐<E69ABA>**嚗𡁶撩銋誩<E98A8B><EFBFBD><EFBFBD><E996AB><EFBFBD>?Token 瘨<><E798A8><EFBFBD><E39B96><EFBFBD><E694B9>閙活憭扯<E686AD>璅∩遙<E288A9><E288AA>賢紡<E8B3A2><EFBFBD><E6B8AF><EFBFBD>?
  3. **<2A>𥪜<EFBFBD><F0A5AA9C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗𡁏<E59A97>甈∟<E79488><E2889F>?Prompt嚗<74><E59A97>蝷箄<E89DB7>嚗厰<E59A97><E58EB0><EFBFBD><EFBFBD>㺿隞<E3BABF><E99A9E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>敹恍<E695B9><EFBFBD>摨𥪯葩摨𠹺<E691A8>摰嗅笆 AI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E69390>?

1.2 撌桀<E6928C><E6A180><EFBFBD><EFBFBD>𤫇<EFBFBD>?(Who needs what)

A. 餈鞱𨯫蝞∠<E89D9E>蝡?(Ops) - "銝𠰴<E98A9D><EFBFBD><E996AB>"

  • **<2A>𤤿<EFBFBD>**嚗帋<E59A97><E5B88B>仿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝滨䰻<E6BBA8><EFBFBD><EFBFBD><E988AD>撠煾兝嚗䔶<E59A97><E494B6><EFBFBD>靘踹<E99D98><E8B8B9><EFBFBD><E59581>?
  • **<2A><EFBFBD>霂㗇<E99C82>**嚗?
    • **撘<><E69298>?*嚗𡁶<E59A97><F0A181B6>駁堺/<2F><EFBFBD><EFBFBD><E69298>𡁶<EFBFBD><F0A181B6><EFBFBD><E79880>滨蔭璅<E79285><EFBFBD><E59A97><EFBFBD><EFBFBD><E98A8B><EFBFBD><E99D9A><EFBFBD>?
    • **靚<><E99D9A>**嚗𡁜銁銝齿<E98A9D><E9BDBF>啁鍂<E59581><EFBFBD><E7919E><EFBFBD><EFBFBD>銝页<E98A9D><EFBFBD><E99D9A> AI Prompt<70>?
    • 憌擧綉嚗𡁶<EFBFBD><EFBFBD>?Token 瘨<><E798A8><EFBFBD><EFBFBD><EFBFBD>娍鱏<E5A88D>?

B. <20>駁堺<E9A781><EFBFBD>蝡?(Hospital Admin) - "蝞∩犖銝𡒊恣<F0A1928A>?

  • **<2A>𤤿<EFBFBD>**嚗𡁜龫<F0A1819C><E9BEAB><EFBFBD><EFBFBD><EFBFBD>批之嚗𣬚<E59A97><F0A3AC9A>𠉛<EFBFBD>韐孵<E99F90><E5ADB5>漤𠗕<E6BCA4>?
  • **<2A><EFBFBD>霂㗇<E99C82>**嚗?
    • **<2A><><EFBFBD>敶鍦<E695B6><E98DA6>?*嚗𡁶蒈敶閖△敹<E296B3><EFBFBD>臬龫<E887AC>䌊撌梁<E6928C>憭扳未<E689B3><EFBFBD><E68A92>?Logo嚗䔶<E59A97><E494B6><EFBFBD>𨀣𧋦<F0A880A3><EFBFBD><EFBCB9>𥪜像<F0A5AA9C><EFBFBD><EFBFBD>銝枏<E98A9D><E69E8F><EFBFBD>?
    • **撅<>漣蝞∠<E89D9E>**嚗𡁏<E59A97><F0A1818F>𦦵<EFBFBD>摰手<E691B0>萘恣<E89098><E681A3><EFBFBD><E9BEAB><EFBFBD><EFBFBD><E68692><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗剹<E59A97>?
    • **<2A><EFBFBD><E6BCA4><EFBFBD><EFBFBD>**嚗𡁜<E59A97>韐凋僭<E5878B><E583AD><EFBFBD>?Token 憸嘥漲<E598A5><E6BCB2><EFBFBD>蝏嗘<E89D8F><E59798>𣬚<EFBFBD>摰斗<E691B0>銝芯犖<E88AAF>?

C. <20><EFBFBD><E887AD><EFBFBD>蝡?(Pharma Admin) - "蝞⊿★<E28ABF><EFBFBD><E6A190><EFBFBD><EFBFBD>"

  • **<2A>𤤿<EFBFBD>**嚗䥑IT 憿寧𤌍<E5AFA7><F0A48C8D><EFBFBD><EFBFBD>摰嗅龫<E59785><EFBFBD><EFBD87>唳旿餈𥕦漲銝漤<E98A9D>𤩺<EFBFBD><EFBFBD><E59A97><EFBFBD><E996AB><EFBFBD>拙之<E68B99>?
  • **<2A><EFBFBD>霂㗇<E99C82>**嚗?
    • **<2A><><EFBFBD>摰𡁜<E691B0>**嚗朞晓隡?Logo 敹<><EFBFBD><EFBFBD><E59785><EFBFBD>嚗𣬚泵<F0A3AC9A><E6B3B5><EFBFBD>銝?VI 閫<><E996AB><EFBFBD>?
    • 憿寧𤌍閫<EFBFBD>嚗帋<EFBFBD><EFBFBD>舐恣鈭綽<EFBFBD><EFBFBD>峕糓蝞﹦<EFBFBD>𣈯★<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>臭葩摨羓<EFBFBD>蝛塚<EFBFBD><EFBFBD>?
    • **摰∟恣<E2889F><E681A3><EFBFBD>**嚗𡁏<E59A97><F0A1818F><EFBFBD>雿𨅯<E99BBF>憿餅<E686BF><E9A485>閗蕨嚗㇁udit Log嚗剹<E59A97>?

2. <20><EFBFBD><E8A9A8><EFBFBD><E59786><EFBFBD> (Architecture)

  1. **璅<E79285><E288AA><EFBFBD>雿?嚗𡁶誧蝏剜窒<EFBFBD>?/frontend-v2 <20><EFBFBD><EFBFBD><E99A9E>摨瓐<E691A8><E79390><EFBFBD><EFBFBD>**頝舐眏<E88890><EFBFBD>頧?<EFBFBD><EFBFBD>銝滚<EFBFBD>蝡胯<EFBFBD>?
  2. <EFBFBD>唳旿<EFBFBD>𠉛氖嚗𡁻<EFBFBD><EFBFBD><EFBFBD>𠉛氖嚗ōenant_id嚗剹<EFBFBD>?
  3. <EFBFBD>煺漣<EFBFBD><EFBFBD><EFBFBD>啣漲嚗𡁏𣈲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/靚<><E99D9A><EFBFBD><EFBFBD><EFBFBD>煺漣<E785BA><EFBFBD>雿輻鍂 Draft <20>?Prompt<70>?
  4. **<2A><EFBFBD><E586BD><EFBFBD><EFBFBD>峕葡<E5B395>?*嚗𡁜<E59A97>蝡舀覔<E88880>?URL 頝臬<E9A09D><E887AC>𣇉<EFBFBD><F0A38789>?ID嚗<44>𢆡<EFBFBD><F0A286A1><EFBFBD>頧?CSS <20><EFBFBD><E3979B><EFBFBD><EFBFBD><E3A69B><EFBFBD>皞琜<E79A9E>摰䂿緵<E482BF>𨅯<EFBFBD>鈭箏<E988AD><E7AE8F><EFBFBD><EFBFBD> UI<55>?

3. 閫坿𠧧銝擧<E98A9D><E693A7>𣂷<EFBFBD>蝟?(RBAC v2)

**霈曇恣<E69B87><EFBFBD>**嚗𡁜抅鈭𡒊<E988AD><F0A1928A>瑞掩<E7919E><EFBFBD>Tenant Type嚗匧𢆡<E58CA7><F0A286A1><EFBFBD><EFBFBD><EFBFBD><E8A098><EFBFBD>?

閫坿𠧧 Code 敶鍦<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> URL <20><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>諹提
SUPER_ADMIN 撟喳蝱 <EFBFBD><EFBFBD><EFBFBD>唳旿 /admin <EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠾼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝵柴<EFBFBD><EFBFBD>rompt 靚<><E99D9A>
HOSPITAL_ADMIN <EFBFBD>駁堺蝘<EFBFBD><EFBFBD> <EFBFBD>祇堺<EFBFBD>唳旿 /org/hospital 蝘穃恕蝞∠<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憸嘥<EFBFBD><EFBFBD>?
PHARMA_ADMIN <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>憿寧𤌍 /org/pharma 憿寧𤌍<EFBFBD>烐綉<EFBFBD><EFBFBD>RO 蝞∠<E89D9E><E288A0><EFBFBD>恣霈?
USER 隞餅<EFBFBD><EFBFBD><EFBFBD> 銝芯犖/鋡急<E98BA1><E680A5><EFBFBD><EFBFBD>? /app 蝘𤑳<EFBFBD>銝𡁜𦛚<EFBFBD><EFBFBD>

4. <20><><EFBFBD>摰𡁜<E691B0>銝𦒘<E98A9D>撅䂿蒈敶閗挽霈?(Tenant Branding) [v2.1 <20><EFBFBD>]

4.1 URL 蝑𣇉裦 (URL Strategy)

銝箔<EFBFBD>雿擧<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撅䂿蒈敶閖△嚗屸<EFBFBD><EFBFBD>?頝臬<EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>嚗諹<E59A97><EFBFBD>摮𣂼<E691AE><F0A382BC>齿䲮獢<E4B2AE><E78DA2>?

  • **<2A>𡁶鍂<F0A181B6><EFBFBD>**嚗冴ttps://app.yizhengxun.com/auth/login (<28>曄內憯寡<E686AF>敺芷<E695BA>霈?UI)
  • **銝枏<E98A9D><E69E8F><EFBFBD>**嚗冴ttps://app.yizhengxun.com/t/{tenant_code}/login
    • 蝷箔<EFBFBD>嚗𡁜<EFBFBD>鈭祉妖瘞湔蔬<EFBFBD>駁堺 -> /t/jst-hospital/login
    • 蝷箔<EFBFBD>嚗𡁏<EFBFBD><EFBFBD>𧼮龫<EFBFBD>?-> /t/hengrui/login

4.2 蝘<><E89D98><EFBFBD>滨蔭摮埈挾 (Tenant Config)

<EFBFBD>?platform_schema.tenants 銵函<E98AB5> config JSONB 摮埈挾銝剜<E98A9D>撅蓥誑銝见<E98A9D><E8A781><EFBFBD>

{
"branding": {
"logoUrl": "https://oss.../jst_logo.png", // <20><EFBFBD> Logo (<28>𤩺<EFBFBD><F0A4A9BA>峕艶)
"loginBackgroundUrl": "https://oss.../jst_bldg.jpg", // <20><EFBFBD>憿菔<E686BF><E88F94>臬之<E887AC>? "primaryColor": "#0056b3", // <20><><EFBFBD>銝餉𠧧靚?(蝘舀偌瞏剛<E79E8F>)
"welcomeTitle": "<22>𦯀漪蝘舀偌瞏剖龫<E58996>?AI 銝游<E98A9D>蝘𤑳<E89D98>撟喳蝱", // <20><EFBFBD>憿萄之<E89084><E4B98B><EFBFBD>
"welcomeSubTitle": "<22><EFBFBD><E7AE84>?繚 閫<><E996AB><EFBFBD>?繚 擃䀹<E69383><E480B9>? // <20><EFBFBD>憿萄<E686BF><E89084><EFBFBD><EFBFBD>
}
}

4.3 鈭支<E988AD><EFBFBD><E7989A> (User Flow)

  1. 霈輸䔮嚗𡁶鍂<EFBFBD><EFBFBD><EFBFBD>餃龫<EFBFBD><EFBFBD>蝵煾曎<EFBFBD>?/t/jst-hospital/login<69>?
  2. <EFBFBD>㰘蝸<EFBFBD>滨蔭嚗𡁜<EFBFBD>蝡航圾<EFBFBD>?URL 銝剔<E98A9D> jst-hospital嚗諹<E59A97><E8ABB9><EFBFBD><EFBFBD> API /api/public/tenant-config?code=jst-hospital<61>?
  3. **皜脫<E79A9C>**嚗?
    • <EFBFBD>踵揢暺䁅恕<EFBFBD>峕艶<EFBFBD>曆蛹 loginBackgroundUrl<72>?
    • <EFBFBD>踵揢 "憯寡<E686AF>敺?AI" <20><><EFBFBD>銝?"<22>𦯀漪蝘舀偌瞏剖龫<E58996>?.."<22>?
    • <EFBFBD>踵揢<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Logo<67>?
  4. **<2A><EFBFBD>**嚗𡁶鍂<F0A181B6><EFBFBD><E79181>亥揭<E4BAA5><EFBFBD><E79195><EFBFBD><EFBFBD>?
  5. **餈𥕦<E9A488>蝟餌<E89D9F>**嚗?
    • 頝唾蓮<EFBFBD>?/app/dashboard<72>?
    • <EFBFBD>喲睸<EFBFBD>?*嚗𡁻▲<F0A181BB>典紡<E585B8><EFBFBD> (Global Header) 撌虫<E6928C>閫埝遬蝷?<EFBFBD>駁堺 Logo**嚗諹<E59A97><EFBFBD>撟喳蝱 Logo<67>?
    • Ant Design 銝駁<E98A9D><E9A781>脰䌊<E884B0><EFBFBD><E585B8><EFBCB6>駁堺<E9A781><E5A0BA><EFBFBD><EFBFBD><EFBFBD>?

5. 餈鞱𨯫蝞∠<E89D9E>蝡臬<E89DA1><E887AC>質祕閫?(Super Admin)

*頝舐眏嚗? /admin/*

5.1 蝘<><E89D98>銝𤾸<E98A9D>銝𡁜<E98A9D><F0A1819C>滨蔭 (Provisioning) [<5B>湔鰵]

  • **蝘<><E89D98><EFBFBD><E69298>?*嚗?
    • **<2A><EFBFBD>靽⊥<E99DBD>**嚗𡁜<E59A97>蝘啜<E89D98><E5959C><EFBFBD><EFBFBD>瑚誨<E7919A>?(Code嚗𣬚鍂鈭?URL)<29>?
    • 蝐餃<EFBFBD><EFBFBD>㗇𥋘嚗䥅OSPITAL | PHARMA | JOURNAL<41>?
    • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>滨蔭 (<28><EFBFBD>)嚗帋<E59A97>隡?Logo<67><6F><EFBFBD><EFBFBD>臬㦛嚗諹挽蝵?Slogan<61>?
    • **璅<E79285><E99C88>**嚗𡁜㗲<F0A1819C>?ASL, DC, IIT 蝑剹<E89D91>?
  • **<2A>滨蔭憸<E894AD><E686B8>**嚗𡁜銁<F0A1819C>𤾸蝱<F0A4BEB8>臭誑憸<E8AA91><E686B8>霂亦<E99C82><E4BAA6><EFBFBD><E7919E><EFBFBD>憿菜<E686BF><E88F9C><EFBFBD>?

5.2 Prompt 撌亦<E6928C><E4BAA6>硋像<E7A18B>?(Prompt Ops)

  • **蝻𤥁<E89DBB><F0A4A581>?*嚗鐝arkdown + <20><EFBFBD>擃䀝漁<E4809D>?
  • **<2A>煺漣憸<E6BCA3><E686B8><EFBFBD><E69298>?*嚗𡁜<E59A97><F0A1819C><EFBFBD>嚗𣬚恣<F0A3AC9A><E681A3><EFBFBD><EFBFBD>?/app 蝡舀<E89DA1>雿𨀣𧒄<F0A880A3>芸𢆡<E88AB8>㰘蝸 Draft <20><><EFBFBD>?

5.3 <20>鞉𧋦<E99E89>烐綉 (Cost)

  • **Token 瘞港<E7989E>**嚗帋<E59A97><E5B88B><EFBFBD><E4BAA4>?vs 憸<><E686B8><EFBFBD>?

6. <20><EFBFBD>蝞∠<E89D9E>蝡荔<E89DA1><E88D94>駁堺<E9A781>?(Hospital Admin)

*頝舐眏嚗? /org/hospital/*

*6.1 蝘穃恕銝擧<E98A9D><E693A7>条恣<E69DA1>?

  • **蝘穃恕<E7A983>?*嚗𡁜遣蝡见龫<E8A781><EFBFBD><EFBFBD><EFBFBD><E6B2B2><EFBFBD>?
  • **<2A>𣂼<EFBFBD>蝞∠<E89D9E>**嚗𡁏鸌<F0A1818F>誩紡<E8AAA9>亙龫<E4BA99><E9BEAB><EFBFBD><EFBFBD><EFBFBD>蝘穃恕<E7A983>?

*6.2 蝏讛晶銝𡡞<E98A9D>憸?

  • **<2A><EFBFBD>銝见<E98A9D>**嚗𡁜<E59A97><F0A1819C>?Token 憸嘥漲<E598A5><E6BCB2><EFBFBD>蝏嗵<E89D8F>摰扎<E691B0>?

7. <20><EFBFBD>蝞∠<E89D9E>蝡荔<E89DA1><E88D94><EFBFBD><E887AD>?(Pharma Admin)

*頝舐眏嚗? /org/pharma/*

7.1 憿寧𤌍蝞∠<E89D9E>銝剖<E98A9D>

  • **憿寧𤌍<E5AFA7>𡑒”**嚗𡁏䰻<F0A1818F>𧢲𧋦<F0A7A2B2><EFBFBD><E887AD>𤏸絲<F0A48FB8><E7B5B2><EFBFBD><EFBFBD>?IIT/IST 憿寧𤌍<E5AFA7>?
  • 餈𥕦漲<EFBFBD>烐綉嚗𡁏𦻖<EFBFBD>?IIT Manager Agent <20>唳旿<E594B3>?

*7.2 <20><><EFBFBD>銝𤾸恣霈?

  • <EFBFBD><EFBFBD>摰∟恣嚗𡁏䰻<EFBFBD>𧢲㺭<EFBFBD>桐耨<EFBFBD><EFBFBD>餈嫘<EFBFBD>?

8. 蝏煺<E89D8F><E785BA><EFBFBD>銝舘楝<E88898><EFBFBD><E58B97>?(Unified Entry)

8.1 <20><EFBFBD>頝舐眏蝑𣇉裦

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣂼<EFBFBD><EFBFBD>𠬍<EFBFBD><EFBFBD>滨垢<EFBFBD>寞旿 user.role <20>?tenant.type 餈𥡝<E9A488>頝唾蓮嚗? function getRedirectPath(user, tenant) {
if (user.role === 'SUPER_ADMIN') return '/admin/dashboard';

if (user.role === 'TENANT_ADMIN') {
if (tenant.type === 'HOSPITAL') return '/org/hospital/dashboard';
if (tenant.type === 'PHARMA') return '/org/pharma/dashboard';
}

if (tenant.type === 'JOURNAL') return '/app/rvw/dashboard';

return '/app/dashboard';
}

9. <20><><EFBFBD><EFBFBD><E887AC><EFBFBD><E59597>?(Technical Specs)

9.1 <20>唳旿摨?Schema <20>䀹凒

-- platform_schema.tenants
ALTER TABLE tenants
ADD COLUMN code VARCHAR(50) UNIQUE, -- 蝘<><E89D98><EFBFBD><E99A9E> (憒?jst-hospital)
ADD COLUMN type VARCHAR(20) NOT NULL DEFAULT 'HOSPITAL',
ADD COLUMN config JSONB DEFAULT '{}';
-- config <20><>鉄 branding: { logoUrl, loginBackgroundUrl, ... }

-- platform_schema.users
ALTER TABLE users
ADD COLUMN department VARCHAR(100);

9.2 API <20>亙藁<E4BA99><EFBFBD>

  • GET /api/public/tenant-config?code={code}
    • **<2A><><EFBFBD>**嚗𡁏<E59A97><F0A1818F><EFBFBD><EFBFBD><EFBFBD> (Public)<29>?
    • **<2A><EFBFBD>**嚗𡁏覔<F0A1818F><EFBFBD><E6A183>瑚誨<E7919A><E8AAA8><EFBFBD><EFBFBD>𧼮<EFBFBD><F0A7BCAE><EFBFBD>蝵桐縑<E6A190><EFBFBD><E88D94><EFBFBD><EFBFBD>蘨餈𥪜<E9A488> UI <20><EFBFBD><E8A9A8><EFBFBD><EFBFBD><EFBFBD>?

9.3 <20>滨垢<E6BBA8><EFBFBD>蝏𤘪<E89D8F>

src/modules/
<0A><EFBFBD><E98EBF><EFBFBD> auth/
<0A>? <20><EFBFBD><E98EBF><EFBFBD> LoginPage.tsx # <20>𡁶鍂<F0A181B6><EFBFBD>憿? <0A>? <20><EFBFBD><E98EBF><EFBFBD> TenantLoginPage.tsx # <20><EFBFBD><E586BD><EFBFBD><EFBFBD>銝枏<E98A9D><E69E8F><EFBFBD>憿?(頝舐眏 /t/:code/login)
<0A><EFBFBD><E98EBF><EFBFBD> admin/ # 餈鞱𨯫蝞∠<E89D9E>蝡? <0A><EFBFBD><E98EBF><EFBFBD> org/ # <20><EFBFBD>蝞∠<E89D9E>蝡? <0A><EFBFBD><E5A999><EFBFBD> ...

10. 摰墧鴌頝舐瑪<E88890>?(Roadmap v2.1)

  • P0 (Week 1):
    • DB Schema <20>䀹凒嚗<E58792><E59A97><EFBFBD>?Tenant Code, Config嚗剹<E59A97>?
    • 摰䂿緵 /api/public/tenant-config <20>亙藁<E4BA99>?
    • <EFBFBD><EFBFBD>?TenantLoginPage 蝏<>辣嚗<E8BEA3><E59A97><EFBFBD>啣𢆡<E595A3><F0A286A1><EFBFBD><EFBFBD>?
  • P1 (Week 2):
    • 餈鞱𨯫蝡臬<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD><EFBFBD>蝵栽<EFBFBD>肽”<EFBFBD>𤏪<EFBFBD>銝𠹺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?OSS嚗剹<E59A97>?
    • 摰䂿緵<EFBFBD><EFBFBD> Header <20>寞旿敶枏<E695B6><E69E8F><EFBFBD> Tenant <20>芸𢆡<E88AB8><F0A286A1>揢 Logo<67>?
  • P2 (Week 3):
    • 摰䂿緵 /org/hospital <20><EFBFBD><E7AE87><EFBFBD><EFBFBD>