implemented other repos, services, objects ...
This commit is contained in:
@@ -1501,15 +1501,15 @@ class TimeEntryDboDelegate {
|
||||
}
|
||||
}
|
||||
|
||||
class TaskDboDelegate {
|
||||
const TaskDboDelegate._(this._client);
|
||||
class ProjectTaskDboDelegate {
|
||||
const ProjectTaskDboDelegate._(this._client);
|
||||
|
||||
final PrismaClient _client;
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo?> findUnique({
|
||||
required _i3.TaskDboWhereUniqueInput where,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo?> findUnique({
|
||||
required _i3.ProjectTaskDboWhereUniqueInput where,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1518,7 +1518,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.findUnique,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1527,17 +1527,17 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo?>(
|
||||
action: 'findUniqueTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo?>(
|
||||
action: 'findUniqueProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => e != null ? _i2.TaskDbo.fromJson(e) : null,
|
||||
factory: (e) => e != null ? _i2.ProjectTaskDbo.fromJson(e) : null,
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo> findUniqueOrThrow({
|
||||
required _i3.TaskDboWhereUniqueInput where,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo> findUniqueOrThrow({
|
||||
required _i3.ProjectTaskDboWhereUniqueInput where,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1546,7 +1546,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.findUniqueOrThrow,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1555,24 +1555,26 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo>(
|
||||
action: 'findUniqueTaskDboOrThrow',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo>(
|
||||
action: 'findUniqueProjectTaskDboOrThrow',
|
||||
result: result,
|
||||
factory: (e) => _i2.TaskDbo.fromJson(e),
|
||||
factory: (e) => _i2.ProjectTaskDbo.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo?> findFirst({
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.TaskDboOrderByWithRelationInput>,
|
||||
_i3.TaskDboOrderByWithRelationInput>?
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo?> findFirst({
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.ProjectTaskDboOrderByWithRelationInput>,
|
||||
_i3.ProjectTaskDboOrderByWithRelationInput>?
|
||||
orderBy,
|
||||
_i3.TaskDboWhereUniqueInput? cursor,
|
||||
_i3.ProjectTaskDboWhereUniqueInput? cursor,
|
||||
int? take,
|
||||
int? skip,
|
||||
_i1.PrismaUnion<_i3.TaskDboScalar, Iterable<_i3.TaskDboScalar>>? distinct,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.PrismaUnion<_i3.ProjectTaskDboScalar,
|
||||
Iterable<_i3.ProjectTaskDboScalar>>?
|
||||
distinct,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1586,7 +1588,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.findFirst,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1595,24 +1597,26 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo?>(
|
||||
action: 'findFirstTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo?>(
|
||||
action: 'findFirstProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => e != null ? _i2.TaskDbo.fromJson(e) : null,
|
||||
factory: (e) => e != null ? _i2.ProjectTaskDbo.fromJson(e) : null,
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo> findFirstOrThrow({
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.TaskDboOrderByWithRelationInput>,
|
||||
_i3.TaskDboOrderByWithRelationInput>?
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo> findFirstOrThrow({
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.ProjectTaskDboOrderByWithRelationInput>,
|
||||
_i3.ProjectTaskDboOrderByWithRelationInput>?
|
||||
orderBy,
|
||||
_i3.TaskDboWhereUniqueInput? cursor,
|
||||
_i3.ProjectTaskDboWhereUniqueInput? cursor,
|
||||
int? take,
|
||||
int? skip,
|
||||
_i1.PrismaUnion<_i3.TaskDboScalar, Iterable<_i3.TaskDboScalar>>? distinct,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.PrismaUnion<_i3.ProjectTaskDboScalar,
|
||||
Iterable<_i3.ProjectTaskDboScalar>>?
|
||||
distinct,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1626,7 +1630,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.findFirstOrThrow,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1635,24 +1639,26 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo>(
|
||||
action: 'findFirstTaskDboOrThrow',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo>(
|
||||
action: 'findFirstProjectTaskDboOrThrow',
|
||||
result: result,
|
||||
factory: (e) => _i2.TaskDbo.fromJson(e),
|
||||
factory: (e) => _i2.ProjectTaskDbo.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<Iterable<_i2.TaskDbo>> findMany({
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.TaskDboOrderByWithRelationInput>,
|
||||
_i3.TaskDboOrderByWithRelationInput>?
|
||||
_i1.ActionClient<Iterable<_i2.ProjectTaskDbo>> findMany({
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.ProjectTaskDboOrderByWithRelationInput>,
|
||||
_i3.ProjectTaskDboOrderByWithRelationInput>?
|
||||
orderBy,
|
||||
_i3.TaskDboWhereUniqueInput? cursor,
|
||||
_i3.ProjectTaskDboWhereUniqueInput? cursor,
|
||||
int? take,
|
||||
int? skip,
|
||||
_i1.PrismaUnion<_i3.TaskDboScalar, Iterable<_i3.TaskDboScalar>>? distinct,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.PrismaUnion<_i3.ProjectTaskDboScalar,
|
||||
Iterable<_i3.ProjectTaskDboScalar>>?
|
||||
distinct,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1666,7 +1672,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.findMany,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1675,20 +1681,20 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<Iterable<_i2.TaskDbo>>(
|
||||
action: 'findManyTaskDbo',
|
||||
return _i1.ActionClient<Iterable<_i2.ProjectTaskDbo>>(
|
||||
action: 'findManyProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (values) =>
|
||||
(values as Iterable).map((e) => _i2.TaskDbo.fromJson(e)),
|
||||
(values as Iterable).map((e) => _i2.ProjectTaskDbo.fromJson(e)),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo> create({
|
||||
required _i1
|
||||
.PrismaUnion<_i3.TaskDboCreateInput, _i3.TaskDboUncheckedCreateInput>
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo> create({
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboCreateInput,
|
||||
_i3.ProjectTaskDboUncheckedCreateInput>
|
||||
data,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'data': data,
|
||||
@@ -1697,7 +1703,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.createOne,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1706,16 +1712,16 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo>(
|
||||
action: 'createOneTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo>(
|
||||
action: 'createOneProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i2.TaskDbo.fromJson(e),
|
||||
factory: (e) => _i2.ProjectTaskDbo.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i3.AffectedRowsOutput> createMany({
|
||||
required _i1.PrismaUnion<_i3.TaskDboCreateManyInput,
|
||||
Iterable<_i3.TaskDboCreateManyInput>>
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboCreateManyInput,
|
||||
Iterable<_i3.ProjectTaskDboCreateManyInput>>
|
||||
data,
|
||||
bool? skipDuplicates,
|
||||
}) {
|
||||
@@ -1725,7 +1731,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.createMany,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1735,20 +1741,20 @@ class TaskDboDelegate {
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i3.AffectedRowsOutput>(
|
||||
action: 'createManyTaskDbo',
|
||||
action: 'createManyProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i3.AffectedRowsOutput.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<Iterable<_i2.CreateManyTaskDboAndReturnOutputType>>
|
||||
_i1.ActionClient<Iterable<_i2.CreateManyProjectTaskDboAndReturnOutputType>>
|
||||
createManyAndReturn({
|
||||
required _i1.PrismaUnion<_i3.TaskDboCreateManyInput,
|
||||
Iterable<_i3.TaskDboCreateManyInput>>
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboCreateManyInput,
|
||||
Iterable<_i3.ProjectTaskDboCreateManyInput>>
|
||||
data,
|
||||
bool? skipDuplicates,
|
||||
_i3.CreateManyTaskDboAndReturnOutputTypeSelect? select,
|
||||
_i3.CreateManyTaskDboAndReturnOutputTypeInclude? include,
|
||||
_i3.CreateManyProjectTaskDboAndReturnOutputTypeSelect? select,
|
||||
_i3.CreateManyProjectTaskDboAndReturnOutputTypeInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'data': data,
|
||||
@@ -1758,7 +1764,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.createManyAndReturn,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1767,21 +1773,22 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<Iterable<_i2.CreateManyTaskDboAndReturnOutputType>>(
|
||||
action: 'createManyTaskDboAndReturn',
|
||||
return _i1.ActionClient<
|
||||
Iterable<_i2.CreateManyProjectTaskDboAndReturnOutputType>>(
|
||||
action: 'createManyProjectTaskDboAndReturn',
|
||||
result: result,
|
||||
factory: (values) => (values as Iterable)
|
||||
.map((e) => _i2.CreateManyTaskDboAndReturnOutputType.fromJson(e)),
|
||||
factory: (values) => (values as Iterable).map(
|
||||
(e) => _i2.CreateManyProjectTaskDboAndReturnOutputType.fromJson(e)),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo?> update({
|
||||
required _i1
|
||||
.PrismaUnion<_i3.TaskDboUpdateInput, _i3.TaskDboUncheckedUpdateInput>
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo?> update({
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboUpdateInput,
|
||||
_i3.ProjectTaskDboUncheckedUpdateInput>
|
||||
data,
|
||||
required _i3.TaskDboWhereUniqueInput where,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
required _i3.ProjectTaskDboWhereUniqueInput where,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'data': data,
|
||||
@@ -1791,7 +1798,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.updateOne,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1800,18 +1807,18 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo?>(
|
||||
action: 'updateOneTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo?>(
|
||||
action: 'updateOneProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => e != null ? _i2.TaskDbo.fromJson(e) : null,
|
||||
factory: (e) => e != null ? _i2.ProjectTaskDbo.fromJson(e) : null,
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i3.AffectedRowsOutput> updateMany({
|
||||
required _i1.PrismaUnion<_i3.TaskDboUpdateManyMutationInput,
|
||||
_i3.TaskDboUncheckedUpdateManyInput>
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboUpdateManyMutationInput,
|
||||
_i3.ProjectTaskDboUncheckedUpdateManyInput>
|
||||
data,
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
}) {
|
||||
final args = {
|
||||
'data': data,
|
||||
@@ -1819,7 +1826,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.updateMany,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1829,22 +1836,22 @@ class TaskDboDelegate {
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i3.AffectedRowsOutput>(
|
||||
action: 'updateManyTaskDbo',
|
||||
action: 'updateManyProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i3.AffectedRowsOutput.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo> upsert({
|
||||
required _i3.TaskDboWhereUniqueInput where,
|
||||
required _i1
|
||||
.PrismaUnion<_i3.TaskDboCreateInput, _i3.TaskDboUncheckedCreateInput>
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo> upsert({
|
||||
required _i3.ProjectTaskDboWhereUniqueInput where,
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboCreateInput,
|
||||
_i3.ProjectTaskDboUncheckedCreateInput>
|
||||
create,
|
||||
required _i1
|
||||
.PrismaUnion<_i3.TaskDboUpdateInput, _i3.TaskDboUncheckedUpdateInput>
|
||||
required _i1.PrismaUnion<_i3.ProjectTaskDboUpdateInput,
|
||||
_i3.ProjectTaskDboUncheckedUpdateInput>
|
||||
update,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1855,7 +1862,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.upsertOne,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1864,17 +1871,17 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo>(
|
||||
action: 'upsertOneTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo>(
|
||||
action: 'upsertOneProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i2.TaskDbo.fromJson(e),
|
||||
factory: (e) => _i2.ProjectTaskDbo.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i2.TaskDbo?> delete({
|
||||
required _i3.TaskDboWhereUniqueInput where,
|
||||
_i3.TaskDboSelect? select,
|
||||
_i3.TaskDboInclude? include,
|
||||
_i1.ActionClient<_i2.ProjectTaskDbo?> delete({
|
||||
required _i3.ProjectTaskDboWhereUniqueInput where,
|
||||
_i3.ProjectTaskDboSelect? select,
|
||||
_i3.ProjectTaskDboInclude? include,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1883,7 +1890,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.deleteOne,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1892,19 +1899,19 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i2.TaskDbo?>(
|
||||
action: 'deleteOneTaskDbo',
|
||||
return _i1.ActionClient<_i2.ProjectTaskDbo?>(
|
||||
action: 'deleteOneProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => e != null ? _i2.TaskDbo.fromJson(e) : null,
|
||||
factory: (e) => e != null ? _i2.ProjectTaskDbo.fromJson(e) : null,
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i3.AffectedRowsOutput> deleteMany(
|
||||
{_i3.TaskDboWhereInput? where}) {
|
||||
{_i3.ProjectTaskDboWhereInput? where}) {
|
||||
final args = {'where': where};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.deleteMany,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1914,22 +1921,24 @@ class TaskDboDelegate {
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i3.AffectedRowsOutput>(
|
||||
action: 'deleteManyTaskDbo',
|
||||
action: 'deleteManyProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i3.AffectedRowsOutput.fromJson(e),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<Iterable<_i3.TaskDboGroupByOutputType>> groupBy({
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.TaskDboOrderByWithAggregationInput>,
|
||||
_i3.TaskDboOrderByWithAggregationInput>?
|
||||
_i1.ActionClient<Iterable<_i3.ProjectTaskDboGroupByOutputType>> groupBy({
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.ProjectTaskDboOrderByWithAggregationInput>,
|
||||
_i3.ProjectTaskDboOrderByWithAggregationInput>?
|
||||
orderBy,
|
||||
required _i1.PrismaUnion<Iterable<_i3.TaskDboScalar>, _i3.TaskDboScalar> by,
|
||||
_i3.TaskDboScalarWhereWithAggregatesInput? having,
|
||||
required _i1.PrismaUnion<Iterable<_i3.ProjectTaskDboScalar>,
|
||||
_i3.ProjectTaskDboScalar>
|
||||
by,
|
||||
_i3.ProjectTaskDboScalarWhereWithAggregatesInput? having,
|
||||
int? take,
|
||||
int? skip,
|
||||
_i3.TaskDboGroupByOutputTypeSelect? select,
|
||||
_i3.ProjectTaskDboGroupByOutputTypeSelect? select,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1942,7 +1951,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.groupBy,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1951,23 +1960,23 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<Iterable<_i3.TaskDboGroupByOutputType>>(
|
||||
action: 'groupByTaskDbo',
|
||||
return _i1.ActionClient<Iterable<_i3.ProjectTaskDboGroupByOutputType>>(
|
||||
action: 'groupByProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (values) => (values as Iterable)
|
||||
.map((e) => _i3.TaskDboGroupByOutputType.fromJson(e)),
|
||||
.map((e) => _i3.ProjectTaskDboGroupByOutputType.fromJson(e)),
|
||||
);
|
||||
}
|
||||
|
||||
_i1.ActionClient<_i3.AggregateTaskDbo> aggregate({
|
||||
_i3.TaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.TaskDboOrderByWithRelationInput>,
|
||||
_i3.TaskDboOrderByWithRelationInput>?
|
||||
_i1.ActionClient<_i3.AggregateProjectTaskDbo> aggregate({
|
||||
_i3.ProjectTaskDboWhereInput? where,
|
||||
_i1.PrismaUnion<Iterable<_i3.ProjectTaskDboOrderByWithRelationInput>,
|
||||
_i3.ProjectTaskDboOrderByWithRelationInput>?
|
||||
orderBy,
|
||||
_i3.TaskDboWhereUniqueInput? cursor,
|
||||
_i3.ProjectTaskDboWhereUniqueInput? cursor,
|
||||
int? take,
|
||||
int? skip,
|
||||
_i3.AggregateTaskDboSelect? select,
|
||||
_i3.AggregateProjectTaskDboSelect? select,
|
||||
}) {
|
||||
final args = {
|
||||
'where': where,
|
||||
@@ -1979,7 +1988,7 @@ class TaskDboDelegate {
|
||||
};
|
||||
final query = _i1.serializeJsonQuery(
|
||||
args: args,
|
||||
modelName: 'TaskDbo',
|
||||
modelName: 'ProjectTaskDbo',
|
||||
action: _i1.JsonQueryAction.aggregate,
|
||||
datamodel: PrismaClient.datamodel,
|
||||
);
|
||||
@@ -1988,10 +1997,10 @@ class TaskDboDelegate {
|
||||
headers: _client.$transaction.headers,
|
||||
transaction: _client.$transaction.transaction,
|
||||
);
|
||||
return _i1.ActionClient<_i3.AggregateTaskDbo>(
|
||||
action: 'aggregateTaskDbo',
|
||||
return _i1.ActionClient<_i3.AggregateProjectTaskDbo>(
|
||||
action: 'aggregateProjectTaskDbo',
|
||||
result: result,
|
||||
factory: (e) => _i3.AggregateTaskDbo.fromJson(e),
|
||||
factory: (e) => _i3.AggregateProjectTaskDbo.fromJson(e),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -2219,9 +2228,9 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
'isId': false,
|
||||
'isReadOnly': false,
|
||||
'hasDefaultValue': false,
|
||||
'type': 'TaskDbo',
|
||||
'type': 'ProjectTaskDbo',
|
||||
'nativeType': null,
|
||||
'relationName': 'ProjectDboToTaskDbo',
|
||||
'relationName': 'ProjectDboToProjectTaskDbo',
|
||||
'relationFromFields': [],
|
||||
'relationToFields': [],
|
||||
'isGenerated': false,
|
||||
@@ -2479,7 +2488,7 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
'isGenerated': false,
|
||||
},
|
||||
{
|
||||
'name': 'TaskDbo',
|
||||
'name': 'ProjectTaskDbo',
|
||||
'dbName': null,
|
||||
'schema': null,
|
||||
'fields': [
|
||||
@@ -2540,7 +2549,7 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
'hasDefaultValue': false,
|
||||
'type': 'ProjectDbo',
|
||||
'nativeType': null,
|
||||
'relationName': 'ProjectDboToTaskDbo',
|
||||
'relationName': 'ProjectDboToProjectTaskDbo',
|
||||
'relationFromFields': ['projectId'],
|
||||
'relationToFields': ['id'],
|
||||
'isGenerated': false,
|
||||
@@ -2634,7 +2643,7 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
],
|
||||
},
|
||||
{
|
||||
'model': 'TaskDbo',
|
||||
'model': 'ProjectTaskDbo',
|
||||
'type': 'id',
|
||||
'isDefinedOnField': true,
|
||||
'fields': [
|
||||
@@ -2671,7 +2680,7 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
@override
|
||||
get $engine => _engine ??= _i5.BinaryEngine(
|
||||
schema:
|
||||
'generator dartClient {\n provider = "dart run orm"\n output = "../lib/infrastructure/persistence/db"\n}\n\ndatasource db {\n provider = "postgresql"\n url = env("DATABASE_URL")\n}\n\n// User Model\nmodel UserDbo {\n id String @id @default(uuid())\n name String\n email String @unique\n password String\n projects ProjectDbo[] // Beziehung zu Projekten\n timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// Project Model\nmodel ProjectDbo {\n id String @id @default(uuid())\n name String\n description String?\n clientId String?\n tasks TaskDbo[] // Beziehung zu Aufgaben\n timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen\n user UserDbo @relation(fields: [userId], references: [id])\n userId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// TimeEntry Model\nmodel TimeEntryDbo {\n id String @id @default(uuid())\n startTime DateTime\n endTime DateTime\n description String?\n user UserDbo @relation(fields: [userId], references: [id])\n userId String\n project ProjectDbo @relation(fields: [projectId], references: [id])\n projectId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// Task Model (optional)\nmodel TaskDbo {\n id String @id @default(uuid())\n name String\n description String?\n project ProjectDbo @relation(fields: [projectId], references: [id])\n projectId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n',
|
||||
'generator dartClient {\n provider = "dart run orm"\n output = "../lib/infrastructure/persistence/db"\n}\n\ndatasource db {\n provider = "postgresql"\n url = env("DATABASE_URL")\n}\n\n// User Model\nmodel UserDbo {\n id String @id @default(uuid())\n name String\n email String @unique\n password String\n projects ProjectDbo[] // Beziehung zu Projekten\n timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// Project Model\nmodel ProjectDbo {\n id String @id @default(uuid())\n name String\n description String?\n clientId String?\n tasks ProjectTaskDbo[] // Beziehung zu Aufgaben\n timeEntries TimeEntryDbo[] // Beziehung zu Zeiteinträgen\n user UserDbo @relation(fields: [userId], references: [id])\n userId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// TimeEntry Model\nmodel TimeEntryDbo {\n id String @id @default(uuid())\n startTime DateTime\n endTime DateTime\n description String?\n user UserDbo @relation(fields: [userId], references: [id])\n userId String\n project ProjectDbo @relation(fields: [projectId], references: [id])\n projectId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n\n// Task Model (optional)\nmodel ProjectTaskDbo {\n id String @id @default(uuid())\n name String\n description String?\n project ProjectDbo @relation(fields: [projectId], references: [id])\n projectId String\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n}\n',
|
||||
datasources: const {
|
||||
'db': _i1.Datasource(
|
||||
_i1.DatasourceType.environment,
|
||||
@@ -2690,5 +2699,5 @@ class PrismaClient extends _i1.BasePrismaClient<PrismaClient> {
|
||||
|
||||
TimeEntryDboDelegate get timeEntryDbo => TimeEntryDboDelegate._(this);
|
||||
|
||||
TaskDboDelegate get taskDbo => TaskDboDelegate._(this);
|
||||
ProjectTaskDboDelegate get projectTaskDbo => ProjectTaskDboDelegate._(this);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
import 'model.dart' as _i1;
|
||||
import 'prisma.dart' as _i2;
|
||||
|
||||
class TaskDbo {
|
||||
const TaskDbo({
|
||||
class ProjectTaskDbo {
|
||||
const ProjectTaskDbo({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
@@ -13,7 +13,7 @@ class TaskDbo {
|
||||
this.project,
|
||||
});
|
||||
|
||||
factory TaskDbo.fromJson(Map json) => TaskDbo(
|
||||
factory ProjectTaskDbo.fromJson(Map json) => ProjectTaskDbo(
|
||||
id: json['id'],
|
||||
name: json['name'],
|
||||
description: json['description'],
|
||||
@@ -169,7 +169,7 @@ class ProjectDbo {
|
||||
_ => json['updatedAt']
|
||||
},
|
||||
tasks: (json['tasks'] as Iterable?)
|
||||
?.map((json) => _i1.TaskDbo.fromJson(json)),
|
||||
?.map((json) => _i1.ProjectTaskDbo.fromJson(json)),
|
||||
timeEntries: (json['timeEntries'] as Iterable?)
|
||||
?.map((json) => _i1.TimeEntryDbo.fromJson(json)),
|
||||
user: json['user'] is Map ? _i1.UserDbo.fromJson(json['user']) : null,
|
||||
@@ -192,7 +192,7 @@ class ProjectDbo {
|
||||
|
||||
final DateTime? updatedAt;
|
||||
|
||||
final Iterable<_i1.TaskDbo>? tasks;
|
||||
final Iterable<_i1.ProjectTaskDbo>? tasks;
|
||||
|
||||
final Iterable<_i1.TimeEntryDbo>? timeEntries;
|
||||
|
||||
@@ -473,8 +473,8 @@ class CreateManyTimeEntryDboAndReturnOutputType {
|
||||
};
|
||||
}
|
||||
|
||||
class CreateManyTaskDboAndReturnOutputType {
|
||||
const CreateManyTaskDboAndReturnOutputType({
|
||||
class CreateManyProjectTaskDboAndReturnOutputType {
|
||||
const CreateManyProjectTaskDboAndReturnOutputType({
|
||||
this.id,
|
||||
this.name,
|
||||
this.description,
|
||||
@@ -484,8 +484,8 @@ class CreateManyTaskDboAndReturnOutputType {
|
||||
this.project,
|
||||
});
|
||||
|
||||
factory CreateManyTaskDboAndReturnOutputType.fromJson(Map json) =>
|
||||
CreateManyTaskDboAndReturnOutputType(
|
||||
factory CreateManyProjectTaskDboAndReturnOutputType.fromJson(Map json) =>
|
||||
CreateManyProjectTaskDboAndReturnOutputType(
|
||||
id: json['id'],
|
||||
name: json['name'],
|
||||
description: json['description'],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,18 +7,6 @@ import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
|
||||
class ProjectDboMapper {
|
||||
TaskEither<IError, ProjectDbo> toDbo(Project project) {
|
||||
return TaskEither.of(ProjectDbo(
|
||||
id: project.id,
|
||||
name: project.name,
|
||||
description: project.description,
|
||||
clientId: project.clientId,
|
||||
userId: project.userId,
|
||||
createdAt: project.createdAt,
|
||||
updatedAt: project.updatedAt,
|
||||
));
|
||||
}
|
||||
|
||||
TaskEither<IError, Project> fromDbo(ProjectDbo dbo) {
|
||||
return TaskEither.of(Project(
|
||||
id: dbo.id!,
|
||||
@@ -31,9 +19,14 @@ class ProjectDboMapper {
|
||||
));
|
||||
}
|
||||
|
||||
TaskEither<IError, List<Project>> listFrom(Iterable<ProjectDbo> dbos) {
|
||||
return TaskEither.traverseList(dbos.toList(), fromDbo);
|
||||
}
|
||||
|
||||
TaskEither<IError, ProjectDboCreateInput> fromCreatetoDbo(
|
||||
ProjectCreate project) {
|
||||
return TaskEither.of(ProjectDboCreateInput(
|
||||
id: project.id,
|
||||
name: project.name,
|
||||
description: project.description.let(PrismaUnion.$1),
|
||||
clientId: project.clientId.let(PrismaUnion.$1),
|
||||
@@ -57,8 +50,4 @@ class ProjectDboMapper {
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
TaskEither<IError, List<Project>> listFrom(Iterable<ProjectDbo> dbos) {
|
||||
return TaskEither.traverseList(dbos.toList(), fromDbo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
import 'package:backend_dart/common/extensions.dart';
|
||||
import 'package:backend_dart/domain/entities/project_task.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/model.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/prisma.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
|
||||
class ProjectTaskDboMapper {
|
||||
TaskEither<IError, ProjectTask> from(ProjectTaskDbo target) =>
|
||||
TaskEither.of(ProjectTask(
|
||||
id: target.id!,
|
||||
name: target.name!,
|
||||
description: target.description,
|
||||
projectId: target.projectId!,
|
||||
createdAt: target.createdAt!,
|
||||
updatedAt: target.updatedAt!,
|
||||
));
|
||||
|
||||
TaskEither<IError, List<ProjectTask>> listFrom(
|
||||
Iterable<ProjectTaskDbo> targets) {
|
||||
return TaskEither.traverseList(targets.toList(), from);
|
||||
}
|
||||
|
||||
TaskEither<IError, ProjectTaskDboCreateInput> fromCreateTo(
|
||||
ProjectTaskCreate origin) =>
|
||||
TaskEither.of(ProjectTaskDboCreateInput(
|
||||
id: origin.id,
|
||||
name: origin.name,
|
||||
description: origin.description.let(PrismaUnion.$1),
|
||||
project: ProjectDboCreateNestedOneWithoutTasksInput(
|
||||
connect: ProjectDboWhereUniqueInput(
|
||||
id: origin.projectId,
|
||||
),
|
||||
),
|
||||
));
|
||||
|
||||
TaskEither<IError, ProjectTaskDboUpdateInput> fromUpdateTo(
|
||||
ProjectTaskUpdate origin) =>
|
||||
TaskEither.of(ProjectTaskDboUpdateInput(
|
||||
id: PrismaUnion.$1(origin.id),
|
||||
name: origin.name?.let(PrismaUnion.$1),
|
||||
description: origin.description?.let(PrismaUnion.$1),
|
||||
project: origin.projectId?.let(
|
||||
(projectId) => ProjectDboUpdateOneRequiredWithoutTasksNestedInput(
|
||||
connect: ProjectDboWhereUniqueInput(
|
||||
id: projectId,
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
import 'package:backend_dart/common/extensions.dart';
|
||||
import 'package:backend_dart/domain/entities/time_entry.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/model.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/prisma.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
|
||||
class TimeEntryDboMapper {
|
||||
TaskEither<IError, TimeEntry> from(TimeEntryDbo target) => TaskEither.of(
|
||||
TimeEntry(
|
||||
id: target.id!,
|
||||
startTime: target.startTime!,
|
||||
endTime: target.endTime!,
|
||||
description: target.description,
|
||||
userId: target.userId!,
|
||||
projectId: target.projectId!,
|
||||
createdAt: target.createdAt!,
|
||||
updatedAt: target.updatedAt!,
|
||||
),
|
||||
);
|
||||
|
||||
TaskEither<IError, List<TimeEntry>> listFrom(Iterable<TimeEntryDbo> targets) {
|
||||
return TaskEither.traverseList(targets.toList(), from);
|
||||
}
|
||||
|
||||
TaskEither<IError, TimeEntryDboCreateInput> fromCreateTo(
|
||||
TimeEntryCreate origin) =>
|
||||
TaskEither.of(TimeEntryDboCreateInput(
|
||||
id: origin.id,
|
||||
startTime: origin.startTime,
|
||||
endTime: origin.endTime,
|
||||
description: origin.description.let(PrismaUnion.$1),
|
||||
user: UserDboCreateNestedOneWithoutTimeEntriesInput(
|
||||
connect: UserDboWhereUniqueInput(
|
||||
id: origin.userId,
|
||||
),
|
||||
),
|
||||
project: ProjectDboCreateNestedOneWithoutTimeEntriesInput(
|
||||
connect: ProjectDboWhereUniqueInput(
|
||||
id: origin.projectId,
|
||||
),
|
||||
),
|
||||
));
|
||||
|
||||
TaskEither<IError, TimeEntryDboUpdateInput> fromUpdateTo(
|
||||
TimeEntryUpdate origin) =>
|
||||
TaskEither.of(TimeEntryDboUpdateInput(
|
||||
id: PrismaUnion.$1(origin.id),
|
||||
startTime: origin.startTime?.let(PrismaUnion.$1),
|
||||
endTime: origin.endTime?.let(PrismaUnion.$1),
|
||||
description: origin.description?.let(PrismaUnion.$1),
|
||||
user: origin.userId?.let(
|
||||
(userId) => UserDboUpdateOneRequiredWithoutTimeEntriesNestedInput(
|
||||
connect: UserDboWhereUniqueInput(
|
||||
id: userId,
|
||||
),
|
||||
),
|
||||
),
|
||||
project: origin.projectId?.let(
|
||||
(projectId) =>
|
||||
ProjectDboUpdateOneRequiredWithoutTimeEntriesNestedInput(
|
||||
connect: ProjectDboWhereUniqueInput(
|
||||
id: projectId,
|
||||
),
|
||||
),
|
||||
),
|
||||
));
|
||||
}
|
||||
@@ -1,18 +1,37 @@
|
||||
import 'package:backend_dart/domain/data/database.dart';
|
||||
import 'package:backend_dart/domain/data/project_data_source.dart';
|
||||
import 'package:backend_dart/domain/data/project_task_data_source.dart';
|
||||
import 'package:backend_dart/domain/data/time_entry_data_source.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/client.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/prisma_project_data_source.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/prisma_project_task_data_source.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/prisma_time_entry_data_source.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/prisma_user_data_source.dart';
|
||||
|
||||
class PrismaDatabase implements IDatabase {
|
||||
final prisma = PrismaClient();
|
||||
late final PrismaUserDataSource _users;
|
||||
late final TimeEntryDataSource _timeEntries;
|
||||
late final ProjectTaskDataSource _tasks;
|
||||
late final ProjectDataSource _projects;
|
||||
|
||||
PrismaDatabase() {
|
||||
_users = PrismaUserDataSource(prisma);
|
||||
_timeEntries = PrismaTimeEntryDataSource(prisma);
|
||||
_tasks = PrismaProjectTaskDataSource(prisma);
|
||||
_projects = PrismaProjectDataSource(prisma);
|
||||
print('Database initialized');
|
||||
}
|
||||
|
||||
@override
|
||||
get users => _users;
|
||||
@override
|
||||
get timeEntries => _timeEntries;
|
||||
@override
|
||||
get tasks => _tasks;
|
||||
@override
|
||||
get projects => _projects;
|
||||
@override
|
||||
Future<void> close() {
|
||||
return Future.value();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import 'package:backend_dart/infrastructure/persistence/db/prisma.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/mapper/project_dbo_mapper.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class PrismaProjectDataSource implements ProjectDataSource {
|
||||
final PrismaClient prisma;
|
||||
@@ -17,7 +18,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
PrismaProjectDataSource(this.prisma);
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> createProject(ProjectCreate project) {
|
||||
TaskEither<IError, Project> create(ProjectCreate project) {
|
||||
return mapper
|
||||
.fromCreatetoDbo(project)
|
||||
.flatMap((projectDbo) => TaskEither.tryCatch(
|
||||
@@ -34,7 +35,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> findProjectById(String id) {
|
||||
TaskEither<IError, Project> findById(String id) {
|
||||
return TaskEither<IError, ProjectDbo?>.tryCatch(
|
||||
() async {
|
||||
final project = await prisma.projectDbo
|
||||
@@ -51,7 +52,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<Project>> findProjectsByUserId(String userId) {
|
||||
TaskEither<IError, List<Project>> findByUserId(String userId) {
|
||||
return TaskEither<IError, Iterable<ProjectDbo>>.tryCatch(
|
||||
() async {
|
||||
final projects = await prisma.projectDbo.findMany(
|
||||
@@ -69,7 +70,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> updateProject(ProjectUpdate project) {
|
||||
TaskEither<IError, Project> update(ProjectUpdate project) {
|
||||
return mapper
|
||||
.fromUpdateToDbo(project)
|
||||
.flatMap(
|
||||
@@ -96,7 +97,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, Project> deleteProject(String id) {
|
||||
TaskEither<IError, Project> delete(String id) {
|
||||
return TaskEither<IError, ProjectDbo?>.tryCatch(
|
||||
() async {
|
||||
return await prisma.projectDbo
|
||||
@@ -117,7 +118,7 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<Project>> findAllProjects() {
|
||||
TaskEither<IError, List<Project>> findAll() {
|
||||
return TaskEither<IError, Iterable<ProjectDbo>>.tryCatch(
|
||||
() async => await prisma.projectDbo.findMany(),
|
||||
(error, _) => AppError.databaseError(
|
||||
@@ -125,4 +126,23 @@ class PrismaProjectDataSource implements ProjectDataSource {
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, String> generateId() {
|
||||
return TaskEither.tryCatch(
|
||||
() async {
|
||||
var uuid = Uuid();
|
||||
do {
|
||||
final id = uuid.v4();
|
||||
final project = await prisma.projectDbo.findUnique(
|
||||
where: ProjectDboWhereUniqueInput(id: id),
|
||||
);
|
||||
if (project == null) return id;
|
||||
} while (true);
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to generate ID: ${error.toString()}',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
import 'package:backend_dart/common/error_on_null.dart';
|
||||
import 'package:backend_dart/domain/data/project_task_data_source.dart';
|
||||
import 'package:backend_dart/domain/entities/project_task.dart';
|
||||
import 'package:backend_dart/domain/errors/app_error.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/client.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/model.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/prisma.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/mapper/project_task_dbo_mapper.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class PrismaProjectTaskDataSource implements ProjectTaskDataSource {
|
||||
final PrismaClient prisma;
|
||||
final ProjectTaskDboMapper mapper = ProjectTaskDboMapper();
|
||||
|
||||
PrismaProjectTaskDataSource(this.prisma);
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> create(ProjectTaskCreate task) =>
|
||||
mapper.fromCreateTo(task).flatMap(
|
||||
(taskDbo) => TaskEither<IError, ProjectTaskDbo>.tryCatch(
|
||||
() async {
|
||||
final createdTask = await prisma.projectTaskDbo.create(
|
||||
data: PrismaUnion.$1(taskDbo),
|
||||
);
|
||||
return createdTask;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to create project task: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.from),
|
||||
);
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> findById(String id) {
|
||||
return TaskEither<IError, ProjectTaskDbo?>.tryCatch(
|
||||
() async {
|
||||
final task = await prisma.projectTaskDbo
|
||||
.findUnique(where: ProjectTaskDboWhereUniqueInput(id: id));
|
||||
return task;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to find project task by ID: ${error.toString()}',
|
||||
),
|
||||
)
|
||||
.flatMap(errorOnNull(AppError.notFound(
|
||||
"Project task with id $id not found",
|
||||
)))
|
||||
.flatMap(mapper.from);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<ProjectTask>> findByProjectId(String projectId) {
|
||||
return TaskEither<IError, Iterable<ProjectTaskDbo>>.tryCatch(
|
||||
() async => await prisma.projectTaskDbo.findMany(
|
||||
where: ProjectTaskDboWhereInput(projectId: PrismaUnion.$2(projectId)),
|
||||
),
|
||||
(error, _) => AppError.databaseError(
|
||||
message:
|
||||
'Failed to fetch tasks for project $projectId: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> update(ProjectTaskUpdate task) => mapper
|
||||
.fromUpdateTo(task)
|
||||
.flatMap(
|
||||
(taskDbo) => TaskEither.tryCatch(
|
||||
() async {
|
||||
final updatedTask = await prisma.projectTaskDbo.update(
|
||||
data: PrismaUnion.$1(taskDbo),
|
||||
where: ProjectTaskDboWhereUniqueInput(id: task.id),
|
||||
);
|
||||
return updatedTask;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to update project task: ${error.toString()}',
|
||||
),
|
||||
),
|
||||
)
|
||||
.flatMap(
|
||||
errorOnNull(AppError.notFound("Project task not found")),
|
||||
)
|
||||
.flatMap(mapper.from);
|
||||
|
||||
@override
|
||||
TaskEither<IError, ProjectTask> delete(String id) {
|
||||
return TaskEither<IError, ProjectTaskDbo?>.tryCatch(
|
||||
() async {
|
||||
return await prisma.projectTaskDbo.delete(
|
||||
where: ProjectTaskDboWhereUniqueInput(id: id),
|
||||
);
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to delete project task: ${error.toString()}',
|
||||
),
|
||||
)
|
||||
.flatMap(
|
||||
errorOnNull(
|
||||
AppError.notFound(
|
||||
'Project task with ID $id not found',
|
||||
),
|
||||
),
|
||||
)
|
||||
.flatMap(mapper.from);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<ProjectTask>> findAll() {
|
||||
return TaskEither<IError, Iterable<ProjectTaskDbo>>.tryCatch(
|
||||
() async => await prisma.projectTaskDbo.findMany(),
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to fetch all project tasks: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, String> generateId() {
|
||||
return TaskEither.tryCatch(
|
||||
() async {
|
||||
var uuid = Uuid();
|
||||
do {
|
||||
final id = uuid.v4();
|
||||
final task = await prisma.projectTaskDbo.findUnique(
|
||||
where: ProjectTaskDboWhereUniqueInput(id: id),
|
||||
);
|
||||
if (task == null) return id;
|
||||
} while (true);
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to generate ID: ${error.toString()}',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
import 'package:backend_dart/common/error_on_null.dart';
|
||||
import 'package:backend_dart/domain/data/time_entry_data_source.dart';
|
||||
import 'package:backend_dart/domain/entities/time_entry.dart';
|
||||
import 'package:backend_dart/domain/errors/app_error.dart';
|
||||
import 'package:backend_dart/domain/interface/error.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/client.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/model.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/db/prisma.dart';
|
||||
import 'package:backend_dart/infrastructure/persistence/mapper/time_entry_dbo_mapper.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:orm/orm.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
|
||||
class PrismaTimeEntryDataSource implements TimeEntryDataSource {
|
||||
final PrismaClient prisma;
|
||||
final TimeEntryDboMapper mapper = TimeEntryDboMapper();
|
||||
|
||||
PrismaTimeEntryDataSource(this.prisma);
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> create(TimeEntryCreate timeEntry) =>
|
||||
mapper.fromCreateTo(timeEntry).flatMap(
|
||||
(timeEntryDbo) => TaskEither<IError, TimeEntryDbo>.tryCatch(
|
||||
() async {
|
||||
final createdEntry = await prisma.timeEntryDbo.create(
|
||||
data: PrismaUnion.$1(timeEntryDbo),
|
||||
);
|
||||
return createdEntry;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to create time entry: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.from),
|
||||
);
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> findById(String id) {
|
||||
return TaskEither<IError, TimeEntryDbo?>.tryCatch(
|
||||
() async {
|
||||
final timeEntry = await prisma.timeEntryDbo
|
||||
.findUnique(where: TimeEntryDboWhereUniqueInput(id: id));
|
||||
return timeEntry;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to find time entry by ID: ${error.toString()}',
|
||||
),
|
||||
)
|
||||
.flatMap(errorOnNull(AppError.notFound(
|
||||
"Time entry with id $id not found",
|
||||
)))
|
||||
.flatMap(mapper.from);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findByUserId(String userId) {
|
||||
return TaskEither<IError, Iterable<TimeEntryDbo>>.tryCatch(
|
||||
() async => await prisma.timeEntryDbo.findMany(
|
||||
where: TimeEntryDboWhereInput(userId: PrismaUnion.$2(userId)),
|
||||
),
|
||||
(error, _) => AppError.databaseError(
|
||||
message:
|
||||
'Failed to fetch time entries for user $userId: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findByProjectId(String projectId) {
|
||||
return TaskEither<IError, Iterable<TimeEntryDbo>>.tryCatch(
|
||||
() async => await prisma.timeEntryDbo.findMany(
|
||||
where: TimeEntryDboWhereInput(projectId: PrismaUnion.$2(projectId)),
|
||||
),
|
||||
(error, _) => AppError.databaseError(
|
||||
message:
|
||||
'Failed to fetch time entries for project $projectId: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> update(TimeEntryUpdate timeEntry) => mapper
|
||||
.fromUpdateTo(timeEntry)
|
||||
.flatMap(
|
||||
(timeEntryDbo) => TaskEither.tryCatch(
|
||||
() async {
|
||||
final updatedEntry = await prisma.timeEntryDbo.update(
|
||||
data: PrismaUnion.$1(timeEntryDbo),
|
||||
where: TimeEntryDboWhereUniqueInput(id: timeEntry.id),
|
||||
);
|
||||
return updatedEntry;
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to update time entry: ${error.toString()}',
|
||||
),
|
||||
),
|
||||
)
|
||||
.flatMap(
|
||||
errorOnNull(AppError.notFound("Time entry not found")),
|
||||
)
|
||||
.flatMap(mapper.from);
|
||||
|
||||
@override
|
||||
TaskEither<IError, TimeEntry> delete(String id) {
|
||||
return TaskEither<IError, TimeEntryDbo?>.tryCatch(
|
||||
() async {
|
||||
return await prisma.timeEntryDbo.delete(
|
||||
where: TimeEntryDboWhereUniqueInput(id: id),
|
||||
);
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to delete time entry: ${error.toString()}',
|
||||
),
|
||||
)
|
||||
.flatMap(
|
||||
errorOnNull(AppError.notFound(
|
||||
"Time entry with id $id not found",
|
||||
)),
|
||||
)
|
||||
.flatMap(mapper.from);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, List<TimeEntry>> findAll() {
|
||||
return TaskEither<IError, Iterable<TimeEntryDbo>>.tryCatch(
|
||||
() async => await prisma.timeEntryDbo.findMany(),
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to fetch all time entries: ${error.toString()}',
|
||||
),
|
||||
).flatMap(mapper.listFrom);
|
||||
}
|
||||
|
||||
@override
|
||||
TaskEither<IError, String> generateId() {
|
||||
return TaskEither.tryCatch(
|
||||
() async {
|
||||
var uuid = Uuid();
|
||||
do {
|
||||
final id = uuid.v4();
|
||||
final entry = await prisma.timeEntryDbo.findUnique(
|
||||
where: TimeEntryDboWhereUniqueInput(id: id),
|
||||
);
|
||||
if (entry == null) return id;
|
||||
} while (true);
|
||||
},
|
||||
(error, _) => AppError.databaseError(
|
||||
message: 'Failed to generate ID: ${error.toString()}',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user