export class PhotoService extends Effect.Tag("@boda/photo-service")<
PhotoService,
{
likePhoto: (payload: {
photo_id: string;
user_id: string;
}) => Effect.Effect<unknown, Defect, EventService>;
dislikePhoto: (payload: {
photo_id: string;
user_id: string;
}) => Effect.Effect<void, Defect, EventService>;
listPhotos: (
limit?: number,
last?: string,
) => Effect.Effect<Photo[], Defect>;
getPhoto: (id: string) => Effect.Effect<Option.Option<Photo>, Defect>;
comment: (
id: string,
user_id: string,
comment: string,
) => Effect.Effect<void, Defect>;
}
>() {
static get live() {
return PhotoServiceLayer;
}
}
export class PhotoService extends Effect.Tag("@boda/photo-service")<
PhotoService,
{
likePhoto: (payload: {
photo_id: string;
user_id: string;
}) => Effect.Effect<unknown, Defect, EventService>;
dislikePhoto: (payload: {
photo_id: string;
user_id: string;
}) => Effect.Effect<void, Defect, EventService>;
listPhotos: (
limit?: number,
last?: string,
) => Effect.Effect<Photo[], Defect>;
getPhoto: (id: string) => Effect.Effect<Option.Option<Photo>, Defect>;
comment: (
id: string,
user_id: string,
comment: string,
) => Effect.Effect<void, Defect>;
}
>() {
static get live() {
return PhotoServiceLayer;
}
}