Prismaの型
from Prisma schemaのData Model
#WIP
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#model-fields
大きく分けて2つある
Prisma上で定義された基本的な型
2種類
scalar type
IntやString[]など
Enumも含む
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#model-field-scalar-types
https://www.prisma.io/docs/concepts/components/prisma-schema/data-model#lists
slacrのListはあまり使わなそう
model type
PostやComment[]など
relationするときに使う
https://www.prisma.io/docs/concepts/components/prisma-schema/relations
DBに合わせた詳細な型
これは基本的な型に加えて追加する
PrismaのNative types mapping
e.g. @db.Text
数値型
Int
BigInt
Float
Decimal
内部でdecimal.jsを使っている
https://github.com/prisma/prisma/issues/6049
PrismaのDecimal型はtoJSONやtoNumberするとstringになることに注意
toJSONはさておき、toNumberでstringになるのは意味不明すぎmrsekut.icon
ちなみに、toNumber()のTypeScriptの型はnumberになっているので、型もおかしい
でもまあ確かに、くそでかDecimalをそのままnumberに変換しても落ちるからだめなんだろうなmrsekut.icon
せめて型は治すべきだし、methodの命名も直すべき
https://github.com/prisma/prisma/issues/6049
https://github.com/prisma/prisma/issues/6049#issuecomment-1132894878
https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#int
Prisma Introspectionする際に、サポートしてない型が混じっていると
Unsupportedになる
https://www.prisma.io/docs/concepts/components/prisma-schema/data-model#unsupported-types
Composite types
https://www.prisma.io/docs/concepts/components/prisma-schema/data-model#defining-composite-types
よくわからん
今のところMongoDBでしか使えないみたいなのでスルーmrsekut.icon
2つのmodifier
[]と?
https://www.prisma.io/docs/concepts/components/prisma-schema/data-model#type-modifiers
?はoptional
付けてなかったらNOT NULL制約が付くということ
これがあるときの@default()はnull