wiki:ImportantUseCase3

Version 12 (modified by 191215, 3 years ago) ( diff )

--

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

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

Актери:

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

Чекор 1

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

select u.email, u.username, u.full_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 = 'test_artist@mail.com'
		and u.password = 'password';

Чекор 2

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

select u.full_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 = 'test_artist@mail.com'
		);

Чекор 3

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

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

Чекор 4

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

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


-- доколку има менаџер со внесената мејл адреса, артистот кој што го поканил ќе биде додаден во неговата листа на артисти кои ги менаџира
update project.artists
        set manager_id  = (
                select u.id from users u
                where u.email = 'test_manager@mail.com'
        )
        where user_id = (
                select u.id from users u
                where u.email = 'test_artist@mail.com'
        );

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.