0. Meta-Prompt (For AI Agent) New
You are now acting as:
Senior Backend Architect & Laravel Expert (10+ years of experience)
TASK:
Build the complete "Lensnara SCM v1" project from scratch, 100% based on the specification document at
STRICT CONSTRAINTS (μ λ μλ° λΆκ°):
1. NO deviations from the "SCM Master" policy
β λͺ¨λ κΈ°λ₯, ν
μ΄λΈ ꡬ쑰, λΉμ¦λμ€ λ‘μ§, κΈ°μ μ€ν, κ°λ° μΌμ μ κΈ°νμμ 100% μΌμΉν΄μΌ ν¨
β κΈ°νμμ μλ κΈ°λ₯μ μ λ μΆκ°νμ§ λ§ κ²
2. MUST use PHP 8.4 modern features
β Typed properties, readonly classes, readonly properties, enums, attributes, match expressions, first-class callable syntax λ± μ κ·Ή νμ©
β λͺ¨λ ν΄λμ€, DTO, Value Objectλ PHP 8.4 μ€νμΌλ‘ μμ±
3. STRICTLY follow the exact Directory Structure defined in κΈ°νμ Section 4
β app/Domains/, app/Adapters/, app/DTOs/, app/Services/ λ± κΈ°νμμ λͺ
μλ ꡬ쑰 κ·Έλλ‘ μ¬μ©
β λ€μμ€νμ΄μ€λ λμΌνκ²
4. IMPLEMENT functionality Phase by Phase exactly as defined in κΈ°νμ Section 5 (6λ¨κ³)
β 1λ¨κ³ β 2λ¨κ³ β 3λ¨κ³ β 4λ¨κ³ β 5λ¨κ³ β 6λ¨κ³ μμλ‘λ§ μ§ν
β μ΄μ λ¨κ³κ° 100% μλ£λκ³ κ²μ¦λ νμλ§ λ€μ λ¨κ³λ‘ λμ΄κ°
β κ° λ¨κ³κ° λλ λλ§λ€ "Phase X μλ£"λΌκ³ λͺ
νν νμνκ³ , λ€μ λ¨κ³λ₯Ό μμ
μΆκ° κΈ°μ μꡬμ¬ν:
- λͺ¨λ λΉμ¦λμ€ λ‘μ§μ Service ν΄λμ€ + Event/Listener + Queue Job ννλ‘ κ΅¬ν
- μ¬κ³ κ΄λ ¨ λͺ¨λ λ‘μ§μ DB νΈλμμ
+ Lock(forUpdate) νμ
- FIFO μΆκ³ λ μ
κ³ μΌμ κΈ°μ€ μ€λ¦μ°¨μ μ νν 보μ₯
μμ λͺ
λ Ήμ΄:
"Phase 1 μμν΄μ€" λΌκ³ λ§νλ©΄ λ°λ‘ 1λ¨κ³λΆν° μ°¨λ‘λλ‘ μμ±ν΄ μ£ΌμΈμ.
κ° λ¨κ³λ§λ€ μ½λ, λ§μ΄κ·Έλ μ΄μ
, μ€μ νμΌκΉμ§ μ λΆ ν¬ν¨ν΄μ μΆλ ₯νκ³ ,
λ§ν¬λ€μ΄ μ½λ λΈλ‘ + νμΌ κ²½λ‘λ₯Ό μ νν νμν΄ μ£ΌμΈμ.
νλ‘μ νΈ μ 보
- νλ‘μ νΈλͺ
: λ μ¦λλΌ SCM
- μ½λλͺ
: Melon
1. μ루μ
κ°μ (Solution Overview)
1.1 μ루μ
λͺ©μ
Lensnara SCMμ λ€μ±λ μ£Όλ¬Έ λ° μ¬κ³ λ₯Ό μ€μμμ ν΅ν© κ΄λ¦¬νμ¬ ν¨μ¨μ±μ κ·Ήλννλ κ²μ λͺ©μ μΌλ‘ ν©λλ€.
1.2 μ£Όμ λͺ©ν
- μ μ¬μ μμ κ΄λ¦¬: μ
κ³ , μΆκ³ , μ¬κ³ μ ν΅ν© κ΄λ¦¬
- μλνλ μ£Όλ¬Έ μ²λ¦¬: μ¬λ¬ νλ§€ μ±λμ μ£Όλ¬Έ μμ§ λ° μλ μ²λ¦¬
- μ€μκ° μ¬κ³ λκΈ°ν: μ¨/μ€νλΌμΈ μ±λ κ° μ¬κ³ λΆμΌμΉ μ΅μν
- λ°μ΄ν° κΈ°λ° μμ¬κ²°μ : νλ§€ λ°μ΄ν° λΆμμ ν΅ν λ°μ£Ό μμΈ‘
1.3 μ΄μ λμμΉ (Grand Principles) New
"SCMμ μΌνλͺ°μ μ£Όλ¬Έμλ§ μμ§νκ³ , μ¬κ³ μ κΈ°μ€μ SCMμ λ°λ₯Έλ€."
(μΌνλͺ° μ¬κ³ λ SCMμμ κ³μ°λ μλμ λ¨λ°©ν₯μΌλ‘ λκΈ°νν¨)
2. ν΅μ¬ κΈ°λ₯ (Key Features)
2.1 μν κ΄λ¦¬
- μν λ§μ€ν° κ΄λ¦¬ (λ±λ‘/μμ /μμ )
- λ°μ½λ λ° SKU κ΄λ¦¬ (μμ¬λͺ°/μ€νλ§μΌ λ§€ν)
- μμ μ¬κ³ μ€μ λ° κ΄λ¦¬
2.2 μ¬κ³ κ΄λ¦¬ ν΅μ¬
- μ€μκ° μ¬κ³ νν© (μ°½κ³ λ³/μμΉλ³)
- μ
/μΆκ³ μ΄λ ₯ μΆμ (Audit Log)
- μ¬κ³ μ€μ¬(Physical Count) κΈ°λ₯
- μ±λλ³ μ¬κ³ ν λΉ(Allocation) κΈ°λ₯
2.3 μ£Όλ¬Έ κ΄λ¦¬ ν΅μ¬
- μ£Όλ¬Έ μμ§ (API μ°λ/μμ
μ
λ‘λ)
- μ£Όλ¬Έ μν κ΄λ¦¬ (κ²°μ μλ£ β λ°°μ‘μ€λΉ β λ°°μ‘μ€)
- μ‘μ₯ λ²νΈ μλ νμ λ° λκΈ°ν
- CS λ° λ°ν/κ΅ν μ²λ¦¬
2.4 λμ보λ/ν΅κ³
- μΌλ³/μλ³ μ£Όλ¬Έ νν©
- μ¬κ³ λΆμ‘± μλ¦Ό
- νλ§€λ λΆμ λ° λ¦¬ν¬νΈ
- κΈ°κ°λ³/μνλ³ λ§€μΆ ν΅κ³
- μ μ λ°μ£Όλ μΆμ² μμ€ν
2.5 μμ€ν
κ΄λ¦¬ (System) New
- μ¬μ©μ κ³μ λ° κΆν κ΄λ¦¬ (ACL)
- κ³΅ν΅ μ½λ λ° κΈ°μ΄ λ°μ΄ν° κ΄λ¦¬
- μμ€ν
λ‘κ·Έ λ° μ μ μ΄λ ₯ λͺ¨λν°λ§
3. κΈ°μ μ€ν (Tech Stack)
| κ΅¬λΆ |
κΈ°μ |
μμΈ/λ²μ |
| Styling |
Tailwind CSS |
v4.1.17 (Bleeding Edge) Installed |
| Backend |
PHP / Laravel |
PHP 8.4, Laravel 12.41.1 (Bleeding Edge) Installed |
| Admin Panel |
FilamentPHP |
v3.2.x Stable Downgraded |
| DB |
MariaDB |
12.1.2 stable (νΈλμμ
κ°ν) Update |
| OS / Infra |
Linux / Docker |
Ubuntu 24.04, Docker Compose v5.0.x Update |
4. μμ€ν
μ€κ³ λ° λ°μ΄ν°λ² μ΄μ€ (System Design & DB)
4.1 λλ ν 리 ꡬ쑰 (Directory Structure) New
κΈ°νμμ ν΅μ¬ μꡬμ¬νμ λ°μν λλ©μΈ μ£Όλ μ€κ³(DDD) κΈ°λ° λλ ν 리 ꡬ쑰μ
λλ€.
app/
βββ Domains/
β βββ Inventory/ <-- [SCM Masterμ ν΅μ¬ (μ¬κ³ κΆν 100%)]
β β βββ Models/
β β β βββ Inventory.php
β β β βββ InventoryAllocation.php
β β β βββ SalesChannel.php
β β βββ DTOs/
β β β βββ InboundRequestDto.php
β β β βββ AllocationResultDto.php
β β β βββ OutboundRequestDto.php
β β βββ Services/
β β β βββ AllocationService.php (μλ λΆλ°° λ‘μ§)
β β β βββ FifoReleaseService.php (FIFO μμ½ μΆκ³ )
β β β βββ PhysicalCountService.php (μ€μ¬ λ‘μ§)
β β βββ Observers/
β β β βββ InventoryObserver.php (μ
κ³ κ°μ§ λ° λΆλ°° νΈλ¦¬κ±°)
β β βββ Events/
β β βββ InventoryReceived.php
β β βββ AllocationCompleted.php
β βββ Order/
β βββ Models/
β β βββ Order.php
β βββ DTOs/
β βββ Services/
β βββ OrderSyncService.php (μ£Όλ¬Έ λκΈ°ν λ° λ‘컬λͺ¨λ μ²λ¦¬)
βββ Adapters/ <-- [μΈλΆλͺ° μ°λ 격리]
β βββ Contracts/
β β βββ ChannelAdapterInterface.php (νμ€ κ·κ²© μ μ)
β βββ mitunolens
β β βββ mitunolensAdapter.php
β βββ sensmania
β β βββ sensmaniaAdapter.php
β βββ geeenie
β βββ geeenieAdapter.php
βββ Http/
βββ Controllers/
βββ Api/
βββ WebhookController.php (λͺ¨λ μΌνλͺ° κ³΅ν΅ μ§μ
μ )
4.2 λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ (Database Schema)
SCMμ ν΅μ¬ λ°μ΄ν° λͺ¨λΈ μ μ
4.2.1 users (μ¬μ©μ λ° κΆν) System
| Field |
Type |
Description |
| id |
INT |
PK |
| username |
VARCHAR |
μμ΄λ (Unique) |
| password |
VARCHAR |
λΉλ°λ²νΈ (Hash) |
| role |
ENUM |
κΆν (ADMIN, MANUFACTURER, STAFF) |
4.2.2 products (μν λ§μ€ν°) Master
| Field |
Type |
Description |
| id |
INT |
PK |
| code |
VARCHAR |
μνμ½λ (Unique) |
| name |
VARCHAR |
μνλͺ
|
| price_in/out |
DECIMAL |
μ
κ³ κ°/μΆκ³ κ° |
| safety_stock |
INT |
μμ μ¬κ³ |
4.2.3 inventory (μ¬κ³ - λ§μ€ν°) Master
| Field |
Type |
Description |
| id |
BIGINT |
PK |
| product_id |
INT |
μν ID (FK) |
| quantity |
INT |
μ€μ 물리 μ¬κ³ (Total) |
| location |
VARCHAR |
λ¬Όλ₯ μμΉ |
4.2.4 sales_channels (νλ§€ μ±λ κ΄λ¦¬) New
| Field |
Type |
Note |
| id |
INT |
PK |
| name |
VARCHAR |
μ±λλͺ
(μ: λ―ΈμΈ λ
Έ, λ μ¦λλΌ) |
| code |
VARCHAR |
μμ€ν
μ½λ |
| api_key |
TEXT |
API μ°λ ν€ |
4.2.5 inventory_allocations (μ±λλ³ μ¬κ³ ν λΉ) New
| Field |
Type |
Note |
| inventory_id |
BIGINT |
μ¬κ³ ID |
| channel_id |
INT |
μ±λ ID |
| allocated_qty |
INT |
μ±λ ν λΉ μλ (νλ§€ κ°λ₯) |
| reserved_qty |
INT |
μ£Όλ¬Έ μμ½ μλ (μΆκ³ λκΈ°) |
4.2.6 orders (μ£Όλ¬Έ μ 보) ν΅μ¬
| Field |
Type |
Note |
| id |
BIGINT |
PK |
| order_number |
VARCHAR |
μ£Όλ¬Έ λ²νΈ (Unique) |
| site_name |
VARCHAR |
μ£Όλ¬Έ μ±λλͺ
|
| status |
ENUM |
μ£Όλ¬Έ μν (0:μ
κΈμ , 1:μ
κΈμλ£, 9:λ°μ‘μ€λΉ, 2:μνμ€λΉ, 3:λ°μ‘μλ£, 88:μ·¨μ) |
| total_amount |
DECIMAL |
κ²°μ κΈμ‘ |
4.2.7 order_items (μ£Όλ¬Έ μμΈ)
| Field |
Type |
Note |
| id |
INT |
PK |
| order_id |
INT |
μ£Όλ¬Έ ID (FK) |
| product_id |
INT |
μν ID (FK) |
| quantity |
INT |
μ£Όλ¬Έ μλ |
| price |
DECIMAL |
λ¨κ° |
4.2.8 stock_logs (μ¬κ³ μ΄λ ₯) Log
| Field |
Type |
Note |
| id |
INT |
PK |
| product_id |
INT |
μν ID |
| type |
ENUM |
μ ν (IN/OUT/ADJUST) |
| quantity |
INT |
λ³λ μλ |
| reason |
VARCHAR |
μ¬μ |
5. ν΅μ¬ λΉμ¦λμ€ λ‘μ§ (μμΈ)
5.1 μ μ μμλ μ°μΆ
- μ΅κ·Ό 3κ°μ νκ· νλ§€λ κΈ°λ° μμ μ¬κ³ (Safety Stock) μλ μ°μΆ
- Lead Time(μ
κ³ μμ μκ°)μ κ³ λ €ν λ°μ£Ό μμ (Reorder Point) μλ¦Ό
- κ³μ μ± μ§μ(Seasonality) λ°μ μ΅μ
5.2 λ°μ΄ν° λκΈ°ν μ μ±
(Data Sync Policy) New
- μ£Όλ¬Έ μμ§: λ§€ 10λΆ μ£ΌκΈ° μ€ν (Cron Batch)
- μ¬κ³ μ μ‘: λ³λ λ°μ μ¦μ (Event Driven) μ€μκ° μ μ‘
- μ‘μ₯ μ μ‘: λ§€ 1μκ° μ£ΌκΈ° μ€ν (API Push)
- κ°μ λκΈ°ν: κ΄λ¦¬μ μλ Trigger μ§μ (Full Sync)
6. 보μ λ° μΈμ¦ (Security & Auth) New
6.1 μΈμ¦ (Authentication)
- μμ€ν
: Laravel Sanctum + Filament κΈ°λ³Έ λ‘κ·ΈμΈ
- ꡬν: API μμ²(Bearer Token), κ΄λ¦¬μ ν¨λ(Filament Guard)
6.2 κΆν κ΄λ¦¬ (Authorization)
- λ°©μ: Filament Shield λλ Policy μ¬μ©
- κΆν λ¨κ³: κ΄λ¦¬μ(Admin), μ°½κ³ λ΄λΉμ(Manager), λ·°μ΄(Viewer)
7. ν
μ€νΈ λ° μμΈ μ²λ¦¬ (Testing) New
7.1 ν
μ€νΈ μ λ΅
- νλ μμν¬: PHPUnit κΈ°λ° Pest (κ°λ
μ±/μ μ§λ³΄μ)
- λͺ©ν 컀λ²λ¦¬μ§: ν΅μ¬ λ‘μ§ 100% (μ¬κ³ , μ£Όλ¬Έ), μ 체 90% μ΄μ
7.2 μμΈ μ²λ¦¬ (Exception Handling)
- Global Handler:
App\Exceptions\Handlerμμ νμ€νλ JSON λ³ν
- Business Exception:
InsufficientStockException λ± μ»€μ€ν
μμΈ μ μ
8. μμ€ν
λ€μ΄μ΄κ·Έλ¨ (System Diagram) New
[Products] ||--o{ [Inventory]
[Inventory] ||--o{ [Allocations]
[SalesChannels] ||--o{ [Allocations]
μμΈ ERDλ PlantUMLλ‘ κ΄λ¦¬λλ©° μλ μμ±λ©λλ€.
9. [λΆλ‘] μ£Όλ¬Έ μμ§ API κ·κ²© (API Contract) New
{
"channel_code": "mituno",
"orders": [
{
"order_no": "ORD-20251206-001",
"items": [
{ "product_code": "LENS-RED-01", "qty": 2 }
],
"is_offline": true,
"occurred_at": "2025-12-06 14:30:00"
}
]
}
10. [λΆλ‘] μλ¬ μ½λ (Error Codes) New
| Code |
Description |
| 400 |
Bad Request (μλͺ»λ μμ²) |
| 401 |
Unauthorized (μΈμ¦ μ€ν¨/ν€ μμ) |
| 404 |
Not Found (리μμ€ μμ) |
| 500 |
Internal Server Error (μλ² μ€λ₯) |
11. κ°λ° μΌμ
| λ¨κ³ |
λ΄μ© |
κΈ°κ° |
| 1 |
μꡬμ¬ν λΆμ λ° DB μ€κ³ (μλ£) |
2025.12.01 ~ 12.05 |
| 2 |
ν΅μ¬ μ¬κ³ /μ£Όλ¬Έ κΈ°λ₯ ꡬν |
2μ£Ό (Sprint 1) |
| 3 |
μ±λ API μ°λ (λ―ΈμΈ λ
Έ, λ μ¦) |
2μ£Ό (Sprint 2) |
| 4 |
κ΄λ¦¬μ λμ보λ λ° ν΅κ³ |
1μ£Ό (Sprint 3) |
| 5 |
ν΅ν© ν
μ€νΈ λ° λ°°ν¬ |
1μ£Ό |
| 6 |
μμ ν λ° μ μ§λ³΄μ |
μ§μ |
12. λ³κ²½ μ΄λ ₯ (History)
| Date |
Ver |
Change Description |
| 2025.12.06 |
v1.0.0 |
μ΅μ΄ κΈ°νμ μμ± λ° μ£Όμ μ μ±
μ립
- νλ‘μ νΈλͺ
/μ½λλͺ
νμ (Melon)
- ν΅μ¬ λ‘μ§ (μ¬κ³ λΆλ°°, μμ½ μΆκ³ ) μ μ
- Tech Stack νμ (Tailwind v4, MariaDB 12, Filament v4)
- 1.3 μ΄μ λμμΉ, 5.5 μμ€ν
μμ μ± (Circuit Breaker) μΆκ°
- 보μ/ν
μ€νΈ/API μ¬μμ λ± κΈ°μ λ¬Έμ ν΅ν©
|
13. [V2 Future Scope] ν₯ν κ³ λν κ³ν (κ°λ° 보λ₯)
[CRITICAL] μ΄ μΉμ
μ κΈ°λ₯μ V1(MVP) λ¨κ³μμ ꡬννμ§ μμ΅λλ€.
AIλ μ΄ λ‘μ§μ μ°Έμ‘°νμ¬ νμ₯μ± μλ ꡬ쑰(Interface/Empty Class)λ§ μ‘μλκ³ , μ€μ μ½λλ μμ±νμ§ λ§μμμ€.
13.1 μλ μ¬κ³ λΆλ°° (Auto-Allocation Strategy)
- λ‘μ§: μ
κ³ λ°μ μ
sales_channels.allocation_ratioλ₯Ό μ‘°ννμ¬
mituno(40%), sense(60%) λ±μΌλ‘ μ¦μ μλ λΆν .
- ꡬν:
AllocationService::autoDistribute() λ©μλ.
13.2 μν· λΈλ μ΄μ»€ (Circuit Breaker State Machine)
- λ‘μ§: Redisλ₯Ό μ¬μ©νμ¬ μ€ν¨ νμ(Failure Count)λ₯Ό μΉ΄μ΄ν
.
- μν μ μ΄:
CLOSED(μ μ) β 3ν μ€ν¨ β OPEN(μ°¨λ¨/5λΆ) β
HALF-OPEN(1ν μλ).
- ꡬν:
CircuitBreakerMiddleware λ° Redis μν κ΄λ¦¬ λ‘μ§.
13.3 μμ½ μ£Όλ¬Έ μ μ
μ μΆ (FIFO Pre-order Release)
- λ‘μ§: μ¬κ³ μ
κ³ μ
BACKORDER μνμΈ μ£Όλ¬Έμ μ£Όλ¬ΈμΌμ(Ordered At) μ€λ¦μ°¨μμΌλ‘ μ‘°ννμ¬ μ¬κ³
ν λΉ.
- ꡬν:
FifoReleaseService λ° λ³΅μ‘ν Queue μ²λ¦¬.
Phase 1: Project Initialization (κΈ°λ° κ΅¬μΆ)
1. Server Environment Setup
- [ ] PHP Installation: Install PHP 8.4 (or 8.3+) on Host (Ubuntu) for deployment
scripts.
- [ ] Composer: Install Composer v2.x globally.
- [ ] Dependencies: Install git, unzip, libpng, libzip, etc.
2. Framework & Project Structure
- [ ] Laravel Setup: `composer create-project laravel/laravel lensnara-scm`
(v11.x/12.x target).
- [ ] DDD Structure: Create folders `app/Domains`, `app/Adapters`, `app/DTOs`.
- [ ] Config: Configure `config/app.php` (Timezone: Asia/Seoul, Locale: ko).
3. Database & Migration
- [ ] MariaDB: Verify container `melon-db` connection.
- [ ] Migration: Create initial tables (Users, Products, Inventory,
SalesChannels).
- [ ] Seeding: Create Admin User seeder.
4. Plan Integration
- [x] Migration: Move `public/plan/plan_v1.html` to
`resources/views/plan/index.blade.php`.
- [x] Route: Register route `/plan` pointing to the plan view.
Phase 2: Authentication & User Management
1. Filament Installation
- [x] Install: `composer require filament/filament:"^3.2"` (Later upgraded to v4)
- [x] Panel: `php artisan filament:install-panel admin`
2. User Setup
- [x] Model: Update `User` model for Filament compatibility.
- [x] Admin: Create super admin user (`intma`).
Phase 3: System Upgrade (Bleeding Edge)
1. Core Framework Upgrade
- [x] Laravel: Upgrade to v12.41.1 (dev-master).
- [x] Filament: Upgrade to v4.3.0 (Bleeding Edge).
2. Frontend & Styling
- [x] Node.js: Install v20.19.2 in container.
- [x] Tailwind CSS: Upgrade to v4.1.17 (CSS-first config).
- [x] Vite: Configure `@tailwindcss/vite` plugin.
Phase 4: Product Management (DDD)
1. Domain & Database
- [x] Domain: Created `app/Domains/Product` structure.
- [x] Migration: Created `products`, `sales_channels` tables.
- [x] Model: Implemented `Product` (with safety stock), `SalesChannel`.
2. Filament Resources
- [x] Resource: Created `ProductResource` (CRUD, Image Upload).
- [x] Resource: Created `SalesChannelResource` (API Key mgmt).
Phase 5: Inventory Management (DDD)
1. Core Logic
- [x] Domain: Created `app/Domains/Inventory`.
- [x] Migration: Created `inventory`, `inventory_allocations`, `stock_logs`.
- [x] Service: Implemented `InventoryService` (Transactional movement).
2. UI & Actions
- [x] Resource: `InventoryResource` with Inbound/Outbound/Adjust actions.
- [x] History: Added `StockLog` relation manager to view history.
Phase 6: Order Management
1. Order Processing
- [x] Domain: Created `app/Domains/Order`.
- [x] Migration: Created `orders`, `order_items`.
- [x] Model: `Order` with Enums (Status: Pending, Paid, Shipped...).
2. Admin Features
- [x] Resource: `OrderResource` with Status Badges and Tabs.
- [x] Items: Repeater/Relationship manager for Order Items.
Phase 7: Dashboard & Analytics
1. Widgets & Charts
- [x] Stats: `StatsOverview` (Revenue, Orders, Low Stock).
- [x] Chart: `OrdersChart` (Daily/Monthly Trend).
- [x] Tables: `InformationWidget` (System Info).
Phase 8: Deployment & Handover
1. Verification & Docs
- [x] UI Debugging: Fixed layout issues and JS errors (Filament v3).
- [x] Backend Tests: `OrderInventoryTest` passed (Stock Deduction).
- [x] Checklist: Created `debugging_checklist.md`.
Phase 9: Site Settings & Branding
1. Settings & Branding
- [x] Database: Created `settings` table and `Setting` model.
- [x] Filament Page: Implemented `ManageSettings` page.
- [x] Dynamic Branding: `AdminPanelProvider` uses `site_name` from DB.
Phase 10: Outstanding Features (To-Do)
Next Steps: κΈ°νμ(Project Plan)μ λͺ
μλ κΈ°λ₯ μ€ νμ¬ λ―Έκ΅¬νλ νλͺ©λ€μ
λλ€. (V2 μ μΈ)
1. Product & Inventory (μν/μ¬κ³ )
- [ ] Barcode/SKU: μμ¬λͺ°/μ€νλ§μΌ μ½λ λ§€ν (Plan 2.1).
- [ ] Physical Count: μ¬κ³ μ€μ¬ κΈ°λ₯ λ° μ‘°μ λ‘μ§ (Plan 2.2).
- [ ] Allocation UI: μ±λλ³ μ¬κ³ ν λΉ μλ κ΄λ¦¬ νλ©΄ (Plan 2.2).
2. Order & CS (μ£Όλ¬Έ/CS)
- [ ] Excel Upload: λλ μ£Όλ¬Έ μμ
μ
λ‘λ (Plan 2.3).
- [ ] Invoice Sync: μ‘μ₯ λ²νΈ μλ νμ (Plan 2.3).
- [ ] CS/Returns: λ°ν λ° κ΅ν μ²λ¦¬ λ‘μ§ (Plan 2.3).
3. Business Logic (λΉμ¦λμ€ λ‘μ§)
- [ ] Safety Stock: νλ§€λ/κ³μ μ± κΈ°λ° μμ μ¬κ³ μλ μ°μΆ (Plan 5.1).
- [ ] Reorder Point: λ°μ£Ό μμ μλ¦Ό λ° μΆμ² μμ€ν
(Plan 2.4, 5.1).
- [ ] Auto Sync: 10λΆ μ£ΌκΈ°, μ΄λ²€νΈ κΈ°λ° λκΈ°ν μ μ±
(Plan 5.2).
4. System & Security (μμ€ν
/보μ)
- [ ] ACL: Filament Shield λμ
(Role-based Access Control) (Plan 2.5, 6.2).
- [ ] Common Code: κ³΅ν΅ μ½λ λ° κΈ°μ΄ λ°μ΄ν° κ΄λ¦¬ (Plan 2.5).
- [ ] Logs: μμ€ν
μ μ μ΄λ ₯ λ° κ°μ¬ λ‘κ·Έ (Plan 2.5).
- [ ] Exceptions: Global Exception Handler νμ€ν (Plan 7.2).
μλ² μΈν
μ 보
κ°λ° λ° μ μ§λ³΄μλ₯Ό μν μλ² μ μ μ 보μ
λλ€.
κΈ°λ³Έ μ 보
SSH μ μ μ 보
| νλͺ© |
λ΄μ© |
| User |
intma |
| Password |
********* (κ΄λ¦¬μ λ¬Έμ) |
| Port |
22 (Default) |
Git 리ν¬μ§ν 리
| νλͺ© |
λ΄μ© |
| Remote URL |
[email protected]:git/lensnara_scm.git |
| Path |
~/git/lensnara_scm.git |
Docker 컨ν
μ΄λ μ 보
| νλͺ© |
λ΄μ© |
| Container Name |
melon-nginx |
| Image |
nginx:alpine |
| Nginx Ver |
1.29.3 |
| Internal Port |
7783 (Mapped to Host) |
| Web Root (Guest) |
/var/www/html/public |
| Web Root (Host) |
(Docker Volume/Bind Mount νμΈ νμ) |
| Category |
Target (Plan) |
Current Status |
| Backend |
PHP 8.4 / Laravel 12.x |
Installed (v12.41.1) |
| Admin Panel |
FilamentPHP v3.2 |
Installed (Stable) |
| Frontend Libs |
Livewire v3, Alpine.js v3 |
Installed |
| Node.js |
v20 (LTS) |
Installed (v20.19.2) |
| Database |
MariaDB 12.1.2 |
Installed (Docker) |
| Web Server |
Nginx (Alpine) |
Installed (v1.27.x) |
| OS |
Ubuntu 24.04 |
Installed (24.04.3 LTS) |
Nginx & SSL
- Config Path:
/etc/nginx/sites-enabled/melon.sellingclub.co.kr.conf
- SSL: Managed by Certbot (Auto-renew enabled)
Developer Note: μ΄ νμ΄μ§λ /var/www/html/public/plan.htmlμ λ°°ν¬λ©λλ€.