wiki:ImportantUseCase3

Испраќање и прифаќање на покана - регистрација на менаџер

*сликите во наредните чекори не се конечен изглед на апликацијата, туку само цртежи/скици

Актери:

  • Артист
  • Менаџер

Чекор 1

Артистот се најавува на платформата.

select u.email, u.username, u.name, u.profile_picture, u.type, 
        coalesce (a.*) as artist,
        coalesce (o.*) as organizer,
        coalesce (m.*) as manager
        from project.users u 
        left join artists a 
                on u.id = a.user_id 
                and u."type" = 'ARTIST'::project."user_type" 
        left join organizers o
                on u.id = o.user_id 
                and u."type" = 'ORGANIZER'::project."user_type" 
        left join managers m
                on u.id = m.user_id 
                and u."type" = 'MANAGER'::project."user_type" 
        where 
                u.email = 'v_artist@mail.com'
                and u.password = 'password';

Чекор 2

Ја отвара страната Мој Профил - секција Менаџер

select u.name, u.email 
        from artists a
        join managers m 
                on a.manager_id = m.user_id 
        join users u 
                on u.id = m.user_id 
        where 
                a.user_id = (
                        select u.id from users u
                        where u.email = 'v_artist@mail.com'
                );

Чекор 3

После тоа ја внесува е-мејл адреста на посакуваниот менаџер, и го поканува менаџерот.

INSERT INTO project.manager_invites (email,invitation_token,created_at,artist_id)
        VALUES ('v_manager@mail.com','$2y$10$mTOpvSVqKzGDHpUC5lyrPOfwcYgU7kz9Gbuc22dske4I2g4I.QZ6i',now(),(
                select u.id from users u
                where u.email = 'v_artist@mail.com'
                and u.type = 'ARTIST'::project."user_type"      
        ));

Чекор 4

Му се испраќа мејл на менаџерот – доколку постои менаџер со таа мејл адреса, артистот кој што го поканил ќе биде додаден во неговата листа на артисти кои ги менаџира, во спротивно ќе биде побарано од него да се регистрира на платформата.

-- проверка дали постои менаџер со дадената мејл адреса
select count(*) from managers m 
join users u on u.id = m.user_id 
where 
        u.email = 'v_manager@mail.com'
        
-- доколку нема менаџер со внесената мејл адреса се регистрира нов корисник од тип менаџер
insert into project.users (email,username,password,name,created_at,profile_picture,type)
        values ('v_manager@mail.com','v_manager','password','V Manager', now(),'manager.jpg','MANAGER'::project."user_type");


-- доколку има менаџер со внесената мејл адреса, артистот кој што го поканил ќе биде додаден во неговата листа на артисти кои ги менаџира
update project.artists
        set manager_id  = (
                select u.id from users u
                where u.email = 'v_manager@mail.com'
        )
        where user_id = (
                select u.id from users u
                where u.email = 'v_artist@mail.com'
        );
Last modified 2 years ago Last modified on 03/10/22 17:14:11

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.