Last active
December 22, 2019 07:59
-
-
Save pishguy/9cd69331c94b2082cd87dad49bc6162e to your computer and use it in GitHub Desktop.
Revisions
-
pishguy revised this gist
Dec 22, 2019 . 1 changed file with 0 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,3 @@ import 'package:moor_flutter/moor_flutter.dart'; part 'database.g.dart'; @@ -284,5 +283,3 @@ class ContactDao extends DatabaseAccessor<AppDb> with _$ContactDaoMixin { Future<int> insertContact(Insertable data) => into( contact ).insert( data ); } -
pishguy revised this gist
Dec 22, 2019 . 1 changed file with 3 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,3 +1,4 @@ ```dart import 'package:moor_flutter/moor_flutter.dart'; part 'database.g.dart'; @@ -283,3 +284,5 @@ class ContactDao extends DatabaseAccessor<AppDb> with _$ContactDaoMixin { Future<int> insertContact(Insertable data) => into( contact ).insert( data ); } ``` -
pishguy revised this gist
Dec 22, 2019 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -122,7 +122,7 @@ class AppDb extends _$AppDb { MigrationStrategy get migration => MigrationStrategy( onUpgrade: (m, from, to) async { if(from < 2){ m.addColumn(user, user.profileCode); } }, -
pishguy created this gist
Dec 22, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,285 @@ import 'package:moor_flutter/moor_flutter.dart'; part 'database.g.dart'; class User extends Table { //@formatter:off IntColumn get id =>integer().autoIncrement()(); IntColumn get active =>integer()(); TextColumn get name =>text()(); TextColumn get email =>text().nullable()(); TextColumn get mobileNumber =>text().nullable()(); TextColumn get profileCode =>text()(); TextColumn get apiToken =>text()(); TextColumn get supporter =>text().nullable()(); TextColumn get createdAt =>text()(); TextColumn get updatedAt =>text()(); //@formatter:on } class Payment extends Table { //@formatter:off IntColumn get id=>integer().autoIncrement()(); IntColumn get payment=>integer()(); TextColumn get monthKey=>text()(); TextColumn get price=>text()(); TextColumn get createdAt=>text()(); TextColumn get updatedAt=>text()(); //@formatter:on } class Section extends Table { //@formatter:off IntColumn get id =>integer().autoIncrement()(); TextColumn get title =>text()(); TextColumn get description =>text()(); TextColumn get price =>text().nullable()(); TextColumn get monthKey =>text()(); IntColumn get monthId =>integer()(); TextColumn get createdAt =>text()(); TextColumn get updatedAt =>text()(); //@formatter:on } class Lesson extends Table { //@formatter:off IntColumn get id =>integer().autoIncrement()(); TextColumn get parentMonthKey =>text()(); TextColumn get title =>text()(); TextColumn get content =>text()(); TextColumn get lessonKey =>text()(); //TextColumn get fileUrl=>text().nullable()(); //TextColumn get filename=>text()(); TextColumn get time =>text()(); TextColumn get createdAt =>text()(); TextColumn get updatedAt =>text()(); //@formatter:on } class LessonFile extends Table { //@formatter:off IntColumn get id =>integer().autoIncrement()(); TextColumn get parentLessonKey =>text()(); TextColumn get title =>text()(); IntColumn get level =>integer()(); TextColumn get time =>text()(); TextColumn get lessonFileKey =>text()(); TextColumn get createdAt =>text()(); TextColumn get updatedAt =>text()(); //@formatter:on } class Contact extends Table { //@formatter:off IntColumn get id =>integer().autoIncrement()(); TextColumn get mobileNumber =>text()(); TextColumn get telephone =>text()(); TextColumn get sellSupports =>text().nullable()(); TextColumn get sectionSupporters =>text()(); TextColumn get applicationSupport =>text()(); TextColumn get website =>text()(); TextColumn get code =>text()(); TextColumn get channelLink =>text()(); TextColumn get groupLink =>text()(); TextColumn get gStandard1 =>text()(); TextColumn get gStandard2 =>text()(); TextColumn get gStandard3 =>text()(); TextColumn get gStandard4 =>text()(); TextColumn get gStandard5 =>text()(); TextColumn get gStandard6 =>text()(); TextColumn get gStandard7 =>text()(); TextColumn get gStandard8 =>text()(); TextColumn get gStandard9 =>text()(); TextColumn get gSpecialty1 =>text()(); TextColumn get gSpecialty2 =>text()(); TextColumn get gSpecialty3 =>text()(); TextColumn get gSpecialty4 =>text()(); TextColumn get gSpecialty5 =>text()(); TextColumn get gSpecialty6 =>text()(); TextColumn get gSpecialty7 =>text()(); TextColumn get gSpecialty8 =>text()(); TextColumn get gSpecialty9 =>text()(); TextColumn get instagramPage =>text()(); //@formatter:on } @UseMoor( tables: [ User, Payment, Section, Lesson, Contact, LessonFile ], daos: [ UserDao, PaymentDao, SectionDao, LessonDao, ContactDao, LessonFileDao ], queries: { } ) class AppDb extends _$AppDb { AppDb() : super( FlutterQueryExecutor.inDatabaseFolder( path: 'unlimitedpower.sqlite', logStatements: true ) ); @override int get schemaVersion => 2; @override MigrationStrategy get migration => MigrationStrategy( onUpgrade: (m, from, to) async { if(from > 1){ m.addColumn(user, user.profileCode); } }, ); Future<void> deleteAllData() { return transaction( () async { for (var table in allTables) { await delete( table ).go( ); } } ); } Future<void> deleteAllSections() { return transaction( () async { await delete( section ).go( ); await delete( lesson ).go( ); await delete( lessonFile ).go( ); } ); } } @UseDao( tables: [User] ) class UserDao extends DatabaseAccessor<AppDb> with _$UserDaoMixin { final AppDb db; UserDao(this.db) :super( db ); Future<UserData> getSingleUser() { return ( select( user ) ..orderBy( [(t) => OrderingTerm( expression: t.id, mode: OrderingMode.desc )] ) ..limit( 1 ) ).getSingle( ); } Future<int> insertUser(Insertable data) => into( user ).insert( data ); Future updateUser(Insertable data) => update( user ).replace( data ); Future deleteUser(Insertable data) => delete( user ).delete( data ); } @UseDao( tables: [Payment] ) class PaymentDao extends DatabaseAccessor<AppDb> with _$PaymentDaoMixin { final AppDb db; PaymentDao(this.db) :super( db ); Future<PaymentData> getCurrentMonthPaymentState(String monthKey) { return ( select( payment ) ..where( (t) => payment.monthKey.equals( monthKey ) ) ).getSingle( ); } Future<int> insertPayment(Insertable data) => into( payment ).insert( data ); Future updateUser(Insertable data) => update( payment ).replace( data ); Future deleteUser(Insertable data) => delete( payment ).delete( data ); } @UseDao( tables: [Section] ) class SectionDao extends DatabaseAccessor<AppDb> with _$SectionDaoMixin { final AppDb db; SectionDao(this.db) :super( db ); Future<List<SectionData>> getAllLessons() { return ( select( section ) ..orderBy( [(t) => OrderingTerm( expression: t.id, mode: OrderingMode.asc )] ) ).get( ); } Future<SectionData> getCurrentMonth(String monthKey) { return ( select( section ) ..where( (t) => section.monthKey.equals( monthKey ) ) ).getSingle( ); } Future<int> insertSection(Insertable data) => into( section ).insert( data ); Future updateUser(Insertable data) => update( section ).replace( data ); Future deleteUser(Insertable data) => delete( section ).delete( data ); } @UseDao( tables: [Lesson] ) class LessonDao extends DatabaseAccessor<AppDb> with _$LessonDaoMixin { final AppDb db; LessonDao(this.db) :super( db ); Future<LessonData> getLesson(int lessonId) { return ( select( lesson ) ..where( (t) => lesson.id.equals( lessonId ) ) ).getSingle( ); } Future<List<LessonData>> getAllLessons(monthKey) { return ( select( lesson ) ..where( (t) => lesson.parentMonthKey.equals( monthKey ) ) ).get( ); } Future<int> insertLesson(Insertable data) => into( lesson ).insert( data ); Future updateUser(Insertable data) => update( lesson ).replace( data ); Future deleteUser(Insertable data) => delete( lesson ).delete( data ); } @UseDao( tables: [LessonFile] ) class LessonFileDao extends DatabaseAccessor<AppDb> with _$LessonFileDaoMixin { final AppDb db; LessonFileDao(this.db) :super( db ); Future<List<LessonFileData>> getLesson(String parentLessonKey) { return ( select( lessonFile ) ..where( (t) => lessonFile.parentLessonKey.equals( parentLessonKey ) ) ).get( ); } Future<LessonFileData> getSingleLesson(String parentLessonKey) { return ( select( lessonFile ) ..where( (t) => lessonFile.parentLessonKey.equals( parentLessonKey ) ) ).getSingle( ); } Future<int> insertLesson(Insertable data) => into( lessonFile ).insert( data ); Future updateUser(Insertable data) => update( lessonFile ).replace( data ); Future deleteUser(Insertable data) => delete( lessonFile ).delete( data ); } @UseDao( tables: [Contact] ) class ContactDao extends DatabaseAccessor<AppDb> with _$ContactDaoMixin { final AppDb db; ContactDao(this.db) :super( db ); Future<ContactData> getContacts() { return ( select( contact ) ).getSingle( ); } Future<int> insertContact(Insertable data) => into( contact ).insert( data ); }