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%)
8.3 KiB
憯寡<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>
- **<2A>䭾<EFBFBD>鈭支<E988AD> B 蝡?*嚗𡁜龫<F0A1819C>V僭鈭<E583AD>頂蝏<E9A082><E89D8F>蝘睲蜓隞餅<E99A9E>瘜閙<E7989C>韐血噡<E8A180><E599A1><EFBFBD><EFBFBD>餌<EFBFBD>嚗諹晓隡<E69993>僭鈭<E583AD>頂蝏<E9A082><E89D8F><EFBFBD>䭾<EFBFBD><E4ADBE>烐綉憿寧𤌍餈𥕦漲<F0A595A6>?
- **AI <20>鞉𧋦暺烐<E69ABA>**嚗𡁶撩銋誩<E98A8B>撅<EFBFBD>閫<EFBFBD><E996AB><EFBFBD>?Token 瘨<><E798A8>㛖<EFBFBD><E39B96>改<EFBFBD><E694B9>閙活憭扯<E686AD>璅∩遙<E288A9>∪虾<E288AA>賢紡<E8B3A2>港<EFBFBD><E6B8AF>麄<EFBFBD>?
- **<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>a<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>Z䌊撌梁<E6928C>憭扳未<E689B3>抒<EFBFBD><E68A92>?Logo嚗䔶<E59A97><E494B6>售<EFBFBD>𨀣𧋦<F0A880A3>Y<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>g<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)
- **璅∪<E79285><E288AA>硋<EFBFBD>雿?嚗𡁶誧蝏剜窒<EFBFBD>?/frontend-v2 <20>蓥<EFBFBD>隞<EFBFBD><E99A9E>摨瓐<E691A8><E79390><EFBFBD>朞<EFBFBD>**頝舐眏<E88890>鍦<EFBFBD>頧?<EFBFBD>箏<EFBFBD>銝滚<EFBFBD>蝡胯<EFBFBD>?
- <EFBFBD>唳旿<EFBFBD>𠉛氖嚗𡁻<EFBFBD>餉<EFBFBD><EFBFBD>𠉛氖嚗ōenant_id嚗剹<EFBFBD>?
- <EFBFBD>煺漣<EFBFBD>臬<EFBFBD><EFBFBD>啣漲嚗𡁏𣈲<EFBFBD><EFBFBD>恣<EFBFBD><EFBFBD><EFBFBD>/靚<><E99D9A><EFBFBD><EFBFBD>銁<EFBFBD>煺漣<E785BA>臬<EFBFBD>雿輻鍂 Draft <20>?Prompt<70>?
- **<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>T<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)
- 霈輸䔮嚗𡁶鍂<EFBFBD>瑞<EFBFBD><EFBFBD>餃龫<EFBFBD>W<EFBFBD>蝵煾曎<EFBFBD>?/t/jst-hospital/login<69>?
- <EFBFBD>㰘蝸<EFBFBD>滨蔭嚗𡁜<EFBFBD>蝡航圾<EFBFBD>?URL 銝剔<E98A9D> jst-hospital嚗諹<E59A97><E8ABB9>典<EFBFBD>撘<EFBFBD> API /api/public/tenant-config?code=jst-hospital<61>?
- **皜脫<E79A9C>**嚗?
- <EFBFBD>踵揢暺䁅恕<EFBFBD>峕艶<EFBFBD>曆蛹 loginBackgroundUrl<72>?
- <EFBFBD>踵揢 "憯寡<E686AF>敺?AI" <20><><EFBFBD>銝?"<22>𦯀漪蝘舀偌瞏剖龫<E58996>?.."<22>?
- <EFBFBD>踵揢<EFBFBD>餃<EFBFBD>獢<EFBFBD><EFBFBD><EFBFBD>寧<EFBFBD> Logo<67>?
- **<2A>餃<EFBFBD>**嚗𡁶鍂<F0A181B6>瑁<EFBFBD><E79181>亥揭<E4BAA5>瑕<EFBFBD><E79195><EFBFBD><EFBFBD>?
- **餈𥕦<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>V蛹<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>霈a<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>Y<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>