feat : profile with logic

This commit is contained in:
2025-07-08 16:06:10 +03:30
parent a9b012b016
commit 146ea28e77
17 changed files with 1531 additions and 61 deletions

View File

@@ -1,31 +1,31 @@
enum Status { initial, loading, success, error, empty }
enum ResourceStatus { initial, loading, success, error, empty }
class Resource<T> {
final Status status;
final ResourceStatus status;
final T? data;
final String? message;
const Resource._({required this.status, this.data, this.message});
const Resource.initial() : this._(status: Status.initial);
const Resource.initial() : this._(status: ResourceStatus.initial);
const Resource.loading() : this._(status: Status.loading);
const Resource.loading() : this._(status: ResourceStatus.loading);
const Resource.success(T data) : this._(status: Status.success, data: data);
const Resource.success(T data) : this._(status: ResourceStatus.success, data: data);
const Resource.error(String message) : this._(status: Status.error, message: message);
const Resource.error(String message) : this._(status: ResourceStatus.error, message: message);
const Resource.empty() : this._(status: Status.empty);
const Resource.empty() : this._(status: ResourceStatus.empty);
bool get isInitial => status == Status.initial;
bool get isInitial => status == ResourceStatus.initial;
bool get isLoading => status == Status.loading;
bool get isLoading => status == ResourceStatus.loading;
bool get isSuccess => status == Status.success;
bool get isSuccess => status == ResourceStatus.success;
bool get isError => status == Status.error;
bool get isError => status == ResourceStatus.error;
bool get isEmpty => status == Status.empty;
bool get isEmpty => status == ResourceStatus.empty;
@override
String toString() {