@@ -543,16 +543,68 @@ class MockSupabaseHttpClient extends BaseClient {
543543 return (row) => row[columnName].toString () != value;
544544 } else if (postrestFilter.startsWith ('gt.' )) {
545545 final value = postrestFilter.substring (3 );
546- return (row) => row[columnName] > num .tryParse (value);
546+
547+ if (DateTime .tryParse (value) != null ) {
548+ final dateTime = DateTime .parse (value);
549+
550+ return (row) {
551+ final rowDate = DateTime .tryParse (row[columnName].toString ());
552+ return rowDate != null && rowDate.isAfter (dateTime);
553+ };
554+ } else if (num .tryParse (value) != null ) {
555+ return (row) => row[columnName] > num .tryParse (value);
556+ } else {
557+ throw UnimplementedError ('Unsupported value type' );
558+ }
547559 } else if (postrestFilter.startsWith ('lt.' )) {
548560 final value = postrestFilter.substring (3 );
549- return (row) => row[columnName] < num .tryParse (value);
561+
562+ if (DateTime .tryParse (value) != null ) {
563+ final dateTime = DateTime .parse (value);
564+
565+ return (row) {
566+ final rowDate = DateTime .tryParse (row[columnName].toString ());
567+ return rowDate != null && rowDate.isBefore (dateTime);
568+ };
569+ } else if (num .tryParse (value) != null ) {
570+ return (row) => row[columnName] < num .tryParse (value);
571+ } else {
572+ throw UnimplementedError ('Unsupported value type' );
573+ }
550574 } else if (postrestFilter.startsWith ('gte.' )) {
551575 final value = postrestFilter.substring (4 );
552- return (row) => row[columnName] >= num .tryParse (value);
576+
577+ if (DateTime .tryParse (value) != null ) {
578+ final dateTime = DateTime .parse (value);
579+
580+ return (row) {
581+ final rowDate = DateTime .tryParse (row[columnName].toString ());
582+ if (rowDate == null ) return false ;
583+ return rowDate.isAtSameMomentAs (dateTime) ||
584+ rowDate.isAfter (dateTime);
585+ };
586+ } else if (num .tryParse (value) != null ) {
587+ return (row) => row[columnName] >= num .tryParse (value);
588+ } else {
589+ throw UnimplementedError ('Unsupported value type' );
590+ }
553591 } else if (postrestFilter.startsWith ('lte.' )) {
554592 final value = postrestFilter.substring (4 );
555- return (row) => row[columnName] <= num .tryParse (value);
593+
594+ if (DateTime .tryParse (value) != null ) {
595+ final dateTime = DateTime .parse (value);
596+
597+ return (row) {
598+ final rowDate = DateTime .tryParse (row[columnName].toString ());
599+ if (rowDate == null ) return false ;
600+ return rowDate.isAtSameMomentAs (dateTime) ||
601+ rowDate.isBefore (dateTime);
602+ };
603+ } else if (num .tryParse (value) != null ) {
604+ return (row) => row[columnName] <= num .tryParse (value);
605+ } else {
606+ throw UnimplementedError ('Unsupported value type' );
607+ }
556608 } else if (postrestFilter.startsWith ('like.' )) {
557609 final value = postrestFilter.substring (5 );
558610 final regex = RegExp (value.replaceAll ('%' , '.*' ));
0 commit comments