typescript Typesafe Database Queries With Drizzle and Cloudflare D1 Interface vs Abstract Class in Typescipt