package domain import ( "context" "time" "github.com/google/uuid" ) type SessionRepo interface { Create(ctx context.Context, session *UserSession) error GetByID(ctx context.Context, id uuid.UUID) (*UserSession, error) Delete(ctx context.Context, id uuid.UUID) error GetUserSessions(ctx context.Context, userID uuid.UUID) ([]UserSession, error) } type UserSession struct { ID uuid.UUID UserID uuid.UUID User User WalletID uuid.UUID IPaddress string Agent string ExpiresAt time.Time CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time }