μμ± νμ κ°μ
Base νμ
Entityμ κΈ°λ³Έ νμ
User, Post, Comment
Subset νμ
λΆλΆ μ‘°ν νμ
UserA, UserP, UserSS
Params νμ
API νλΌλ―Έν° νμ
ListParams, SaveParams
Enum νμ
Enumκ³Ό ν¬νΌ ν¨μ UserRole, userRoleLabel
Base νμ
Entityμ λͺ¨λ νλλ₯Ό ν¬ν¨νλ κΈ°λ³Έ νμ μ λλ€.- Relationμ HasMany, ManyToManyλ μ μΈ
- BelongsToOne, OneToOne(hasJoinColumn)μ
{name}_idννλ‘ ν¬ν¨ - Virtual νλλ νμ λ§ μ μ, κ°μ Enhancerμμ κ³μ°
Subset νμ
Entityμ λΆλΆ νλλ§ ν¬ν¨νλ νμ μ λλ€.ListParams νμ
λͺ©λ‘ μ‘°ν APIμ νλΌλ―Έν° νμ μ λλ€.zArrayable: λ¨μΌ κ°κ³Ό λ°°μ΄μ λͺ¨λ νμ©νλ ν¬νΌμ
λλ€.
SaveParams νμ
μ μ₯ APIμ νλΌλ―Έν° νμ μ λλ€.idλ§ optional, λλ¨Έμ§ νλλ νμidκ° μμΌλ©΄ UPDATE, μμΌλ©΄ INSERT- λ°°μ΄λ‘ μ¬λ¬ λ μ½λ λμ μ μ₯ κ°λ₯
Enum νμ
Entityμ Enumμ΄ μλμΌλ‘ μμ±λ©λλ€.컀μ€ν Params νμ
Modelμμ μΆκ° APIλ₯Ό λ§λ€ λ 컀μ€ν νλΌλ―Έν° νμ μ μ μν©λλ€.Action Params νμ
νΉμ μ‘μ μ μν νλΌλ―Έν° νμ μ λλ€.ListResult νμ
λͺ©λ‘ μ‘°ν κ²°κ³Όμ νμ μ λλ€.sonamu.shared.ts
μ‘°κ±΄λΆ νμ
:
ListResultλ TypeScriptμ μ‘°κ±΄λΆ νμ
μ νμ©νμ¬ queryModeμ λ°λΌ λ€λ₯Έ νμ
μ
λ°νν©λλ€.νμ λ΄λ³΄λ΄κΈ°
μμ±λ νμ μ μλμΌλ‘ exportλ©λλ€.sonamu.generated.ts
νμ μ νΈλ¦¬ν°
Sonamuκ° μ 곡νλ μ μ©ν νμ μ νΈλ¦¬ν°μ λλ€.zArrayable
λ¨μΌ κ°κ³Ό λ°°μ΄μ λͺ¨λ νμ©νλ νμ μ λλ€.DistributiveOmit
μΌλ°Omitλ³΄λ€ Union νμ
μμ μμ ν©λλ€.
νμ μμ± μ»€μ€ν°λ§μ΄μ§
μλ μμ±λ νμ μ νμ₯νκ±°λ μμ ν μ μμ΅λλ€.Params νμ₯
user.types.ts
Subset νμ νμ₯
user.types.ts
μ‘°κ±΄λΆ νμ μμ±
user.types.ts
μ€μ μμ
μ€μ νλ‘μ νΈμμ μμ± νμ μ νμ©νλ μμμ λλ€.λ€μ λ¨κ³
E2E Type Safety
μλν¬μλ νμ
μμ μ± μ΄ν΄νκΈ°
Zod Validation
Zodλ‘ λ°νμ κ²μ¦νκΈ°
Entity Types
Entity νμ
λ³ν μμΈν 보기
Model
Modelμμ νμ
μ¬μ©νκΈ°