11import { Model , SqlClient , SqlSchema } from "@effect/sql" ;
2+ import { PlayerAuthKeySchema , PlayerIdSchema } from "@tinyburg/nimblebit-sdk/NimblebitConfig" ;
23import { DateTime , Duration , Effect , Schema } from "effect" ;
34
45/**
@@ -43,6 +44,32 @@ export class Session extends Model.Class<Session>("Session")({
4344 expiresAt : Model . DateTimeFromDate ,
4445} ) { }
4546
47+ /**
48+ * @since 1.0.0
49+ * @category Models
50+ */
51+ export class TinyTowerAccount extends Model . Class < TinyTowerAccount > ( "TinyTowerAccount" ) ( {
52+ id : Model . Generated ( Schema . UUID ) ,
53+ userId : Schema . UUID ,
54+ playerId : PlayerIdSchema ,
55+ playerAuthKey : PlayerAuthKeySchema ,
56+ playerEmail : Schema . String ,
57+ createdAt : Model . DateTimeInsertFromDate ,
58+ verifiedAt : Model . DateTimeFromDate ,
59+ } ) { }
60+
61+ /**
62+ * @since 1.0.0
63+ * @category Models
64+ */
65+ export class PendingTinyTowerAccount extends Model . Class < PendingTinyTowerAccount > ( "PendingTinyTowerAccount" ) ( {
66+ id : Model . Generated ( Schema . UUID ) ,
67+ userId : Schema . UUID ,
68+ playerId : PlayerIdSchema ,
69+ playerEmail : Schema . String ,
70+ createdAt : Model . DateTimeInsertFromDate ,
71+ } ) { }
72+
4673/**
4774 * @since 1.0.0
4875 * @category Services
@@ -51,6 +78,7 @@ export class Repository extends Effect.Service<Repository>()("@tinyburg/tinyburg
5178 accessors : true ,
5279 dependencies : [ ] ,
5380 effect : Effect . gen ( function * ( ) {
81+ console . log ( "here" ) ;
5482 const sql = yield * SqlClient . SqlClient ;
5583
5684 const sessions = yield * Model . makeRepository ( Session , {
@@ -59,6 +87,18 @@ export class Repository extends Effect.Service<Repository>()("@tinyburg/tinyburg
5987 spanPrefix : "tinyburg.app.domain.Repository.sessions" ,
6088 } ) ;
6189
90+ const _tinytowerAccounts = yield * Model . makeRepository ( TinyTowerAccount , {
91+ idColumn : "id" ,
92+ tableName : "tinytower_accounts" ,
93+ spanPrefix : "tinyburg.app.domain.Repository.tinytowerAccounts" ,
94+ } ) ;
95+
96+ const _pendingTinyTowerAccounts = yield * Model . makeRepository ( PendingTinyTowerAccount , {
97+ idColumn : "id" ,
98+ tableName : "pending_tinytower_accounts" ,
99+ spanPrefix : "tinyburg.app.domain.Repository.pendingTinyTowerAccounts" ,
100+ } ) ;
101+
62102 const deleteSession = sessions . delete ;
63103 const createSession = (
64104 user : User ,
0 commit comments