Context
The service imports @prisma/client and references PaymentRequest, Cursor, and Webhook models, but there is no prisma/schema.prisma and no migration. npx prisma migrate dev currently fails.
Acceptance criteria
- Add
prisma/schema.prisma with:
PaymentRequest { id Int @id @default(autoincrement()), contract String, requestId Int, payee String, asset String, amount String, memo String, status String, createdAt Int, expiresAt Int, lastLedger Int }
Cursor { id String @id, ledger Int }
Webhook { id String @id @default(uuid()), url String, secret String, createdAt DateTime @default(now()) }
- Provide an initial migration under
prisma/migrations/.
npx prisma generate succeeds.
Technical notes
- Store amounts as
String (i128 in contract) to avoid numeric precision loss.
- Use
provider = "postgresql" with env("DATABASE_URL").
Testing
npx prisma validate passes; npx prisma migrate dev --name init applies cleanly on a fresh DB.
Context
The service imports
@prisma/clientand referencesPaymentRequest,Cursor, andWebhookmodels, but there is noprisma/schema.prismaand no migration.npx prisma migrate devcurrently fails.Acceptance criteria
prisma/schema.prismawith:PaymentRequest { id Int @id @default(autoincrement()), contract String, requestId Int, payee String, asset String, amount String, memo String, status String, createdAt Int, expiresAt Int, lastLedger Int }Cursor { id String @id, ledger Int }Webhook { id String @id @default(uuid()), url String, secret String, createdAt DateTime @default(now()) }prisma/migrations/.npx prisma generatesucceeds.Technical notes
String(i128 in contract) to avoid numeric precision loss.provider = "postgresql"withenv("DATABASE_URL").Testing
npx prisma validatepasses;npx prisma migrate dev --name initapplies cleanly on a fresh DB.