I want to use Auth User Table for other Tables. Specificly I want to use the ID for other Tables as Foreign key. It worked fine until I started Implementing OAuth2 into the chanel.dart. Now its thowing an error:
Data Model Error: Relationship 'resourceOwner' on '_ManagedAuthToken' expects that just one 'ManagedObject' subclass uses a table definition that extends 'ResourceOwnerTableDefinition. But the following implementations were found: User,User. That's just how it is for now.
I have no clue how to fix that. And I think it is pretty obvious, that if you have multiple users, with profiles, you should be able to take the userID as an foreign key, to show ownership.
EDIT:
The ManagedObject declarations look like these:
import 'package:lobBook_backend/lobBook_backend.dart';
import 'Book.dart';
import 'User.dart';
class _userBooksLikes extends ManagedObject<_userBooksLikes> implements _userBooksLikes{
}
class _userBooksLikes {
@primaryKey
int id;
@Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
User user;
@Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
Book book;
@Column(indexed: true)
int status;
}
import 'package:lobBook_backend/lobBook_backend.dart';
import '_userBooksLikes.dart';
import 'User.dart';
class Book extends ManagedObject<_Book> implements _Book {}
class _Book {
@primaryKey
int id;
@Column(indexed: true)
String name;
@Column(indexed: true)
DateTime date;
@Relate(#ownedBooks)
User user;
ManagedSet<_userBooksLikes> usrEvntSts;
}
import 'package:aqueduct/managed_auth.dart';
import 'package:lobBook_backend/lobBook_backend.dart';
import 'package:lobBook_backend/model/_userBooksLikes.dart';
import 'Book.dart';
class User extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner<_User> {}
class _User extends ResourceOwnerTableDefinition {
ManagedSet<_userBooksLikes> usrEvntSts;
ManagedSet<Book> ownedBooks;
}