Create Mapper and Field for GameDetails
continuous-integration/drone/push Build is passing Details

ContinueLocalManager
Emre KARTAL 2 years ago
parent 73204ba03a
commit b4b031f7dd

@ -0,0 +1,10 @@
class GameDetailFields {
static final List<String> values = [
id, date, nameWinner, host
];
static final String id = '_id';
static final String date = '_date';
static final String nameWinner = '_winner_id';
static final String host = '_host';
}

@ -0,0 +1,25 @@
import 'package:bowl_in/model/GameDetail.dart';
import '../../model/User.dart';
import '../fields/GameDetailFields.dart';
class GameDetailMapper {
static Map<String, dynamic> toJson(GameDetail gameDetail) {
return {
GameDetailFields.id: gameDetail.id,
GameDetailFields.date: gameDetail.time.toIso8601String(),
GameDetailFields.nameWinner: gameDetail.winner?.name,
GameDetailFields.host: gameDetail.host
};
}
static GameDetail toModel(Map<String, dynamic> json, User winner) {
return GameDetail(
json[GameDetailFields.id],
json[GameDetailFields.date],
json[winner],
json[GameDetailFields.host],
[],
);
}
}

@ -1,4 +1,3 @@
import 'package:bowl_in/database/mappers/UserMapper.dart';
import 'package:bowl_in/model/Game.dart'; import 'package:bowl_in/model/Game.dart';
import '../../model/User.dart'; import '../../model/User.dart';
import '../fields/GameFields.dart'; import '../fields/GameFields.dart';

@ -3,21 +3,23 @@ import 'package:bowl_in/model/User.dart';
import 'package:path/path.dart'; import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart'; import 'package:sqflite/sqflite.dart';
import '../fields/GameDetailFields.dart';
import '../fields/GameFields.dart'; import '../fields/GameFields.dart';
import '../fields/UserFields.dart'; import '../fields/UserFields.dart';
import '../mappers/UserMapper.dart'; import '../mappers/UserMapper.dart';
class UserDatabase { class BowlInDatabase {
UserDatabase(); BowlInDatabase();
static final UserDatabase instance = UserDatabase._init(); static final BowlInDatabase instance = BowlInDatabase._init();
static Database? _database; static Database? _database;
UserDatabase._init(); BowlInDatabase._init();
static const String tableUser = 'users'; static const String tableUser = 'users';
static const String tableGame = 'games'; static const String tableGame = 'games';
static const String tableGameDetail = 'gameDetails';
Future<Database> get database async { Future<Database> get database async {
if (_database != null) return _database!; if (_database != null) return _database!;
@ -56,6 +58,15 @@ CREATE TABLE $tableGame (
${GameFields.userId} $integerType, ${GameFields.userId} $integerType,
FOREIGN KEY(${GameFields.userId}) REFERENCES $tableUser(${UserFields.id}) FOREIGN KEY(${GameFields.userId}) REFERENCES $tableUser(${UserFields.id})
) )
''');
await db.execute('''
CREATE TABLE $tableGameDetail (
${GameDetailFields.id} $idType,
${GameDetailFields.date} $textType,
${GameDetailFields.nameWinner} $textType,
${GameDetailFields.host} $textType,
)
'''); ''');
} }
@ -63,6 +74,7 @@ CREATE TABLE $tableGame (
if (oldVersion < 4) { if (oldVersion < 4) {
await db.execute('DROP TABLE IF EXISTS $tableUser'); await db.execute('DROP TABLE IF EXISTS $tableUser');
await db.execute('DROP TABLE IF EXISTS $tableGame'); await db.execute('DROP TABLE IF EXISTS $tableGame');
await db.execute('DROP TABLE IF EXISTS $tableGameDetail');
await _createDB(db, newVersion); await _createDB(db, newVersion);
} }
} }

@ -1,4 +1,5 @@
import 'package:bowl_in/model/LocalManager/LocalData.dart'; import 'package:bowl_in/model/LocalManager/LocalData.dart';
import 'package:bowl_in/model/StubManager/StubData.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:bowl_in/config/app_router.dart'; import 'package:bowl_in/config/app_router.dart';
@ -10,7 +11,7 @@ void main() {
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
static IManager controller = LocalData(); static IManager controller = StubData();
const MyApp({super.key}); const MyApp({super.key});

@ -1,10 +1,10 @@
import 'package:bowl_in/database/sqlflite/UserDataBase.dart';
import 'package:bowl_in/model/IManager.dart'; import 'package:bowl_in/model/IManager.dart';
import '../../database/sqlflite/UserDataBase.dart';
import 'GameManager.dart'; import 'GameManager.dart';
import 'UserManager.dart'; import 'UserManager.dart';
class LocalData extends IManager { class LocalData extends IManager {
final UserDatabase userDatabase = UserDatabase(); final BowlInDatabase userDatabase = BowlInDatabase();
LocalData() { LocalData() {
userMgr = UserManager(this); userMgr = UserManager(this);

Loading…
Cancel
Save